안정성 절충
신뢰할 수 있는 워크로드는 정의된 안정성 목표를 일관되게 충족합니다. 안정성에 영향을 주는 이벤트를 우회하여 설정된 복원력 목표에 도달해야 합니다. 그러나 현실적으로 워크로드는 이러한 이벤트의 영향을 허용 및 제어하고 활성 오작동 시 미리 결정된 수준에서 작업을 유지 관리해야 합니다. 재해 발생 시에도 신뢰할 수 있는 워크로드는 지정된 기간 내에 특정 상태로 복구되어야 하며, 이 두 작업은 관련자 간에 합의됩니다. 신속한 탐지 및 복구를 달성할 수 있는 인시던트 대응 계획은 매우 중요합니다.
워크로드의 디자인 단계에서 안정성 디자인 원칙에 따른 의사 결정과 안정성에 대한 디자인 검토 검사 목록의 권장 사항이 다른 핵심 요소의 목표와 최적화에 어떻게 영향을 줄 수 있는지 고려해야 합니다. 특정 결정은 일부 기둥에 도움이 될 수 있지만 다른 사람들에게는 절충안이 될 수 있습니다. 이 문서에서는 워크로드 아키텍처 및 안정성을 위한 작업을 디자인할 때 워크로드 팀이 발생할 수 있는 절충 사례에 대해 설명합니다.
보안과의 안정성 절충
절충: 워크로드 노출 영역이 증가했습니다. 보안 기둥은 공격 벡터를 최소화하고 보안 컨트롤의 관리를 줄이기 위해 축소되고 포함된 노출 영역의 우선 순위를 지정합니다.
안정성은 복제를 통해 얻는 경우가 많습니다. 복제는 구성 요소 수준, 데이터 수준 또는 지리적 수준에서 발생할 수 있습니다. 복제본은 기본적으로 워크로드의 노출 영역을 늘립니다. 보안 관점에서 잠재적인 공격 벡터를 최소화하고 보안 제어 관리를 간소화하기 위해 축소되고 포함된 노출 영역을 사용하는 것이 좋습니다.
마찬가지로 백업과 같은 재해 복구 솔루션은 워크로드의 노출 영역을 늘립니다. 그러나 워크로드의 런타임에서 격리되는 경우가 많습니다. 이러한 솔루션에는 재해 복구 접근 방식과 관련이 있을 수 있는 추가 보안 제어 구현이 필요합니다.
안정성 목표를 위해 아키텍처에 추가 구성 요소가 필요할 수 있으므로 노출 영역이 늘어납니다. 예를 들어 메시지 버스를 추가하여 분리를 통해 요청을 복원할 수 있습니다. 이러한 복잡성이 증가하면 시스템에 아직 사용되지 않는 방식으로 보안이 필요한 새 구성 요소를 추가하여 워크로드의 노출 영역을 증가시킬 수 있습니다. 일반적으로 이러한 구성 요소에는 사용 또는 일반 안정성 패턴을 지원하기 위한 추가 코드 및 라이브러리가 함께 포함되며, 이는 애플리케이션 노출 영역도 증가합니다.
절충: 보안 제어 바이패스입니다. 보안 핵심 요소는 모든 컨트롤이 정상 및 스트레스 시스템 모두에서 활성 상태로 유지되도록 권장합니다.
워크로드가 활성 인시던트 대응에서 해결되는 안정성 이벤트가 발생하는 경우 긴급성으로 인해 워크로드 팀이 일상적인 액세스에 최적화된 보안 제어를 우회해야 한다는 압박이 발생할 수 있습니다.
문제 해결 활동으로 인해 팀은 보안 프로토콜을 일시적으로 사용하지 않도록 설정하여 이미 스트레스를 받은 시스템이 추가 보안 위험에 노출될 수 있습니다. 또한 보안 프로토콜이 즉시 다시 설정되지 않을 위험이 있습니다.
사용자 지정 역할 기반 액세스 제어 할당 또는 좁은 방화벽 규칙과 같은 보안 컨트롤의 세분화된 구현은 구성 복잡성과 민감도를 도입하여 잘못된 구성 가능성을 높입니다. 광범위한 규칙을 사용하여 이러한 잠재적 안정성 영향을 완화하면 세 가지 제로 트러스트 아키텍처 원칙이 모두 침식됩니다.
절충: 이전 소프트웨어 버전. 보안 핵심 요소는 공급업체 보안 패치에 대한 "최신 상태 유지" 접근 방식을 권장합니다.
보안 패치 또는 소프트웨어 업데이트를 적용하면 대상 구성 요소가 중단되어 소프트웨어 변경 중에 사용할 수 없게 될 수 있습니다. 패치를 지연하거나 피하면 잠재적인 안정성 위험을 방지할 수 있지만 진화하는 위협에서 시스템을 보호하지 않습니다.
위의 고려 사항은 워크로드의 코드에도 적용됩니다. 예를 들어 이전 기본 이미지를 사용하는 이전 라이브러리 및 컨테이너를 사용하는 애플리케이션 코드에 적용됩니다. 애플리케이션 코드 업데이트 및 배포가 완화되지 않은 안정성 위험으로 간주되면 애플리케이션은 시간이 지남에 따라 추가 보안 위험에 노출됩니다.
비용 최적화를 사용하는 안정성 절충
절충: 구현 중복성 또는 낭비가 증가했습니다. 비용 최적화 워크로드는 사용량이 부족한 리소스를 최소화하고 리소스를 과도하게 프로비전하지 않습니다.
복제는 안정성을 위한 핵심 전략입니다. 특히 전략은 지정된 수의 동시 노드 오류를 처리하기에 충분한 복제를 갖는 것입니다. 더 많은 동시 노드 오류에 대한 허용 오차는 더 높은 복제본 수를 요구하므로 비용이 증가합니다.
오버 프로비전은 장애 조치(failover) 이벤트 중과 같이 시스템의 예기치 않은 부하를 흡수하는 또 다른 기술로, 그렇지 않으면 안정성 문제가 발생할 수 있습니다. 사용되지 않는 초과 용량은 낭비되는 것으로 간주됩니다.
워크로드가 워크로드의 복구 지점 및 시간 목표를 과도하게 충족하는 재해 복구 솔루션을 사용하는 경우 초과로 인해 낭비로 인해 비용이 높아질 수 있습니다.
워크로드 배포 자체는 안정성에 영향을 미칠 수 있는 잠재적인 원인이며, 이러한 영향은 파란색/녹색과 같은 배포 전략을 통해 배포 시 중복성으로 완화되는 경우가 많습니다. 안전한 배포 중에 리소스를 일시적으로 복제하면 일반적으로 해당 기간 동안 워크로드의 전체 비용이 증가합니다. 배포 빈도에 따라 비용이 증가합니다.
절충: 기능 요구 사항에 맞지 않는 운영에 대한 투자 증가. 비용 최적화에 대한 한 가지 방법은 배포된 솔루션에서 제공하는 값을 평가하는 것입니다.
안정성을 달성하려면 시스템에서 관찰 가능성이 필요합니다. 모니터링 시스템에는 관찰 가능성 데이터 전송 및 수집이 필요합니다. 모니터링 기능이 증가함에 따라 데이터의 빈도와 볼륨이 증가하여 추가 비용이 발생합니다.
워크로드의 안정성 어도던스는 테스트 및 드릴이 필요합니다. 테스트를 디자인하고 실행하려면 시간과 잠재적으로 특수화된 도구가 필요하므로 비용이 발생합니다.
높은 안정성 목표를 가진 워크로드에는 기술 팀 구성원이 공식적인 온-콜 회전의 일부가 되어야 하는 신속한 응답 프로세스가 있는 경우가 많습니다. 이 프로세스는 다른 곳으로 전달될 수 있는 주의 때문에 추가 인건비와 기회 비용 손실을 초래합니다. 또한 프로세스 관리를 위한 잠재적 도구 비용이 발생합니다.
기술 공급자와의 지원 계약은 신뢰할 수 있는 워크로드의 핵심 구성 요소입니다. 지원 수준이 과도하게 프로비전되어 낭비가 발생하므로 활용되지 않는 지원 계약입니다.
운영 우수성과 안정성 절충
절충: 운영 복잡성이 증가합니다. 안정성 자체와 같은 운영 우수성은 단순성을 우선합니다.
일반적으로 안정성은 워크로드의 복잡성을 증가합니다. 워크로드의 복잡성이 증가함에 따라 워크로드의 운영 요소가 증가하여 배포 조정 및 구성 노출 영역 측면에서 추가된 구성 요소 및 프로세스를 지원할 수도 있습니다.
워크로드에 대한 포괄적인 모니터링 전략을 갖는 것은 운영 우수성의 핵심 부분입니다. 안정성 디자인 패턴을 구현하기 위해 아키텍처에 추가 구성 요소를 도입하면 관리해야 하는 데이터 원본이 늘어나고 분산 추적 및 관찰 가능성을 구현하는 복잡성이 증가합니다.
여러 지역을 사용하여 단일 지역 리소스 용량 제약 조건을 극복하거나 활성/활성 아키텍처를 구현하면 워크로드 운영 관리의 복잡성이 증가합니다. 이러한 복잡성은 여러 지역을 관리해야 할 필요성과 지역 간의 데이터 복제를 관리해야 하는 필요성에 의해 도입되었습니다.
절충: 팀 지식과 인식을 생성하기 위한 노력이 증가했습니다. Operational Excellence 핵심 요소는 절차 및 토폴로지용 문서 리포지토리를 유지하고 유지 관리하는 것이 좋습니다.
안정성 구성 요소 및 패턴을 추가하여 워크로드가 더욱 견고해짐에 따라 운영 절차 및 아티팩트 설명서를 유지하는 데 더 많은 시간이 걸립니다.
워크로드의 구성 요소 수가 증가함에 따라 학습이 더 복잡해집니다. 이러한 복잡성은 온보딩에 필요한 시간에 영향을 줍니다. 복잡성은 또한 제품 로드맵 및 최신 서비스 수준 지침을 추적하는 데 필요한 지식을 증가합니다.
성능 효율성과의 안정성 절충
절충: 대기 시간이 증가했습니다. 성능 효율성에는 사용자 및 데이터 흐름에 대한 성능 목표를 달성하기 위한 시스템이 필요합니다.
안정성 패턴은 복제본 오작동에서 살아남기 위해 데이터 복제를 통합하는 경우가 많습니다. 복제는 특정 사용자 또는 데이터 흐름에 대한 성능 예산의 일부를 사용하는 신뢰할 수 있는 데이터 쓰기 작업에 대한 추가 대기 시간을 도입합니다.
안정성은 경우에 따라 다양한 형태의 리소스 분산을 사용하여 부하를 정상 복제본에 배포하거나 재배포합니다. 분산에 사용되는 전용 구성 요소는 일반적으로 분산되는 요청 또는 프로세스의 성능에 영향을 줍니다.
범위가 지정된 영향에서 벗어나기 위해 지리적 경계 또는 가용성 영역에 구성 요소를 분산하면 해당 가용성 경계에 걸쳐 있는 구성 요소 간의 통신에 네트워크 대기 시간이 발생합니다.
광범위한 프로세스는 워크로드의 상태를 관찰하는 데 사용됩니다. 모니터링은 안정성에 중요하지만 계측은 시스템 성능에 영향을 줄 수 있습니다. 관찰 가능성이 높아짐에 따라 성능이 저하될 수 있습니다.
절충: 오버 프로비저닝이 증가했습니다. 성능 효율성 핵심 요소는 과잉 프로비저닝을 권장하지 않고 수요를 충족하기에 충분한 리소스를 사용하는 것이 좋습니다.
자동 크기 조정 작업은 즉각적이지 않으므로 모양을 지정하거나 부드럽게 할 수 없는 갑자기 급격한 수요 급증을 안정적으로 처리할 수 없습니다. 따라서 더 큰 인스턴스 또는 더 많은 인스턴스를 통한 오버 프로비전은 수요 신호와 공급 생성 간의 지연을 고려하여 버스트를 흡수하는 데 도움이 되는 중요한 안정성 전술입니다. 사용되지 않는 용량은 성능 효율성의 목표에 대응합니다.
경우에 따라 수요에 따라 구성 요소를 확장할 수 없으며 해당 수요는 완전히 예측할 수 없습니다. 큰 인스턴스를 사용하여 최악의 경우를 처리하면 사용 사례를 벗어난 상황에서 낭비가 과도하게 프로비전됩니다.
관련 링크
다른 핵심 요소에 대한 절충을 살펴봅니다.