실패 모드 분석을 수행하기 위한 권장 사항

이 Azure Well-Architected Framework 안정성 검사 목록 권장 사항에 적용됩니다.

RE:03 FMA(오류 모드 분석)를 사용하여 솔루션 구성 요소의 잠재적 오류를 식별하고 우선 순위를 지정합니다. FMA를 수행하여 각 실패 모드의 위험과 영향을 평가할 수 있습니다. 워크로드가 응답하고 복구하는 방법을 결정합니다.

이 가이드에서는 워크로드에 대한 FMA(오류 모드 분석)를 수행하기 위한 모범 사례를 설명합니다. FMA는 워크로드 및 관련 흐름 내에서 잠재적 실패 지점을 식별하고 그에 따라 완화 작업을 계획하는 방법입니다. 흐름의 각 단계에서는 여러 오류 유형의 폭발 반경을 식별하여 새 워크로드를 설계하거나 기존 워크로드를 리팩터링하여 오류의 광범위한 영향을 최소화할 수 있습니다.

FMA의 핵심 신조는 적용하는 복원력 계층 수에 관계없이 오류가 발생한다는 것입니다. 더 복잡한 환경은 더 많은 유형의 오류에 노출됩니다. 이러한 현실을 감안할 때 FMA를 사용하면 대부분의 오류 유형을 견딜 수 있도록 워크로드를 설계하고 오류가 발생할 때 정상적으로 복구할 수 있습니다.

FMA를 완전히 건너뛰거나 불완전한 분석을 수행하는 경우 워크로드는 예측되지 않은 동작과 최적이 아닌 디자인으로 인한 잠재적인 중단의 위험이 있습니다.

정의

용어 정의
오류 모드 하나 이상의 워크로드 구성 요소가 성능이 저하되거나 사용할 수 없는 지점에 심각한 영향을 줄 수 있는 문제 유형입니다.
완화 방법 사전에 또는 사후적으로 문제를 해결하기 위해 식별한 활동입니다.
감지 인프라, 데이터 및 앱 모니터링 및 경고 프로세스 및 절차.

주요 디자인 전략

사전 요구 사항

흐름을 식별하기 위한 권장 사항을 검토하고 구현합니다. 중요도에 따라 사용자 및 시스템 흐름을 식별하고 우선 순위를 지정했다고 가정합니다.

수집한 데이터와 작업에서 만든 아티팩트가 흐름 전체에서 관련된 데이터 경로에 대한 구체적인 설명을 제공합니다. FMA 작업에 성공하려면 아티팩트에서 정확도와 철저함이 중요합니다.

FMA 접근 방식

중요한 흐름을 확인한 후 필요한 구성 요소를 계획할 수 있습니다. 다음으로 각 흐름 단계에 따라 타사 서비스 및 잠재적 실패 지점을 포함한 종속성을 식별하고 완화 전략을 계획합니다.

워크로드 분해

아이디어에서 디자인으로 전환할 때 워크로드를 지원하는 데 필요한 구성 요소 유형을 식별해야 합니다. 워크로드는 계획해야 하는 필요한 구성 요소를 결정합니다. 일반적으로 수신 제어, 네트워킹, 컴퓨팅, 데이터, 스토리지, 지원 서비스(예: 인증, 메시징, 비밀 또는 키 관리) 및 송신 제어를 계획해야 합니다. 디자인 작업의 이 단계에서는 배포할 특정 기술을 알 수 없으므로 디자인이 다음 예제와 같이 표시될 수 있습니다.

디자인 예제를 보여 주는 다이어그램

초기 아키텍처 디자인을 만든 후 흐름을 오버레이하여 해당 흐름에 사용되는 불연속 구성 요소를 식별하고 흐름 및 해당 구성 요소를 설명하는 목록 또는 워크플로 다이어그램을 만들 수 있습니다. 구성 요소의 중요도를 이해하려면 흐름에 할당한 중요도 정의를 사용합니다. 구성 요소 오작동이 흐름에 미치는 영향을 고려합니다.

