안정성 절충

신뢰할 수 있는 워크로드는 정의된 안정성 목표를 일관되게 충족합니다. 안정성에 영향을 주는 이벤트를 우회하여 설정된 복원력 목표에 도달해야 합니다. 그러나 현실적으로 워크로드는 이러한 이벤트의 영향을 허용 및 제어하고 활성 오작동 중에 미리 결정된 수준에서 작업을 유지 관리해야 합니다. 재해 발생 시에도 신뢰할 수 있는 워크로드는 지정된 기간 내에 특정 상태로 복구되어야 하며, 이 두 가지 모두 관련자 간에 합의됩니다. 신속한 검색 및 복구를 달성할 수 있는 인시던트 대응 계획은 매우 중요합니다.

워크로드의 디자인 단계에서 안정성 디자인 원칙 에 따른 결정과 안정성에 대한 디자인 검토 검사 목록 의 권장 사항이 다른 핵심 요소의 목표와 최적화에 미치는 영향을 고려해야 합니다. 특정 결정은 일부 핵심 요소에 도움이 될 수 있지만 다른 사람들에게는 절충안이 될 수 있습니다. 이 문서에서는 워크로드 아키텍처 및 안정성을 위한 작업을 디자인할 때 워크로드 팀이 발생할 수 있는 절충 사례에 대해 설명합니다.

보안과의 안정성 절충

절충: 워크로드 노출 영역이 증가했습니다. 보안 핵심 요소는 공격 벡터를 최소화하고 보안 제어 관리를 줄이기 위해 축소되고 포함된 노출 영역의 우선 순위를 지정합니다.

  • 안정성은 종종 복제를 통해 얻습니다. 복제는 구성 요소 수준, 데이터 수준 또는 지리적 수준에서 발생할 수 있습니다. 복제본은 의도적으로 워크로드의 노출 영역을 늘립니다. 보안 관점에서 잠재적인 공격 벡터를 최소화하고 보안 제어 관리를 간소화하기 위해 축소되고 포함된 노출 영역이 선호됩니다.

  • 마찬가지로 백업과 같은 재해 복구 솔루션은 워크로드의 노출 영역을 늘립니다. 그러나 워크로드의 런타임에서 격리되는 경우가 많습니다. 이를 위해서는 재해 복구 솔루션에 특정할 수 있는 추가 보안 제어를 구현해야 합니다.

  • 안정성 목표를 위해 아키텍처에 추가 구성 요소가 필요할 수 있으므로 노출 영역이 늘어납니다. 예를 들어 요청 복원력을 만들기 위해 메시지 버스가 추가될 수 있습니다. 이러한 복잡성 증가는 시스템에 아직 사용되지 않은 방식으로 보안이 필요한 새 구성 요소를 추가하여 워크로드의 노출 영역을 증가합니다. 일반적으로 이러한 구성 요소에는 사용 또는 일반 안정성 패턴을 지원하기 위한 추가 코드 및 라이브러리가 함께 제공됩니다. 이는 애플리케이션의 노출 영역도 증가합니다.

절충: 보안 제어 바이패스. 보안 핵심 요소는 모든 컨트롤이 정상 및 스트레스 시스템에서 활성 상태로 유지되도록 권장합니다.

  • 워크로드에 활성 인시던트 대응에서 해결되는 안정성 이벤트가 발생하는 경우 긴급성으로 인해 워크로드 팀이 일상적인 액세스에 최적화된 보안 제어를 무시해야 할 수 있습니다.

  • 문제 해결 활동으로 인해 팀은 보안 프로토콜을 일시적으로 사용하지 않도록 설정하여 이미 강조된 시스템이 추가 보안 위험에 노출될 수 있습니다. 보안 프로토콜이 즉시 다시 설정되지 않을 위험이 있습니다.

  • 역할 기반 액세스 제어 할당 또는 방화벽 규칙과 같은 보안 제어의 세분화된 구현은 구성 복잡성과 민감도를 도입하여 잘못된 구성 가능성을 높입니다. 광범위한 규칙을 사용하여 이러한 잠재적 안정성 영향을 완화하면 세 가지 제로 트러스트 아키텍처 원칙이 모두 침식됩니다.

