REL 11: 구성 요소 장애를 견디도록 워크로드를 설계하려면 어떻게 해야 합니까?
고가용성 및 낮은 MTTR(평균 복구 시간)이 요구되는 워크로드는 복원력을 고려하여 설계되어야 합니다.
리소스
Static stability in AWS: AWS re:Invent 2019: Introducing The Amazon Builders’ Library
(DOP328)
AWS OpsWorks: Using Auto Healing to Replace Failed Instances
What Is Amazon EventBridge?
Amazon Route 53: Choosing a Routing Policy
What Is AWS Global Accelerator?
The Amazon Builders' Library: Static stability using Availability Zones
The Amazon Builders' Library: Implementing health checks
Well-Architected lab: Level 300: Implementing Health Checks and Managing Dependencies
to Improve Reliability
The Berkeley/Stanford Recovery-Oriented Computing (ROC) Project
Multiple data center HA network connectivity
AWS Marketplace: products that can be used for fault tolerance
APN
Partner: partners that can help with automation of your fault tolerance
모범 사례:
-
워크로드의 모든 구성 요소를 모니터링하여 장애 감지: 워크로드 상태를 지속적으로 모니터링하여 성능 저하 또는 완전한 장애가 발생하는 즉시 수동 및 자동화된 시스템을 통해 이를 인식할 수 있도록 합니다. 비즈니스 가치를 기반으로 KPI(핵심 성능 지표)를 모니터링합니다.
-
정상 리소스로 장애 조치: 리소스 장애가 발생할 경우 정상 리소스가 계속해서 요청을 처리할 수 있는지 확인합니다. 위치 장애(예: 가용 영역 또는 AWS 리전)의 경우, 손상되지 않은 위치의 정상 리소스로 장애 조치할 수 있는 시스템을 갖추고 있어야 합니다.
-
모든 계층에서 복구 자동화: 장애가 감지되면 자동화된 기능을 사용하여 수정 작업을 수행합니다.
-
정적 안정성을 사용하여 바이모달 동작 방지: 바이모달 동작은 워크로드가 정상 모드와 장애 모드에서 다른 동작을 보이는 것을 말합니다. 예를 들어 가용 영역에 장애가 발생할 경우 새 인스턴스를 시작하는 방법을 사용할 수 있습니다. 그러나 이 방법 대신 정적으로 안정적이며 한 모드에서만 작동하는 워크로드를 구축해야 합니다. 한 AZ가 제거된 경우 제거된 영역의 워크로드 로드를 처리하기에 충분한 인스턴스를 각 가용 영역에 프로비저닝한 다음 Elastic Load Balancing 또는 Amazon Route 53 상태 확인을 사용하여 손상된 인스턴스에서 로드를 이동합니다.
-
이벤트가 가용성에 영향을 미치는 경우 알림 전송: 중대한 이벤트가 감지되면 이벤트로 인해 야기된 문제가 자동으로 해결된 경우에도 알림이 전송됩니다.
개선 계획
워크로드의 모든 구성 요소를 모니터링하여 장애 감지
- 모니터링 간격은 필요한 복구 속도에 따라 달라집니다.: 복구 시간은 복구에 걸리는 시간에 따라 결정되므로 이 시간과 RTO(복구 시간 목표)를 고려하여 수집 빈도를 결정해야 합니다.
- EC2 인스턴스 및 Auto Scaling에 대한 세부 모니터링이 필요한지 결정: 세부 모니터링은 1분 간격 지표를 제공하며 기본 모니터링은 5분 간격 지표를 제공합니다.
Enable or Disable Detailed Monitoring for Your Instance
Monitoring Your Auto Scaling Groups and Instances Using Amazon CloudWatch - RDS에 대한 향상된 모니터링이 필요한지 결정: 향상된 모니터링은 RDS 인스턴스의 에이전트를 사용하여 RDS 인스턴스의 여러 프로세스 또는 스레드에 대한 유용한 정보를 가져옵니다.
Enhanced Monitoring
Publishing Custom Metrics
Amazon CloudWatch Synthetics enables you to create user canaries
Publishing Custom Metrics
Using Amazon CloudWatch Alarms
Using CloudWatch Dashboards
정상 리소스로 장애 조치
- 워크로드에서 Amazon S3 또는 Amazon DynamoDB와 같은 AWS 서비스를 사용하는 경우 이러한 서비스는 여러 가용 영역에 자동으로 배포됩니다. 장애가 발생하면 AWS 제어 영역이 자동으로 정상적인 위치로 트래픽을 라우팅합니다.
- Amazon RDS의 경우 구성 옵션으로 다중 AZ를 선택해야 합니다. 그러면 장애 시 AWS가 자동으로 트래픽을 정상 인스턴스로 보냅니다.
High Availability (Multi-AZ) for Amazon RDS - Amazon EC2 인스턴스 또는 Amazon ECS 태스크의 경우에는 배포할 가용 영역을 선택합니다. 그러면 Elastic Load Balancing이 비정상 영역에서 인스턴스를 감지하고 정상적인 영역으로 트래픽을 라우팅합니다. Elastic Load Balancing을 사용하는 경우 온프레미스 데이터 센터의 구성 요소로 트래픽을 라우팅할 수도 있습니다.
- TRANSLATION REQUIRED
- TRANSLATION REQUIRED
Overview of Amazon RDS Read Replicas - TRANSLATION REQUIRED
Amazon Route 53: Choosing a Routing Policy
What Is AWS Global Accelerator?
- TRANSLATION REQUIRED
모든 계층에서 복구 자동화
How AWS Auto Scaling Works
Amazon EC2 Automatic Recovery
Amazon Elastic Block Store (Amazon EBS)
Amazon Elastic File System (Amazon EFS)
What is Amazon FSx for Lustre?
What is Amazon FSx for Windows File Server?
- AWS OpsWorks를 사용하면 계층 수준에서 EC2 인스턴스의 자동 복구 기능을 구성할 수 있습니다.
AWS OpsWorks: Using Auto Healing to Replace Failed Instances
What is AWS Step Functions?
What is AWS Lambda?
- Amazon EventBridge를 사용하면 CloudWatch Alarms 또는 다른 AWS 서비스의 상태 변경과 같은 이벤트를 모니터링하고 필터링할
수 있습니다. 그런 다음 이벤트 정보를 기반으로 AWS Lambda(또는 다른 대상)를 트리거하여 워크로드에 대한 사용자 지정 수정 로직을 실행할
수 있습니다.
What Is Amazon EventBridge?
Using Amazon CloudWatch Alarms
정적 안정성을 사용하여 바이모달 동작 방지
The Amazon Builders' Library: Static stability using Availability Zones
Static stability in AWS: AWS re:Invent 2019: Introducing The Amazon Builders’ Library (DOP328)
- 그러나 이 방법 대신 정적으로 안정적이고 한 모드에서만 작동하는 시스템을 구축해야 합니다. 한 AZ가 제거된 경우 제거된 영역의 워크로드 로드를 처리하기에 충분한 인스턴스를 각 영역에 프로비저닝한 다음 Elastic Load Balancing 또는 Amazon Route 53 상태 확인을 사용하여 손상된 인스턴스에서 로드를 이동합니다.
- 바이모달 동작의 또 다른 예로 장애 발생 시 클라이언트에서 워크로드 캐시를 우회하는 것을 허용하는 동작이 있습니다. 이는 클라이언트 요구 사항을 수용하는 솔루션처럼 보이지만 워크로드의 수요가 크게 변경되고 장애를 초래할 가능성이 높으므로 허용해서는 안 됩니다.
이벤트가 가용성에 영향을 미치는 경우 알림 전송
Creating a CloudWatch Alarm Based on a Static Threshold
What is Amazon Simple Notification Service?