종속성 식별

단일 실패 지점 분석을 수행하기 위해 워크로드 종속성을 식별합니다. 워크로드를 분해하고 흐름을 오버레이하면 워크로드 내부 및 외부의 종속성에 대한 인사이트를 얻을 수 있습니다.

내부 종속성은 워크로드가 작동하는 데 필요한 워크로드 scope 구성 요소입니다. 일반적인 내부 종속성에는 API 또는 Azure Key Vault 같은 비밀/키 관리 솔루션이 포함됩니다. 이러한 종속성을 위해 가용성 SLA 및 크기 조정 제한과 같은 안정성 데이터를 캡처합니다. 외부 종속성은 다른 애플리케이션 또는 타사 서비스와 같은 워크로드의 scope 외부에 필요한 구성 요소입니다. 일반적인 외부 종속성에는 Microsoft Entra ID 같은 인증 솔루션과 Azure ExpressRoute와 같은 클라우드 연결 솔루션이 포함됩니다.

워크로드의 종속성을 식별하고 문서화하고 흐름 설명서 아티팩트에서 포함합니다.

실패 지점

워크로드의 중요한 흐름에서 각 구성 요소를 고려하고 해당 구성 요소와 해당 종속성이 실패 모드의 영향을 받는 방법을 결정합니다. 복원력 및 복구를 계획할 때 고려해야 할 많은 실패 모드가 있습니다. 한 구성 요소는 지정된 시간에 둘 이상의 오류 모드의 영향을 받을 수 있습니다. 이러한 실패 모드는 다음과 같습니다.

  • 지역 가동 중단. 전체 Azure 지역을 사용할 수 없습니다.

  • 가용성 영역 중단. Azure 가용성 영역을 사용할 수 없습니다.

  • 서비스 중단. 하나 이상의 Azure 서비스를 사용할 수 없습니다.

  • DDoS(분산 서비스 거부) 또는 기타 악의적인 공격.

  • 앱 또는 구성 요소 구성이 잘못되었습니다.

  • 연산자 오류입니다.

  • 계획된 유지 관리 중단.

  • 구성 요소 오버로드.

분석은 항상 분석하려는 흐름의 컨텍스트에 있어야 하므로 사용자에게 미치는 영향과 해당 흐름의 예상 결과를 문서화해야 합니다. 예를 들어 전자 상거래 애플리케이션이 있고 고객 흐름을 분석하는 경우 하나 이상의 구성 요소에 대한 특정 오류 모드의 영향은 모든 고객이 체크 아웃을 완료할 수 없다는 것입니다.

각 유형의 실패 모드 가능성을 고려합니다. 일부는 다중 영역 또는 다중 지역 중단과 같이 매우 가능성이 낮으며 중복성 이외의 완화 계획을 추가하는 것은 리소스와 시간을 잘 사용하지 않습니다.

완화 방법

완화 전략은 더 많은 복원력을 구축하고 성능 저하를 위한 설계라는 두 가지 광범위한 범주로 분류됩니다.

더 많은 복원력을 구축하려면 인프라, 데이터 및 네트워킹과 같은 구성 요소에 중복성을 추가하고 애플리케이션 디자인이 모놀리식 애플리케이션을 격리된 앱 및 마이크로 서비스로 분리하는 등 내구성에 대한 모범 사례를 따르는지 확인하는 것이 포함됩니다. 자세한 내용은 중복성에 대한 권장 사항자체 보존을 위한 권장 사항을 참조하세요.

