EC2 콘솔에서 경보를 생성할 때 "이 인스턴스를 복구합니다(Recover this instance)" 옵션이 비활성화되는 이유는 무엇입니까?
Amazon Elastic Compute Cloud(Amazon EC2) 콘솔에서 Amazon CloudWatch 경보를 생성하려고 합니다. 기본 하드웨어 장애로 인해 EC2 인스턴스가 손상되면 복구한 다음 경보 트리거 시 알림을 전송하려고 합니다. 그러나 [경보 생성(Create Alarm)] 페이지에서 “다음 작업 수행(Take the action)” 아래 “이 인스턴스를 복구합니다(Recover this instance)” 옵션이 회색 처리(비활성화)됩니다. 경보 알림 옵션도 비활성화됩니다. 이 옵션은 어떻게 다시 켭니까?
간략한 설명
EC2 인스턴스가 인스턴스 스토어 볼륨을 사용한다고 CloudWatch가 판단하는 경우에 이 인스턴스를 복구합니다(Recover this instance) 옵션이 비활성화됩니다. 인스턴스 스토어 볼륨에 대한 블록 디바이스 매핑으로 시작된 인스턴스를 포함하여 인스턴스 스토어 볼륨을 사용하는 EC2 인스턴스에 대해서는 복구 작업이 지원되지 않습니다. CloudWatch는 각 EC2 인스턴스에 연결된 메타데이터를 읽어 인스턴스 스토어 볼륨을 사용하지 않는지 확인한 후에야 복구 작업을 활성화합니다.
참고: 복구 작업은 특정 인스턴스 유형에서만 지원합니다. 지원되는 인스턴스 유형을 시작했는지 확인합니다. 자세한 내용은 인스턴스 복구를 참조하세요. EC2 복구 경보 작업은 StatusCheckFailed_System 지표에 대해서만 유효합니다.
해결 방법
참고: AWS 명령줄 인터페이스(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요.
계속하기 전에 인스턴스를 중지, 종료, 재부팅 또는 복구하는 경보 만들기를 확인하세요. CloudWatch 경보 생성의 모든 사전 조건을 충족해야 합니다.
EC2 Linux 인스턴스에서 임시 인스턴스 스토어 볼륨 찾기
2. 다음 명령을 사용해서 인스턴스에서 메타데이터를 검색합니다.
curl http://169.254.169.254/latest/meta-data/block-device-mapping/
3. 결과를 사용하여 인스턴스에 매핑된 인스턴스 스토어 볼륨을 확인합니다(“ephemeral”이라는 이름으로 시작). 예를 들어 이 결과에는 인스턴스 스토어 볼륨이 두 개입니다(“ephemeral0” 및 “ephemeral2”).
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/block-device-mapping/ ami ephemeral0 ephemeral2 root
EC2 Windows 인스턴스에서 임시 인스턴스 스토어 볼륨 찾기
브라우저 사용:
1. Windows 인스턴스에 연결합니다.
2. 웹 브라우저를 열고 다음에 연결합니다.
http://169.254.169.254/latest/meta-data/block-device-mapping/
3. 반환된 정보를 사용하여 인스턴스에 매핑된 인스턴스 스토어 볼륨을 확인합니다(“ephemeral”이라는 이름으로 시작).
Windows PowerShell 사용:
1. PowerShell에서 Windows 인스턴스에 연결합니다.
2. 다음 명령을 실행합니다.
PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/block-device-mapping/
3. 결과를 사용하여 인스턴스에 매핑된 인스턴스 스토어 볼륨을 확인합니다(“ephemeral”이라는 이름으로 시작). 예를 들어 이 결과에는 인스턴스 스토어 볼륨이 한 개입니다(“ephemeral0”).
ami ephemeral0 root swap
자세한 내용은 인스턴스 스토어 볼륨용 인스턴스 블록 디바이스 매핑 보기 섹션을 참조하세요.
EC2 인스턴스용 AMI에서 임시 인스턴스 스토어 볼륨 찾기
EC2 인스턴스의 Amazon Machine Image(AMI)에 대한 블록 디바이스 매핑을 검토합니다. “블록 디바이스(Block Devices)” 필드에 “=ephemeral#”이 포함된 블록 디바이스 인스턴스 스토어 볼륨이 있는지 확인합니다. 여기서 “#”은 0~23의 정수입니다.
인스턴스 유형이 인스턴스 스토어 볼륨을 공식적으로 지원하지 않는 경우에도 블록 디바이스 매핑이 발생할 수 있습니다. 이 작업은 다음 중 하나를 사용하여 EC2 인스턴스(Windows 또는 Linux)를 시작할 때 발생할 수 있습니다.
- AWS CLI
- SDK
- AWS CloudFormation과 같은 서비스
Amazon EC2 콘솔을 사용하여 인스턴스 스토어 볼륨을 지원하지 않는 인스턴스 유형을 시작하면 Amazon EC2에서 수정된 블록 디바이스 매핑을 무시합니다.
Amazon EC2 콘솔 또는 AWS CLI를 사용하여 AMI의 블록 디바이스 매핑에서 EBS 볼륨을 열거할 수 있습니다.
예를 들어, 다음 describe-images 명령은 AMI에 대하여 BlockDeviceMapping을 반환합니다.
aws ec2 describe-images --image-ids ami-xxxxxxxx
“VirtualName”이 “ephemeral”로 시작하는 인스턴스 스토어 볼륨이 포함된 결과 예시:
aws ec2 describe-images --image-ids ami-11112222 "BlockDeviceMappings": [ { "DeviceName": "/dev/xvda", "Ebs": { "DeleteOnTermination": true, "SnapshotId": "snap- ", "VolumeSize": 8, "VolumeType": "gp2", "Encrypted": false } }, { "DeviceName": "/dev/sdb", "VirtualName": "ep0hemeral0" }, { "DeviceName": "/dev/sdc", "VirtualName": "ephemeral2" } ],
AMI에서 인스턴스 스토어 볼륨에 대한 참조를 제거하거나 재정의
EC2 인스턴스가 인스턴스 스토어 볼륨을 사용한다고 확인한 후, AMI에서 인스턴스 스토어 볼륨에 대한 모든 참조를 제거하거나 재정의해야 합니다. 그런 다음 기존 EC2 인스턴스에서 인스턴스 스토어 볼륨을 추가하거나 제거할 수 없기 때문에 인스턴스를 다시 시작해야 합니다.
다음 중 한 가지 방법을 사용하여 인스턴스 스토어 볼륨에 대한 참조를 제거하거나 재정의합니다.
- AMI에서 인스턴스 스토어 볼륨에 대한 참조를 제거합니다. 그런 다음 인스턴스를 다시 시작합니다.
- Amazon EC2 콘솔에서 EC2 인스턴스를 시작하여 인스턴스 스토어 볼륨을 지원하지 않는 인스턴스 유형에 대한 AMI를 재정의합니다.
- AWS CLI에서 EC2 인스턴스를 시작한 다음 AMI에서 인스턴스 스토어 볼륨을 참조하는 각 디바이스를 수동으로 재정의합니다. 예를 들어 “/dev/sdb” 및 “/dev/sdc” 디바이스에 인스턴스 스토어 볼륨이 매핑된 경우, run-instances 명령을 사용하여 EC2 인스턴스를 시작합니다.
aws ec2 run-instances --image-id ami-11112222 --subnet-id subnet-11112222 --instance-type t2.medium --key-name my_key --associate-public-ip-address --block-device-mappings '[{"DeviceName": "/dev/sdb","NoDevice": ""},{"DeviceName": "/dev/sdc","NoDevice": ""}]'
- CloudFormation으로 EC2 인스턴스를 시작한 경우 CloudFormation 템플릿을 생성하여 인스턴스 스토어 볼륨에 대한 디바이스의 매핑을 재정의합니다. 예를 들면 다음과 같습니다.
{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "I4EY8I": { "Type": "AWS::EC2::Instance", "속성": { "ImageId" : "ami-11112222", "InstanceType" : "t2.medium", "SubnetId" : "subnet-11112222", "KeyName" : "my_key", "BlockDeviceMappings" : [ { "DeviceName":"/dev/sdb", "NoDevice": {} }, { "DeviceName":"/dev/sdc", "NoDevice": {} } ] } } } }
- SDK로 EC2 인스턴스를 시작한 경우, 관련 SDK 설명서에서 인스턴스 스토어 볼륨에 대한 디바이스의 매핑을 재정의하는 방법을 확인합니다.
관련 정보

관련 콘텐츠
- 질문됨 25일 전lg...
- 질문됨 한 달 전lg...
- 질문됨 3달 전lg...
- AWS 공식업데이트됨 2년 전
- AWS 공식업데이트됨 3년 전
- AWS 공식업데이트됨 한 달 전
- AWS 공식업데이트됨 2년 전