절충: 이전 소프트웨어 버전입니다. 보안 핵심 요소는 공급업체 보안 패치에 대한 "최신 상태 유지" 접근 방식을 권장합니다.

  • 보안 패치 또는 소프트웨어 업데이트를 적용하면 대상 구성 요소가 잠재적으로 중단되어 소프트웨어 변경 중에 사용할 수 없게 될 수 있습니다. 패치를 지연하거나 방지하면 잠재적인 안정성 위험을 방지할 수 있지만 진화하는 위협에 대해 시스템이 보호되지 않습니다.

  • 위의 고려 사항은 워크로드의 코드에도 적용됩니다. 예를 들어 이전 기본 이미지를 사용하는 이전 라이브러리 및 컨테이너를 사용하는 애플리케이션 코드에 적용됩니다. 애플리케이션 코드를 업데이트하고 배포하는 것이 완화되지 않은 안정성 위험으로 간주되는 경우 애플리케이션은 시간이 지남에 따라 추가 보안 위험에 노출됩니다.

비용 최적화를 사용한 안정성 절충

절충: 구현 중복성 또는 낭비가 증가했습니다. 비용 최적화 워크로드는 사용량이 부족한 리소스를 최소화하고 리소스를 과도하게 프로비저닝하지 않도록 합니다.

  • 복제는 안정성을 위한 핵심 전략입니다. 특히 전략은 지정된 수의 동시 노드 오류를 처리하기에 충분한 복제를 갖는 것입니다. 더 많은 동시 노드 오류에 대한 허용 오차를 사용하려면 더 높은 복제본(replica) 수가 필요하므로 비용이 증가합니다.

  • 오버 프로비전은 시스템의 예기치 않은 부하를 흡수하는 또 다른 기술로, 그렇지 않으면 안정성 문제가 발생할 수 있습니다. 사용되지 않는 초과 용량은 낭비되는 것으로 간주됩니다.

  • 워크로드가 워크로드의 복구 지점 및 시간 목표를 과도하게 충족하는 재해 복구 솔루션을 사용하는 경우 초과로 인해 낭비로 인해 비용이 높아질 수 있습니다.

  • 워크로드 배포 자체는 안정성에 영향을 미칠 수 있는 잠재적 소스이며, 이러한 영향은 종종 파란색/녹색과 같은 배포 전략을 통해 배포 시 중복성에 의해 완화됩니다. 안전한 배포 중에 리소스를 일시적으로 복제하면 일반적으로 해당 기간 동안 워크로드의 전체 비용이 증가합니다. 배포 빈도에 따라 비용이 증가합니다.

절충: 기능 요구 사항에 맞지 않는 운영에 대한 투자가 증가했습니다. 비용 최적화에 대한 한 가지 방법은 배포된 솔루션에서 제공하는 값을 평가하는 것입니다.

  • 안정성을 달성하려면 시스템에 가시성이 필요합니다. 모니터링 시스템에는 가시성 데이터 전송 및 수집이 필요합니다. 모니터링 기능이 증가함에 따라 데이터의 빈도와 볼륨이 증가하여 추가 비용이 발생합니다.

  • 워크로드의 안정성 어도원은 테스트 및 드릴이 필요합니다. 테스트를 디자인하고 실행하려면 시간이 걸리고 잠재적으로 특수화된 도구가 필요하므로 비용이 발생합니다.

  • 안정성 목표가 높은 워크로드에는 기술 팀 구성원이 공식적인 호출 시 순환의 일부가 되어야 하는 신속한 응답 프로세스가 있는 경우가 많습니다. 이 프로세스는 다른 곳으로 전달될 수 있는 주의로 인해 추가 인건비와 기회 비용 손실을 초래합니다. 또한 프로세스 관리를 위한 잠재적 도구 비용이 발생합니다.

  • 기술 공급자와의 지원 계약은 신뢰할 수 있는 워크로드의 핵심 구성 요소입니다. 지원 수준이 과도하게 프로비전되어 낭비가 발생하므로 활용되지 않는 지원 계약.

운영 우수성과의 안정성 절충