성능 저하를 위해 설계하려면 흐름의 하나 이상의 구성 요소를 사용하지 않도록 설정할 수 있지만 해당 흐름을 완전히 사용하지 않도록 설정하지 않는 잠재적인 실패 지점을 식별합니다. 엔드 투 엔드 흐름의 기능을 유지하려면 하나 이상의 단계를 다른 구성 요소로 다시 라우팅하거나 실패한 구성 요소가 함수를 실행하므로 사용자 환경에서 함수를 더 이상 사용할 수 없도록 허용해야 할 수 있습니다. 전자 상거래 애플리케이션 예제로 돌아가려면 마이크로 서비스와 같은 실패한 구성 요소로 인해 권장 엔진을 사용할 수 없게 될 수 있지만 고객은 여전히 제품을 검색하고 트랜잭션을 완료할 수 있습니다.

종속성에 대한 완화도 계획해야 합니다. 강력한 종속성은 애플리케이션 기능 및 가용성에서 중요한 역할을 합니다. 부재 중이거나 오작동이 발생하는 경우 상당한 영향을 미칠 수 있습니다. 약한 종속성이 없는 경우 특정 기능에만 영향을 줄 수 있으며 전체 가용성에는 영향을 미치지 않을 수 있습니다. 이러한 구분은 서비스와 해당 종속성 간의 고가용성 관계를 유지하는 비용을 반영합니다. 애플리케이션에 필수적인 구성 요소를 식별할 수 있도록 종속성을 강력하거나 약한 것으로 분류합니다.

애플리케이션이 없이는 작동할 수 없는 강력한 종속성이 있는 경우 이러한 종속성의 가용성 및 복구 대상이 애플리케이션 자체의 대상과 일치해야 합니다. 종속성을 최소화하여 애플리케이션 안정성을 제어합니다. 자세한 내용은 확장성을 달성하기 위해 애플리케이션 서비스 간의 조정 최소화를 참조하세요.

애플리케이션 수명 주기가 종속성의 수명 주기와 밀접하게 결합된 경우, 특히 새 릴리스의 경우 애플리케이션의 운영 민첩성이 제한될 수 있습니다.

감지

오류 검색은 분석에서 오류 지점을 올바르게 식별하고 완화 전략을 올바르게 계획했는지 확인하는 데 필수적입니다. 이 컨텍스트에서 검색은 인프라, 데이터 및 애플리케이션을 모니터링하고 문제가 발생할 때 경고를 의미합니다. 가능한 한 검색을 자동화하고 작업 프로세스에 중복성을 구축하여 경고가 항상 포착되고 비즈니스 요구 사항을 충족할 수 있을 만큼 신속하게 응답되도록 합니다. 자세한 내용은 모니터링 권장 사항을 참조하세요.

결과

분석 결과를 위해 결과를 효과적으로 전달하는 문서 집합, 흐름 구성 요소 및 완화에 대해 내린 결정, 워크로드에 대한 오류의 영향을 만듭니다.

분석에서 심각도 및 가능성에 따라 식별한 실패 모드 및 완화 전략의 우선 순위를 지정합니다. 이 우선 순위를 사용하여 완화 전략을 설계하는 데 시간, 노력 및 리소스를 소비할 수 있을 만큼 일반적이고 심각한 오류 모드에 설명서를 집중합니다. 예를 들어 발생 또는 검색에서 매우 드문 일부 오류 모드가 있을 수 있습니다. 완화 전략을 설계하는 것은 비용 가치가 없습니다.

설명서 시작점은 다음 예제 표를 참조하세요.

초기 FMA 연습 중에 생성하는 문서는 대부분 이론적인 계획입니다. FMA 문서를 정기적으로 검토하고 업데이트하여 워크로드를 최신 상태로 유지해야 합니다. 카오스 테스트 및 실제 환경은 시간이 지남에 따라 분석을 구체화하는 데 도움이 됩니다.

Azure 촉진

Azure MonitorLog Analytics를 사용하여 워크로드의 문제를 검색합니다. 인프라, 앱 및 데이터베이스와 관련된 문제에 대한 추가 인사이트를 보려면 Application Insights, Container Insights, Network Insights, VM InsightsSQL Insights와 같은 도구를 사용합니다.

