Amazon EC2 AMI 폐기(Deprecate)하기
Amazon EC2 AMI 폐기(Deprecate)하기
AMI를 폐기하면 해당 AMI가 오래되어 더 이상 사용하면 안 된다는 것을 표시할 수 있어요. 이 절에서는 AMI를 폐기하고, 폐기된 AMI를 확인하고, 폐기를 취소하는 방법을 콘솔·AWS CLI·PowerShell별로 살펴볼게요.
출처: 문서
본문
AMI를 폐기하면 그 AMI가 오래되어 사용하면 안 된다는 것을 표시할 수 있어요. AMI에 미래의 폐기 날짜를 지정해 언제 오래될지 표시할 수도 있어요. 예를 들어 더 이상 적극적으로 유지 관리되지 않는 AMI를 폐기하거나, 새 버전으로 대체된 AMI를 폐기할 수 있어요. 기본적으로 폐기된 AMI는 AMI 목록에 표시되지 않아서 새 사용자가 오래된 AMI를 사용하는 것을 막아줘요. 하지만 기존 사용자와 시작 템플릿(launch template), Auto Scaling 그룹 같은 시작 서비스는 ID를 지정해 폐기된 AMI를 계속 사용할 수 있어요. 사용자와 서비스가 사용하지 못하게 AMI를 삭제하려면 deregister해야 합니다.
AMI가 폐기된 후에는:
- AMI 사용자의 경우, 폐기된 AMI는 ID를 지정하거나 폐기된 AMI도 표시하도록 지정하지 않는 한 DescribeImages API 호출에 나타나지 않아요. AMI 소유자는 DescribeImages API 호출에서 폐기된 AMI를 계속 볼 수 있어요.
- AMI 사용자의 경우, EC2 콘솔에서 폐기된 AMI를 선택할 수 없어요. 예를 들어 폐기된 AMI는 인스턴스 시작 마법사의 AMI 카탈로그에 나타나지 않아요. AMI 소유자는 EC2 콘솔에서 폐기된 AMI를 계속 볼 수 있어요.
- AMI 사용자의 경우, 폐기된 AMI의 ID를 알고 있다면 API, CLI, SDK를 사용해 폐기된 AMI로 인스턴스를 계속 시작할 수 있어요.
- 시작 템플릿과 Auto Scaling 그룹 같은 시작 서비스는 폐기된 AMI를 계속 참조할 수 있어요.
- 이후에 폐기된 AMI로 시작된 EC2 인스턴스는 영향을 받지 않으며 중지, 시작, 재부팅할 수 있어요.
개인 AMI와 공개 AMI 모두 폐기할 수 있어요.
비용
AMI를 폐기해도 AMI는 삭제되지 않아요. AMI 소유자는 AMI의 스냅샷 요금을 계속 지불하게 돼요. 스냅샷 요금을 멈추려면 소유자가 deregister로 AMI를 삭제해야 해요.
고려 사항
- AMI를 폐기하려면 AMI의 소유자여야 해요.
- 최근에 인스턴스를 시작하는 데 사용되지 않은 AMI는 폐기나 deregister의 좋은 후보일 수 있어요. 자세한 내용은 Check when an Amazon EC2 AMI was last used을 참고하세요.
- Amazon Data Lifecycle Manager EBS 백업 AMI 정책을 만들어 EBS 백업 AMI의 폐기를 자동화할 수 있어요. 자세한 내용은 Create AMI lifecycle policies를 참고하세요.
- 기본적으로 모든 공개 AMI의 폐기 날짜는 AMI 생성 날짜로부터 2년으로 설정돼요. 폐기 날짜를 2년보다 이르게 설정할 수 있어요. 폐기 날짜를 취소하거나 더 늦은 날짜로 옮기려면 특정 AWS 계정에만 공유해서 AMI를 개인으로 만들어야 해요.
AMI 폐기하기
특정 날짜와 시간에 AMI를 폐기할 수 있어요. AMI의 소유자여야 합니다.
폐기 날짜의 상한은 지금부터 10년이에요. 단, 공개 AMI는 생성 날짜로부터 2년이 상한이에요. 과거 날짜는 지정할 수 없어요.
Console(콘솔) —
특정 날짜에 AMI를 폐기하려면
- Amazon EC2 콘솔을 https://console.aws.amazon.com/ec2/에서 엽니다.
- 왼쪽 탐색기에서 AMIs를 선택합니다.
- 필터 막대에서 Owned by me를 선택합니다.
- AMI를 선택한 다음 Actions, Manage AMI Deprecation을 선택합니다. 여러 AMI를 선택해 한 번에 같은 폐기 날짜를 설정할 수도 있어요.
- Enable 체크박스를 선택하고 폐기 날짜와 시간을 입력합니다.
- Save를 선택합니다.
AWS CLI —
특정 날짜에 AMI를 폐기하려면
enable-image-deprecation 명령을 사용합니다. 초(seconds) 값을 지정하면 Amazon EC2가 초를 가장 가까운 분으로 반올림해요.
aws ec2 enable-image-deprecation \
--image-id ami-0abcdef1234567890 \
--deprecate-at "2025-04-15T13:17:12.000Z"
PowerShell —
특정 날짜에 AMI를 폐기하려면
Enable-EC2ImageDeprecation cmdlet을 사용합니다. 초 값을 지정하면 Amazon EC2가 초를 가장 가까운 분으로 반올림해요.
Enable-EC2ImageDeprecation `
-ImageId ami-0abcdef1234567890 `
-DeprecateAt 2025-04-15T13:17:12.000Z
폐기된 AMI 확인하기
AMI의 폐기 날짜와 시간을 확인하고, 폐기 날짜로 AMI를 필터링할 수 있어요.
Console(콘솔) —
AMI의 폐기 날짜를 보려면
- Amazon EC2 콘솔을 https://console.aws.amazon.com/ec2/에서 엽니다.
- 왼쪽 탐색기에서 AMIs를 선택한 다음 AMI를 선택합니다.
- Deprecation time 필드를 확인합니다(AMI 옆 체크박스를 선택했다면 Details 탭에 있어요). 이 필드는 AMI의 폐기 날짜와 시간을 보여줘요. 필드가 비어 있으면 AMI가 폐기되지 않은 거예요.
폐기 날짜로 AMI를 필터링하려면
- Amazon EC2 콘솔을 https://console.aws.amazon.com/ec2/에서 엽니다.
- 왼쪽 탐색기에서 AMIs를 선택합니다.
- 필터 막대에서 Owned by me 또는 Private images를 선택합니다(Private images에는 공유받은 AMI와 소유한 AMI가 모두 포함돼요).
- Search 막대에
Deprecation time을 입력합니다(글자를 입력하면 Deprecation time 필터가 나타나요). 그런 다음 연산자와 날짜·시간을 선택합니다.
AWS CLI —
모든 AMI를 설명(describe)할 때 결과는 AMI 사용자인지 소유자인지에 따라 달라져요.
- AMI 사용자 – 모든 AMI를 설명할 때 기본적으로 소유하지 않고 공유받은 폐기된 AMI는 제외돼요. 결과에 폐기된 AMI를 포함하려면
--include-deprecated옵션을 지정하세요. - AMI 소유자 – 모든 AMI를 설명할 때 소유한 모든 AMI(폐기된 AMI 포함)가 포함돼요.
--no-include-deprecated옵션으로 소유한 폐기된 AMI를 제외할 수는 없어요.
계정의 모든 AMI를 설명할 때 폐기된 AMI를 포함하려면
다음 describe-images 명령을 사용합니다.
aws ec2 describe-images
--owners 123456789012 \
--include-deprecated
계정의 폐기된 AMI를 설명하려면
다음 describe-images 명령을 사용합니다.
aws ec2 describe-images \
--owners self \
--query "Images[?DeprecationTime!=null].ImageId" \
--output text
다음은 출력 예시예요.
ami-0abcdef1234567890
AMI의 폐기 날짜를 설명하려면
다음 describe-images 명령을 사용합니다. 출력에 DeprecationTime이 없다면 AMI가 폐기되지 않았거나 미래 날짜로 폐기가 설정되지 않은 거예요.
aws ec2 describe-images \
--image-ids ami-0abcdef1234567890 \
--query Images[].DeprecationTime \
--output text
다음은 출력 예시예요.
2025-05-01T00:00:00.000Z
PowerShell —
계정의 폐기된 AMI를 나열하려면
Get-EC2Image cmdlet을 사용합니다.
(Get-EC2Image -Owner self | Where-Object {$_.DeprecationTime -ne $null}).ImageId
다음은 출력 예시예요.
ami-0abcdef1234567890
AMI의 폐기 날짜를 설명하려면
Get-EC2Image cmdlet을 사용합니다. 출력에 DeprecationTime이 없다면 AMI가 폐기되지 않았거나 미래 날짜로 폐기가 설정되지 않은 거예요.
(Get-EC2Image -ImageId ami-0abcdef1234567890).DeprecationTime
다음은 출력 예시예요.
2025-05-01T00:00:00.000Z
AMI 폐기 취소하기
AMI의 폐기를 취소할 수 있는데, 그러면 폐기 날짜와 시간이 제거돼요. 이 절차를 수행하려면 AMI 소유자여야 해요.
Console(콘솔) —
AMI의 폐기를 취소하려면
- Amazon EC2 콘솔을 https://console.aws.amazon.com/ec2/에서 엽니다.
- 왼쪽 탐색기에서 AMIs를 선택합니다.
- 필터 막대에서 Owned by me를 선택합니다.
- AMI를 선택한 다음 Actions, Manage AMI Deprecation을 선택합니다. 여러 AMI를 선택해 한 번에 여러 AMI의 폐기를 취소할 수 있어요.
- Enable 체크박스를 해제한 다음 Save를 선택합니다.
AWS CLI —
AMI의 폐기를 취소하려면
다음 disable-image-deprecation 명령을 사용합니다.
aws ec2 disable-image-deprecation --image-id ami-0abcdef1234567890
PowerShell —
AMI의 폐기를 취소하려면
Disable-EC2ImageDeprecation cmdlet을 사용합니다.
Disable-EC2ImageDeprecation -ImageId ami-0abcdef1234567890