절충 및 위험 이해
복원력 있는 아키텍처는 잘 테스트되고 간단하며 신뢰할 수 있는 몇 가지 메커니즘을 사용하여 장애에 대응해야 합니다. 가장 높은 수준의 복원력을 달성하려면 워크로드가 가능한 한 많은 장애 모드를 자동으로 감지하고 장애를 복구해야 합니다. 이렇게 하려면 복원력 분석을 수행하는 데 광범위한 투자가 필요합니다. 즉, 더 높은 수준의 복원력을 달성하려면 절충이 필요합니다. 그러나 절충을 계속함에 따라 복원력 목표에 비해 수익이 감소하는 지점에 도달합니다. 다음은 가장 일반적인 절충 조건입니다.
-
비용 - 중복 구성 요소, 향상된 관찰성, 추가 도구 또는 리소스 사용률 증가로 인해 비용이 증가합니다.
-
시스템 복잡성 - 완화 솔루션을 포함하여 장애 모드를 감지하고 이에 대응하며 관리형 서비스를 사용하지 않을 경우 시스템 복잡성이 증가합니다.
-
엔지니어링 작업 - 장애 모드를 감지하고 이에 대응하는 솔루션을 빌드하려면 추가적인 개발자 시간이 필요합니다.
-
운영 오버헤드 - 더 많은 장애 모드를 처리하는 시스템을 모니터링하고 운영하면 특히 관리형 서비스를 사용하여 특정 장애 모드를 완화할 수 없는 경우 운영 오버헤드가 증가할 수 있습니다.
-
지연 시간 및 일관성 - 가용성을 우선하는 분산 시스템을 빌드하려면 PACELC 이론
에 설명된 대로 일관성과 지연 시간이 절충되어야 합니다.
사용자 스토리에서 식별된 장애 모드에 대한 완화 조치를 고려할 때 수행해야 할 절충을 고려합니다. 보안과 마찬가지로 복원력은 최적화 문제입니다. 식별된 장애로 인한 위험을 방지, 완화, 이전 또는 허용할지 결정해야 합니다. 피할 수 있는 몇 가지 장애 모드, 허용할 수 있는 장애, 전송할 수 있는 몇 가지 장애가 있을 수 있습니다. 식별한 여러 장애 모드를 완화하도록 선택할 수 있습니다. 어떤 접근 방식을 취할지 결정하려면 다음 두 가지 질문을 하여 평가를 수행합니다. 실패가 발생할 가능성은 얼마나 되나요? 이 경우 워크로드에 미치는 영향은 무엇인가요?
가능성이란 이벤트가 발생할 확률입니다. 예를 들어 사용자 스토리에 단일 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 작동하는 구성 요소가 있는 경우 시스템 작동 중 패치 절차 또는 운영 체제 오류로 인해 구성 요소가 중단될 수 있습니다. 또는 기본 인스턴스와 보조 인스턴스 간에 데이터를 동기화하는 Amazon Relational Database Service(Amazon RDS)에서 관리하는 데이터베이스는 완전히 사용할 수 없게 될 가능성도 있습니다(그럴 가능성은 낮음).
영향은 이벤트로 인해 발생할 수 있는 피해의 추정치입니다. 재무 및 평판 관점에서 평가해야 하며, 이는 영향을 미치는 사용자 스토리의 가치에 관련됩니다. 예를 들어 데이터베이스가 압도되면 전자 상거래 시스템의 새 주문 수락 기능에 상당한 영향을 미칠 수 있습니다. 그러나 로드 밸런서 이면의 인스턴스 20개 플릿에서 단일 인스턴스가 손실될 경우 거의 영향을 미치지 않을 수 있습니다.
이러한 질문에 대한 답변은 위험을 완화하기 위해 해야 하는 절충 비용과 비교할 수 있습니다. 위험 임계치와 복원력 목표 관점에서 이 정보를 고려하면 적극적으로 완화하려는 장애 모드에 대한 의사 결정을 도움을 줍니다.