Azure Chaos Studio는 카오스 엔지니어링을 사용하여 클라우드 애플리케이션 및 서비스 복원력을 측정, 이해 및 개선하는 데 도움이 되는 관리형 서비스입니다.

일반적인 Azure 서비스에 FMA 원칙을 적용하는 방법에 대한 자세한 내용은 Azure 애플리케이션에 대한 실패 모드 분석을 참조하세요.

예제

다음 표에서는 Azure SQL 데이터베이스가 있는 Azure App Service 인스턴스에서 호스트되고 Azure Front Door가 앞에 있는 전자 상거래 웹 사이트에 대한 FMA 예제를 보여 줍니다.

사용자 흐름: 사용자 로그인, 제품 검색 및 쇼핑 카트 상호 작용

구성 요소 위험 Likelihood 효과/완화/참고 Outage
Microsoft Entra ID 서비스 중단 낮음 전체 워크로드 중단. 수정하기 위해 Microsoft에 종속됩니다. 전체
Microsoft Entra ID 잘못된 구성 중간 사용자가 로그인할 수 없습니다. 다운스트림 효과가 없습니다. 기술 지원팀은 구성 문제를 ID 팀에 보고합니다. 없음
Azure Front Door 서비스 중단 낮음 외부 사용자에 대한 전체 중단. 수정하기 위해 Microsoft에 종속됩니다. 외부만
Azure Front Door 지역 가동 중단 매우 낮음 최소 효과. Azure Front Door는 글로벌 서비스이므로 글로벌 트래픽 라우팅은 영향을 미치지 않는 Azure 지역을 통해 트래픽을 전달합니다. 없음
Azure Front Door 잘못된 구성 중간 잘못된 구성은 배포 중에 catch되어야 합니다. 구성 업데이트 중에 이러한 문제가 발생하는 경우 관리자는 변경 내용을 롤백해야 합니다. 구성 업데이트로 인해 짧은 외부 중단이 발생합니다. 외부만
Azure Front Door DDoS 공격 중간 중단 가능성이 있습니다. Microsoft는 DDoS(L3 및 L4) 보호를 관리하고 Azure Web Application Firewall 대부분의 위협을 차단합니다. L7 공격으로 인한 잠재적 위험. 부분 가동 중단 가능성
Azure SQL 서비스 중단 낮음 전체 워크로드 중단. 수정하기 위해 Microsoft에 종속됩니다. 전체
Azure SQL 지역 가동 중단 매우 낮음 자동 장애 조치(failover) 그룹이 보조 지역으로 장애 조치(failover)됩니다. 장애 조치(failover) 중에 중단될 수 있습니다. 안정성 테스트 중에 확인할 RTO(복구 시간 목표) 및 RPO(복구 지점 목표)입니다. 잠재적인 전체
Azure SQL 가용성 영역 중단 낮음 영향 없음 없음
Azure SQL 악의적인 공격(삽입) 중간 최소한의 위험. 모든 Azure SQL 인스턴스는 프라이빗 엔드포인트를 통해 가상 네트워크에 바인딩되고 NSG(네트워크 보안 그룹)는 가상 네트워크 보호를 추가로 추가합니다. 잠재적인 낮은 위험
App Service 서비스 중단 낮음 전체 워크로드 중단. 수정하기 위해 Microsoft에 종속됩니다. 전체
App Service 지역 가동 중단 매우 낮음 최소 효과. 영향을 받은 지역의 사용자에 대한 대기 시간. Azure Front Door는 자동으로 트래픽을 영향을 미치지 않는 지역으로 라우팅합니다. 없음
App Service 가용성 영역 중단 낮음 아무런 영향이 없습니다. App Services는 영역 중복으로 배포되었습니다. 영역 중복이 없으면 적용될 가능성이 있습니다. 없음
App Service DDoS 공격 중간 최소한의 효과. 수신 트래픽은 Azure Front Door 및 Azure Web Application Firewall 의해 보호됩니다. 없음

안정성 검사 목록

전체 권장 사항 집합을 참조하세요.