Amazon EC2 AMI 비활성화하기
Amazon EC2 AMI 비활성화하기 (Disable an Amazon EC2 AMI)
AMI를 비활성화하면 인스턴스 시작에 사용되지 않게 막을 수 있어요. 비활성화된 AMI로는 새 인스턴스를 시작할 수 없어요. 비활성화된 AMI를 다시 활성화하면 다시 인스턴스 시작에 사용할 수 있어요.
출처: 문서
본문
프라이빗 AMI와 공개 AMI 모두 비활성화할 수 있어요.
드물게 사용되지만 장기간 보존이 필요한 비활성화된 EBS 기반 AMI의 스토리지 비용을 줄이려면 연결된 스냅샷을 아카이브할 수 있어요. 자세한 내용은 Amazon EBS User Guide의 Amazon EBS 스냅샷 아카이브하기를 참고하세요.
AMI 비활성화의 작동 방식 (How AMI disable works)
경고 AMI를 비활성화하면 모든 시작 권한(launch permissions)이 제거돼요.
-
AMI의 상태가
disabled로 바뀌어요. -
비활성화된 AMI는 공유할 수 없어요. AMI가 공개되어 있었거나 이전에 공유된 적이 있었다면 프라이빗으로 바뀌어요. AMI가 AWS 계정, 조직(organization), 조직 단위(OU)와 공유된 적이 있다면, 그들은 비활성화된 AMI에 대한 접근을 잃어요.
-
비활성화된 AMI는 기본적으로
DescribeImagesAPI 호출 결과에 나타나지 않아요. -
비활성화된 AMI는 콘솔의 Owned by me 필터 아래에 나타나지 않아요. 비활성화된 AMI를 찾으려면 Disabled images 콘솔 필터를 사용해요.
-
비활성화된 AMI는 EC2 콘솔에서 인스턴스 시작용으로 선택할 수 없어요. 예를 들어 비활성화된 AMI는 launch instance 위저드의 AMI 카탈로그나 시작 템플릿(launch template) 생성 시 나타나지 않아요.
-
시작 템플릿과 Auto Scaling 그룹 같은 시작 서비스는 비활성화된 AMI를 계속 참조할 수 있어요. 하지만 비활성화된 AMI에서 이후 인스턴스 시작은 실패하므로, 시작 템플릿과 Auto Scaling 그룹이 사용 가능한 AMI만 참조하도록 갱신하는 걸 권장해요.
-
이후에 비활성화된 AMI로 이전에 시작한 EC2 인스턴스에는 영향이 없어요. 중지, 시작, 재부팅을 할 수 있어요.
-
비활성화된 AMI와 연결된 스냅샷은 삭제할 수 없어요. 연결된 스냅샷을 삭제하려 하면 "snapshot is currently in use"(스냅샷이 현재 사용 중) 오류가 발생해요.
-
다시 활성화하면 AMI 상태가
available로 바뀌고 인스턴스 시작에 사용할 수 있어요. -
AMI를 다시 공유할 수 있어요.
-
비활성화될 때 AMI 접근을 잃었던 AWS 계정, 조직, 조직 단위는 자동으로 접근을 되찾지는 않아요. 하지만 AMI를 다시 공유할 수는 있어요.
비용 (Costs)
AMI를 비활성화해도 AMI가 삭제되지는 않아요. EBS 기반 AMI라면 AMI의 EBS 스냅샷 비용을 계속 지불해요. AMI를 유지하고 싶다면 스냅샷을 아카이브해서 스토리지 비용을 줄일 수 있어요. 자세한 내용은 Amazon EBS User Guide의 Amazon EBS 스냅샷 아카이브하기를 참고하세요. AMI와 그 스냅샷을 유지하고 싶지 않다면 AMI 등록을 해제하고 스냅샷을 삭제해야 해요. 자세한 내용은 AMI 등록 해제하기를 참고하세요.
사전 요구 사항 (Prerequisites)
AMI를 비활성화하거나 다시 활성화하려면 AMI의 소유자여야 해요.
필요한 IAM 권한 (Required IAM permissions)
AMI를 비활성화하고 다시 활성화하려면 다음 IAM 권한이 필요해요.
ec2:DisableImageec2:EnableImage
AMI 비활성화하기 (Disable an AMI)
EC2 콘솔이나 AWS Command Line Interface(AWS CLI)로 AMI를 비활성화할 수 있어요. 이 절차를 수행하려면 AMI 소유자여야 해요.
콘솔 (Console)
AMI 비활성화하기: Amazon EC2 콘솔(https://console.aws.amazon.com/ec2/)을 엽니다. 왼쪽 탐색 창에서 AMIs를 선택해요. 필터 막대에서 Owned by me를 선택해요. AMI를 선택한 다음 Actions, Disable AMI를 선택해요. 한 번에 여러 AMI를 선택해서 비활성화할 수도 있어요. Disable AMI 창에서 Disable AMI를 선택해요.
AWS CLI
AMI 비활성화하기: 다음 disable-image 명령을 사용해요.
aws ec2 disable-image --image-id ami-0abcdef1234567890
PowerShell
AMI 비활성화하기: Disable-EC2Image cmdlet을 사용해요.
Disable-EC2Image -ImageId ami-0abcdef1234567890
비활성화된 AMI 설명하기 (Describe disabled AMIs)
EC2 콘솔과 AWS CLI로 비활성화된 AMI를 볼 수 있어요.
비활성화된 AMI를 보려면 AMI 소유자여야 해요. 비활성화된 AMI는 프라이빗이 되므로 소유자가 아니면 볼 수 없어요.
콘솔 (Console)
비활성화된 AMI 보기: Amazon EC2 콘솔(https://console.aws.amazon.com/ec2/)을 엽니다. 왼쪽 탐색 창에서 AMIs를 선택해요. 필터 막대에서 Disabled images를 선택해요.
AWS CLI
기본적으로 모든 AMI를 설명(describe)할 때 비활성화된 AMI는 결과에 포함되지 않아요. 결과에 비활성화된 AMI를 포함하려면 --include-disabled 옵션을 지정해요. AMI가 비활성화되어 있으면 해당 AMI의 State 필드는 disabled예요.
계정의 모든 AMI를 설명할 때 비활성화된 AMI를 포함하려면:
aws ec2 describe-images \
--owners 123456789012 \
--include-disabled
계정의 비활성화된 AMI를 나열하려면:
aws ec2 describe-images \
--owners self \
--include-disabled \
--filters Name=state,Values=disabled \
--query Images[].ImageId \
--output text
다음은 예시 출력이에요.
ami-0abcdef1234567890
AMI의 상태를 설명하려면: 출력에 DeprecationTime이 없으면 AMI가 폐기(deprecate)되지 않았거나 미래 날짜로 폐기 예정이 아님을 의미해요.
aws ec2 describe-images \
--image-ids ami-0abcdef1234567890 \
--query Images[].State \
--output text
다음은 예시 출력이에요.
disabled
PowerShell
기본적으로 모든 AMI를 설명할 때 비활성화된 AMI는 결과에 포함되지 않아요. 결과에 비활성화된 AMI를 포함하려면 -IncludeDisabled 파라미터를 지정해요. AMI가 비활성화되어 있으면 State 필드는 disabled예요.
계정의 비활성화된 AMI 나열하기: Get-EC2Image cmdlet을 사용해요.
(Get-EC2Image `
-Owner self `
-IncludeDisabled $true | Where-Object { $_.State -eq "disabled"}).ImageId
다음은 예시 출력이에요.
ami-0abcdef1234567890
AMI의 상태 설명하기: Get-EC2Image cmdlet을 사용해요.
(Get-EC2Image -ImageId ami-0abcdef1234567890 ).State.Value
다음은 예시 출력이에요.
disabled
비활성화된 AMI 다시 활성화하기 (Re-enable a disabled AMI)
비활성화된 AMI를 다시 활성화할 수 있어요. 이 절차를 수행하려면 AMI 소유자여야 해요.
콘솔 (Console)
비활성화된 AMI 다시 활성화하기: Amazon EC2 콘솔(https://console.aws.amazon.com/ec2/)을 엽니다. 왼쪽 탐색 창에서 AMIs를 선택해요. 필터 막대에서 Disabled images를 선택해요. AMI를 선택한 다음 Actions, Enable AMI를 선택해요. 한 번에 여러 AMI를 다시 활성화할 수도 있어요. Enable AMI 창에서 Enable을 선택해요.
AWS CLI
비활성화된 AMI 다시 활성화하기: 다음 enable-image 명령을 사용해요.
aws ec2 enable-image --image-id ami-0abcdef1234567890
PowerShell
비활성화된 AMI 다시 활성화하기: Enable-EC2Image cmdlet을 사용해요.
Enable-EC2Image -ImageId ami-0abcdef1234567890