Orada genellikle aradığınız ne 4 adım:
AMI'yi kullanarak örnekleri sonlandırın (özellikle S3 destekli AMI'ler için pratik önerilir) [Herhangi bir tür AMI'yi silmeden önce gerekli değildir]
- Kayıttan kaldırılan AMI'ler
ec2-deregister
ec2-delete-bundle
(S3 için) veya ec2-delete-snapshot
(EBS için ) kullanarak AMI'yi destekleyen demetleri / anlık görüntüleri silin .
EBS birimlerini sil (sonlandırmada silinmeye ayarlanmadıkça, bu durumda, adım 1'de kaldırılırlar). S3 destekli örnekler için bu gerekli değildir. [Yine, yalnızca bir AMI silmek istiyorsanız örnekleri sonlandırmak veya birimleri silmek gerekmez.]
Anlık görüntülerin ve görüntülerin bağımsız olduğunu unutmayın. Anlık görüntüden bir EBS birimi oluşturabilir ve önyükleme sürücüsü yerine ikincil sürücü olarak kullanabilirsiniz. Ayrıca (Linux örnekleri söz konusu olduğunda) mevcut bir anlık görüntüden yeni bir görüntü oluşturmak mümkündür - bu, bir resmi silmek isteyen herkesin aynı zamanda ilişkili anlık görüntüleri de silmek istediği fikrine neden olur. (Bir Windows AMI oluşturmak için anlık görüntü kaydedebilseniz de, AMI başlatılamaz.)
AMI'nin kaydını kaldırmadan önce, AWS'nin bir AMI ile ilişkilendirilmiş bir anlık görüntüyü silmenize izin vermeyeceğini belirtmekte fayda var.
Yukarıdaki 2. ve 3. adımlara odaklanarak, önce bir AMI ile ilişkili anlık görüntü kimliğini bulmanız gerekir. Bu, blok cihaz eşlemelerinin bir parçası olarak listelenmelidir. Tipik olarak, kök EBS birimi / dev / sda1 bağlama noktasına sahiptir. AMI'yi komut satırından silebilir (veya AWS konsolunu kullanabilirsiniz) ve sonra anlık görüntüyü silebilirsiniz (yine komut satırından veya AWS konsolundan).
Bu görevi daha sık yerine getirmeniz gerekiyorsa işlemi kodlamak istersiniz. Python Boto gibi bazı kütüphaneler tam olarak bunu yapmak için bir işlev içerir:
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
Örneğin, yukarıdakileri temel alan örnek bir komut dosyası (tamamen denenmemiş ve birlikte kaldırılmış - birlikte kendi sorumluluğunuzda - kendi sorumluluğunuzda kullanın!) Şöyle görünebilir:
#!/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)