EC2 AMI nasıl silinir


43

Komutun ec2-create-image instance-id, ec2 örneğinin bir görüntüsünü oluşturması, anlık görüntüler dosyası oluşturması ve bir AMI olarak kaydedilmesi olacağını biliyorum . Ancak, ilgili anlık görüntü dosyalarını silen ve AMI kaydını silecek olan resmi silmek için eşdeğer komut nedir?


Yanıtlar:


55

Aws Docs'tan Güncellenmiş Cevap:

  1. Amazon EC2 konsolunu https://console.aws.amazon.com/ec2/ adresinden açın .
  2. Gezinti çubuğunda bölgenizi doğrulayın.
  3. Gezinti panelinde, AMI’leri tıklayın.
  4. AMI'yi seçin, Eylemler'i ve ardından Kayıt Sil'i tıklayın. Onay istendiğinde, Devam Et'i tıklayın.
  5. Gezinti bölmesinde, Anlık Görüntüler'i tıklatın.
  6. Anlık görüntüyü seçin, Eylemler'e ve ardından Sil'e tıklayın. Onay istendiğinde, Evet, Sil 'i tıklayın.

Umarım bu benim gibi biri yardım eder! : D


2
Sadece anlık görüntüleri silmek için Benjamin Smith Max'ın cevabına birkaç kuruş eklemek için. Anlık görüntünün silinebilmesi için önce AMI'nin konsoldan kaydını kaldırmanız gerekir.
tarvinder91

3
AMI kaydınız hala takılıyorsa, sadece önbelleği atlayarak yeniden yükleme yapın: Windows: Ctrl + Shft + R veya macOS'ta: ⌘ + ⌥ + R
André Hauptfleisch

NOT: Konsolun AMI'yi listeden çıkarması birkaç dakika sürebilir. Durumu yenilemek için Yenile'yi seçin.
Aniket Thakur

7

Orada genellikle aradığınız ne 4 adım:

  1. 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]
  2. Kayıttan kaldırılan AMI'ler ec2-deregister
  3. 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 .
  4. 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)

1
AMI'yi silmeden önce bir AMI örneklerini sonlandırmaya gerek yoktur. AMI yalnızca örnekleri başlatmak için kullanılır ve bunlar olmadan sorunsuz bir şekilde çalışmaya devam edebilirler. Ancak, AMI'yi silerseniz ve örnekler başarısız olursa, AMI olmadan yedek örnekleri başlatmak zor olabilir, bu yüzden dikkatli olun.
Eric Hammond

1
AWS , 'tam temizlik' için örneklerin sonlandırılmasını tavsiye etmekte , ancak prensipte bir AMI silmek için gerekli olmamalıdır. Ancak bazı durumlarda, EBS hacimlerinin 'tembel olarak' yüklenmesinden dolayı, bir örnek başlatıldıktan kısa bir süre sonra bir anlık görüntü silinirse, ancak EBS birimi tam olarak yüklenmeden önce sorunlu olabilir, ancak bunun önemli olup olmadığını merak ediyorum.
cyberx86,

@ cyberx86: Bir anlık görüntü silme işlemi yeni bir cilt oluşturma işlemini etkilediyse, yalnızca AMI'leri silmektan daha büyük bir sorun olur. Bir anlık görüntüden bir birimi tam olarak doldurmanın ne kadar sürdüğü göz önüne alındığında, veri dolu bir anlık görüntüyle test edilmesi kolay olmalıdır.
Eric Hammond

2
@EricHammond: Hızlı bir arama , AWS’in veriler yüklenene kadar anlık görüntüyü silmeyeceğini, ancak yine de silme işlemini yapmanıza izin vereceğini gösterir (muhtemelen gerekli olmayana kadar yalnızca anlık görüntüyü tutar).
cyberx86 11:12

@ cyberx86: Şüphelendiğim gibi, ama kesin olarak bilmek güzel. Aradığın için teşekkürler.
Eric Hammond

1

Awscli da bunu yapabilirsiniz.

İlk önce kullanarak shapshot kimliğini alın describe-images:

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

Ardından görüntüyü silin ve anlık görüntüyü silin:

aws ec2 deregister-image --image-id ami-0123456789
aws ec2 delete-snapshot --snapshot-id snap-9876543210
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.