절충: 운영 복잡성이 증가했습니다. 안정성 자체와 같은 운영 우수성은 단순성 우선 순위를 지정합니다.

  • 안정성은 일반적으로 워크로드의 복잡성을 증가합니다. 워크로드의 복잡성이 증가함에 따라 워크로드의 운영 요소가 증가하여 배포 조정 및 구성 노출 영역 측면에서 추가된 구성 요소 및 프로세스를 지원할 수도 있습니다.

  • 워크로드에 대한 포괄적인 모니터링 전략을 갖추는 것은 운영 우수성의 핵심 부분입니다. 안정성 디자인 패턴을 구현하기 위해 아키텍처에 추가 구성 요소를 도입하면 관리할 데이터 원본이 더 많아지고 분산 추적 및 가시성 구현의 복잡성이 증가합니다.

  • 여러 지역을 사용하여 단일 지역 리소스 용량 제약 조건을 극복하거나 활성/활성 아키텍처를 구현하면 워크로드 운영 관리의 복잡성이 증가합니다. 이러한 복잡성은 여러 지역을 관리해야 할 필요성과 지역 간의 데이터 복제를 관리해야 하는 필요성에 의해 도입되었습니다.

절충: 팀 지식과 인식을 생성하기 위한 노력이 증가했습니다. 운영 우수성 핵심 요소는 절차 및 토폴로지를 위해 설명서 리포지토리를 유지하고 유지 관리하는 것이 좋습니다.

  • 안정성 구성 요소 및 패턴을 추가하여 워크로드가 더욱 강력해짐에 따라 운영 절차 및 아티팩트 설명서를 유지하는 데 더 많은 시간이 걸립니다.

  • 워크로드의 구성 요소 수가 증가함에 따라 학습이 더 복잡해집니다. 이러한 복잡성은 온보딩에 필요한 시간에 영향을 미치며 제품 로드맵 및 서비스 수준 지침을 추적하는 데 필요한 지식을 향상합니다.

성능 효율성을 사용하는 안정성 절충

절충: 대기 시간이 증가했습니다. 성능 효율성을 위해서는 시스템이 사용자 및 데이터 흐름에 대한 성능 목표를 달성해야 합니다.

  • 안정성 패턴은 오작동을 복제본(replica) 살아남기 위해 데이터 복제를 통합하는 경우가 많습니다. 복제는 특정 사용자 또는 데이터 흐름에 대한 성능 예산의 일부를 사용하는 신뢰할 수 있는 데이터 쓰기 작업에 대한 추가 대기 시간을 도입합니다.

  • 안정성은 경우에 따라 다양한 형태의 리소스 분산을 사용하여 부하를 정상 복제본에 배포하거나 재배포합니다. 분산에 사용되는 전용 구성 요소는 일반적으로 분산되는 요청 또는 프로세스의 성능에 영향을 줍니다.

  • 범위가 지정된 영향을 견딜 수 있도록 지리적 경계 또는 가용성 영역에 구성 요소를 분산하면 해당 가용성 경계에 걸쳐 있는 구성 요소 간의 통신에서 네트워크 대기 시간이 발생합니다.

  • 광범위한 프로세스는 워크로드의 상태를 관찰하는 데 사용됩니다. 모니터링은 안정성에 중요하지만 계측은 시스템 성능에 영향을 줄 수 있습니다. 가시성이 증가함에 따라 성능이 저하될 수 있습니다.

절충: 과잉 프로비저닝이 증가했습니다. 성능 효율성 핵심 요소는 과잉 프로비저닝을 권장하지 않고 수요를 충족하기에 충분한 리소스만 사용하도록 권장합니다.

  • 자동 크기 조정 작업은 즉각적이지 않으므로 셰이핑하거나 부드럽게 할 수 없는 갑자기 급격한 수요 급증을 안정적으로 처리할 수 없습니다. 따라서 더 큰 인스턴스 또는 더 많은 인스턴스를 통한 오버 프로비전은 수요 신호와 공급 생성 간의 지연을 고려하기 위한 중요한 안정성 전술입니다. 사용되지 않는 용량은 성능 효율성의 목표에 대응합니다.

  • 경우에 따라 구성 요소를 수요에 따라 스케일링할 수 없으며 해당 수요는 완전히 예측할 수 없습니다. 대규모 인스턴스를 사용하여 최악의 경우를 처리하면 사용 사례 외부의 상황에서 낭비가 과도하게 프로비전됩니다.

다른 핵심 요소에 대한 절충을 살펴봅니다.