EC2 인스턴스에서 CloudWatch 액션 기반 복구(Recovery) 구성하기
EC2 인스턴스에서 CloudWatch 액션 기반 복구(Recovery) 구성하기
Important
이 섹션은 EC2 인스턴스에서 복구 메커니즘을 사전에 구성하는 방법을 설명해요. 이 복구 메커니즘은 AWS가 시스템 상태 점검(status check)에 실패하게 만드는 기본 하드웨어 또는 소프트웨어 문제를 감지했을 때 인스턴스 가용성을 복원하도록 설계되었습니다. 현재 인스턴스에 액세스하는 데 문제가 있다면 Troubleshoot EC2 instances를 참고하세요.
AWS가 기본 하드웨어 또는 소프트웨어 문제로 인스턴스를 사용할 수 없다고 감지하면, **CloudWatch 액션 기반 복구(CloudWatch action based recovery)**가 인스턴스를 문제가 있는 호스트에서 다른 호스트로 옮겨 인스턴스 가용성을 자동으로 복원할 수 있어요.
출처: 문서
본문
AWS가 기본 하드웨어 또는 소프트웨어 문제로 인스턴스를 사용할 수 없다고 감지하면, CloudWatch action based recovery가 인스턴스를 문제가 있는 호스트에서 다른 호스트로 옮겨 인스턴스 가용성을 자동으로 복원할 수 있습니다.
CloudWatch 액션 기반 복구가 발생하면 결과에 따라 AWS가 다음 이벤트 중 하나를 AWS Health Dashboard로 보내요.
- 성공 이벤트:
AWS_EC2_INSTANCE_AUTO_RECOVERY_SUCCESS - 실패 이벤트:
AWS_EC2_INSTANCE_AUTO_RECOVERY_FAILURE
CloudWatch 액션 기반 복구를 구성해 Amazon CloudWatch 알람에 복구 액션을 추가할 수 있어요. CloudWatch 액션 기반 복구는 StatusCheckFailed_System 지표와 함께 작동합니다. 이 기능은 분 단위의 복구 응답 시간 세분성과 Amazon Simple Notification Service(Amazon SNS)의 복구 액션·결과 알림을 제공해요. 이러한 구성 옵션 덕분에 단순 자동 복구(simplified automatic recovery)보다 시스템 상태 점검 실패 이벤트 응답을 더 세밀하게 제어하면서 더 빠른 복구 시도를 할 수 있습니다. 사용 가능한 CloudWatch 옵션에 대한 자세한 내용은 Status checks for your instances를 참고하세요.
하지만 CloudWatch 액션 기반 복구는 인스턴스가 running 상태이고, AWS Health Dashboard에 서비스 이벤트가 나열되어 있지 않고, 인스턴스 유형에 사용 가능한 용량이 있을 때만 작동할 수 있어요. 주요 중단 같은 일부 상황에서는 용량 제약으로 인해 복구 시도가 실패할 수 있습니다. 자세한 내용은 CloudWatch 액션 기반 복구 실패 트러블슈팅을 참고하세요.
Warning
AWS가 기본 하드웨어 또는 소프트웨어 문제로 인스턴스를 복구할 때 다음 결과에 유의하세요: 휘발성 메모리(RAM)와 인스턴스 스토어 볼륨에 저장된 데이터는 손실되고, 운영체제의 업타임이 0부터 다시 시작됩니다. 데이터 손실을 방지하려면 중요한 데이터를 정기적으로 백업하는 것을 권장합니다. EC2 인스턴스의 백업·복구 모범 사례에 대한 자세한 내용은 Best practices for Amazon EC2를 참고하세요.
자동 인스턴스 복구 메커니즘은 개별 인스턴스를 위해 설계되었습니다. 복원력 있는 시스템을 구축하는 지침은 Build a resilient system을 참고하세요.
CloudWatch 액션 기반 복구 활성화 요구사항 (Requirements)
CloudWatch 액션 기반 복구는 다음 기준을 충족하는 인스턴스에서 활성화할 수 있어요.
인스턴스 유형 (Instance types)
- 범용(General purpose): A1, M3, M4, M5, M5a, M5n, M5zn, M6a, M6g, M6i, M6in, M7a, M7g, M7i, M7i-flex, M8a, M8azn, M8g, M8gb, M8gn, M8i, M8i-flex, M8in, M8ine, M8ib, M9g, T1, T2, T3, T3a, T4g, T8i
- 컴퓨팅 최적화(Compute optimized): C3, C4, C5, C5a, C5n, C6a, C6g, C6gn, C6i, C6in, C7a, C7g, C7gn, C7i, C7i-flex, C8a, C8g, C8gb, C8gn, C8i, C8i-flex, C8in, C8ine, C8ib, C9g
- 메모리 최적화(Memory optimized): R3, R4, R5, R5a, R5b, R5n, R6a, R6g, R6i, R6in, R7a, R7g, R7i, R7iz, R8a, R8g, R8gb, R8gn, R8i, R8i-flex, R8in, R8ib, R9g, U-3tb1, U-6tb1, U-9tb1, U-12tb1, U-18tb1, U-24tb1, U7i-6tb, U7i-8tb, U7i-12tb, U7in-16tb, U7in-24tb, U7in-32tb, U7inh-32tb, X1, X1e, X2idn, X2iedn, X2iezn, X8g, X8i
- 가속 컴퓨팅(Accelerated computing): G3, G5g, Inf1, P3, VT1
- 고성능 컴퓨팅(High-performance computing): Hpc6a, Hpc7a, Hpc7g, Hpc8a
- 메탈(Metal) 인스턴스: 위 인스턴스 유형 중 metal 인스턴스 크기를 가진 것.
- 실행 시 인스턴스 스토어 볼륨이 추가된 경우: 다음 인스턴스 유형만 지원: M3, C3, R3, X1, X1e, X2idn, X2iedn
임대 (Tenancy)
- 공유(Shared)
- Dedicated Instance
자세한 내용은 Amazon EC2 Dedicated Instances를 참고하세요.
제한 사항 (Limitations)
CloudWatch 액션 기반 복구는 다음 특성을 가진 인스턴스에 대해서는 지원되지 않아요.
- 임대: Dedicated Host. Dedicated Host는 대신 Dedicated Host Auto Recovery를 사용하세요.
- 네트워킹: Elastic Fabric Adapter를 사용하는 인스턴스
- Auto Scaling: Auto Scaling 그룹의 일부인 인스턴스
- 유지보수: 현재 예약된 유지보수 이벤트를 진행 중인 인스턴스
지원되는 인스턴스 유형 찾기
CloudWatch 액션 기반 복구를 지원하는 인스턴스 유형을 볼 수 있어요.
콘솔 (Console)
CloudWatch 액션 기반 복구를 지원하는 인스턴스 유형을 보려면
- Amazon EC2 콘솔을 엽니다: https://console.aws.amazon.com/ec2/
- 왼쪽 탐색 창에서 Instance Types를 선택해요.
- 필터 막대에서 Auto Recovery support = true 필터를 추가해요. 인스턴스 유형 표에 CloudWatch 액션 기반 복구를 지원하는 모든 인스턴스 유형이 표시됩니다.
- (선택) 필터를 추가해 관심 있는 특정 인스턴스 유형으로 더 좁혀요.
AWS CLI
CloudWatch 액션 기반 복구를 지원하는 인스턴스 유형을 보려면
auto-recovery-supported 필터와 함께 describe-instance-types 명령을 사용해요.
aws ec2 describe-instance-types \
--filters Name=auto-recovery-supported,Values=true \
--query "InstanceTypes[*].[InstanceType]" \
--output text | sort
PowerShell
CloudWatch 액션 기반 복구를 지원하는 인스턴스 유형을 보려면
auto-recovery-supported 필터와 함께 Get-EC2InstanceType cmdlet을 사용해요.
Get-EC2InstanceType `
-Filter @{Name="auto-recovery-supported";Values="true"} | `
Select InstanceType | Sort-Object InstanceType
CloudWatch 액션 기반 복구 구성하기 (Configure CloudWatch action based recovery)
EC2 인스턴스에 대해 CloudWatch 액션 기반 복구를 구성하려면, 지정한 인스턴스의 StatusCheckFailed_System 지표를 모니터링하는 CloudWatch 알람을 만들어요. 지표 값이 1(시스템 상태 점검이 실패했음을 의미)일 때 알람이 트리거되도록 설정해요. 알람 액션이 트리거될 때 인스턴스를 자동으로 복구하도록 알람 액션을 구성해요.
알람은 Amazon EC2 콘솔이나 CloudWatch 콘솔에서 구성할 수 있어요. 지침은 이 사용자 가이드의 Add recover actions to Amazon CloudWatch alarms 또는 Amazon CloudWatch User Guide의 Adding recover actions to Amazon CloudWatch alarms를 참고하세요.
CloudWatch 액션 기반 복구 실패 트러블슈팅하기 (Troubleshoot failures)
CloudWatch 액션 기반 복구가 인스턴스를 복구하지 못하면 다음 문제를 고려해보세요.
- AWS 서비스 이벤트 진행 중 – CloudWatch 액션 기반 복구는 AWS Health Dashboard의 서비스 이벤트 중에는 작동하지 않아요. 이런 이벤트에 대해 복구 실패 알림을 받지 못할 수 있습니다. 최신 서비스 가용성 정보는 Service health status 페이지를 참고하세요.
- 용량 부족 – 인스턴스를 마이그레이션할 교체 하드웨어가 일시적으로 충분하지 않아요.
- 일일 최대 복구 시도 도달 – 인스턴스가 하루 복구 시도 허용치에 도달했어요. 자동 복구가 실패하고 하드웨어 성능 저하가 원래 시스템 상태 점검 실패의 근본 원인으로 판단되면 인스턴스가 이후에 퇴역(retired)될 수 있어요.
인스턴스의 시스템 상태 점검 실패가 여러 복구 시도에도 지속되면 추가 지침은 Troubleshoot instances with failed status checks를 참고하세요.