EC2 AMI를 삭제하는 방법


답변:


55

AWS 문서에서 업데이트 된 답변 :

  1. https://console.aws.amazon.com/ec2/ 에서 Amazon EC2 콘솔을 엽니 다 .
  2. 탐색 줄에서 해당 지역을 확인하십시오.
  3. 탐색 패널에서 AMI를 클릭하십시오.
  4. AMI를 선택하고 작업을 클릭 한 다음 등록 취소를 클릭합니다. 확인 메시지가 표시되면 계속을 클릭하십시오.
  5. 탐색 창에서 스냅 샷을 클릭하십시오.
  6. 스냅 샷을 선택하고 작업을 클릭 한 다음 삭제를 클릭하십시오. 확인 메시지가 표시되면 예, 삭제를 클릭하십시오.

이것이 나를 좋아하는 사람을 돕기를 바랍니다! :디


2
Benjamin Smith Max의 답변에 몇 센트를 추가하여 스냅 샷을 삭제하십시오. 스냅 샷을 삭제하려면 먼저 콘솔에서 AMI를 등록 취소해야합니다.
tarvinder91

3
AMI 레코드가 여전히 중단 된 경우 캐시를 우회하여 다시로드하십시오. Windows : Ctrl + Shft + R 또는 macOS : ⌘ + ⌥ + R.
André Hauptfleisch at

참고 : 콘솔이 목록에서 AMI를 제거하는 데 몇 분이 걸릴 수 있습니다. 상태를 새로 고치려면 새로 고침을 선택하십시오.
Aniket Thakur

7

일반적으로 찾고자하는 단계 는 4 단계입니다.

  1. AMI를 사용하여 인스턴스 종료 (특히 S3 지원 AMI에 대한 권장 사례) [모든 유형의 AMI를 삭제하기 전에 필요하지 않음]
  2. 다음을 사용하여 AMI 등록 취소 ec2-deregister
  3. ec2-delete-bundle(S3) 또는 ec2-delete-snapshot(EBS)를 사용하여 AMI를 지원하는 번들 / 스냅 샷을 삭제하십시오 .
  4. EBS 볼륨을 삭제합니다 (종료시 삭제하도록 설정되어 있지 않은 경우 1 단계에서 제거됨). S3 지원 인스턴스에는 필요하지 않습니다. [단, AMI를 삭제하려는 경우 인스턴스를 종료하거나 볼륨을 삭제할 필요가 없습니다.]

스냅 샷과 이미지는 독립적입니다. 스냅 샷에서 EBS 볼륨을 생성하여 부팅 드라이브 대신 보조 드라이브로 사용할 수 있습니다. 또한 (Linux 인스턴스의 경우) 기존 스냅 샷에서 새 이미지를 생성 할 수 있습니다. 이는 이미지를 삭제하려는 모든 사람이 관련 스냅 샷을 삭제하고 싶지 않다는 생각에 근거가됩니다. (Windows AMI를 생성하기 위해 스냅 샷을 등록 할 수 있지만 AMI는 시작할 수 없습니다.)

AMI를 등록 취소하기 전에 AWS가 AMI와 관련된 스냅 샷을 삭제하도록 허용하지 않습니다.

위의 2 단계와 3 단계를 중심으로 먼저 AMI와 관련된 스냅 샷 ID를 찾아야합니다. 이것은 블록 장치 매핑의 일부로 나열되어야합니다. 일반적으로 루트 EBS 볼륨에는 마운트 지점 / dev / sda1이 있습니다. 명령 줄에서 AMI를 등록 취소하거나 AWS 콘솔을 사용하여 스냅 샷을 삭제할 수 있습니다 (명령 줄 또는 AWS 콘솔에서).

이 작업을 더 자주 수행해야하는 경우 프로세스를 스크립팅하고 싶을 것입니다. Python Boto와 같은 일부 라이브러리에는 정확하게 수행하는 함수가 포함되어 있습니다.

deregister_image(image_id, delete_snapshot=False)
    Unregister an AMI.

    Parameters: 
        image_id (string) – the ID of the Image to unregister
        delete_snapshot (bool) – Set to True if we should delete the snapshot associated with an EBS volume mounted at /dev/sda1

예를 들어 위의 내용을 기반으로 한 샘플 스크립트 (완전히 테스트를 거치지 않고 함께 모여서 사용하십시오!)는 다음과 같습니다.

#!/usr/bin/env python

import os
import sys

def ec2delete(imageid=None):
    conn = boto.ec2.connect_to_region('your_region', aws_access_key_id='your_key', aws_secret_access_key='your_secret') 
    conn.deregister_image(imageid, delete_snapshot=True)

if __name__ == '__main__':
    from optparse import OptionParser
    parser = OptionParser()

    options, args = parser.parse_args()
    sys.stderr.write("Deleting %s and snapshots\n" %  str(args))
    ec2delete(args)

1
AMI를 삭제하기 전에 AMI 인스턴스를 종료 할 필요가 없습니다. AMI는 인스턴스를 시작하는 데만 사용되며 인스턴스 없이도 계속 정상적으로 작동 할 수 있습니다. 그러나 AMI를 삭제하고 인스턴스가 실패하면 AMI없이 인스턴스를 교체하기가 어려울 수 있으므로주의하십시오.
Eric Hammond

1
AWS 는 '완전한 정리'를 위해 인스턴스 종료를 권장 했지만 원칙적으로 AMI 삭제에는 필요하지 않습니다. EBS 볼륨이 '게으르게'로드되기 때문에 인스턴스가 시작된 직후 스냅 샷이 삭제되지만 EBS 볼륨이 완전히로드되기 전에 문제가 될 수 있습니다.
cyberx86

@ cyberx86 : 스냅 샷 삭제가 새 볼륨 생성에 영향을 미치는 경우 AMI 삭제보다 더 큰 문제가됩니다. 스냅 샷에서 볼륨을 완전히 채우는 데 걸리는 시간이 주어지면 데이터로 가득 찬 스냅 샷으로 쉽게 테스트 할 수 있습니다.
Eric Hammond

2
@EricHammond : 빠른 검색 에 따르면 AWS는 데이터가로드 될 때까지 스냅 샷을 삭제하지는 않지만 여전히 삭제를 수행 할 수 있음을 보여줍니다 (아마도 스냅 샷이 필요하지 않을 때까지 유지).
cyberx86

@ cyberx86 : 내가 의심했지만 확실하게 알고 있습니다. 찾아 주셔서 감사합니다.
Eric Hammond

1

awscli는 또한이 작업을 수행 할 수 있습니다.

먼저 다음을 사용하여 shapshot ID를 얻습니다 describe-images.

aws ec2 describe-images --image-ids ami-0123456789

그런 다음 이미지를 등록 취소하고 스냅 샷을 삭제하십시오.

aws ec2 deregister-image --image-id ami-0123456789
aws ec2 delete-snapshot --snapshot-id snap-9876543210
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.