Como excluir o EC2 AMI

38

Eu sei que o comando ec2-create-image instance-id estará criando uma imagem da instância ec2, criando um arquivo de instantâneos e registrando como uma AMI. Mas qual é o comando equivalente para excluir a imagem que excluirá os arquivos de instantâneos associados e cancelará o registro da AMI?

    
por James W. 10.10.2012 / 04:45

3 respostas

49

Resposta atualizada dos documentos do aws:

  1. Abra o console do Amazon EC2 no link .
  2. Na barra de navegação, verifique sua região.
  3. No painel de navegação, clique em AMIs.
  4. Selecione a AMI, clique em Ações e, em seguida, clique em Cancelar registro. Quando solicitado a confirmação, clique em Continuar.
  5. No painel de navegação, clique em Instantâneos.
  6. Selecione o instantâneo, clique em Ações e, em seguida, clique em Excluir. Quando solicitado a confirmação, clique em Sim, Excluir.

Espero que isso ajude alguém como eu! : D

    
por 14.08.2015 / 22:24
6

Existem normalmente 4 etapas para o que você está procurando:

  1. Encerra as instâncias usando a AMI (recomendo a prática especialmente para AMIs com suporte a S3) [Não é necessário antes de excluir uma AMI de qualquer tipo]
  2. Remova o registro de AMIs usando ec2-deregister
  3. Exclua os bundles / snapshots que apoiam a AMI usando ec2-delete-bundle (para S3) ou ec2-delete-snapshot (para EBS).
  4. Exclua os volumes do EBS (a menos que eles estejam definidos para excluir no encerramento, nesse caso, eles seriam removidos na etapa 1). Isso não é necessário para instâncias com suporte do S3. [Novamente, não é necessário encerrar instâncias ou excluir volumes se você quiser apenas excluir uma AMI.]

Tenha em mente que instantâneos e imagens são independentes. Você pode criar um volume EBS a partir de um instantâneo e usá-lo como uma unidade secundária em vez de como uma unidade de inicialização. Além disso (no caso de instâncias do Linux), é possível criar uma nova imagem a partir de um instantâneo existente - o que dá razão à idéia de que nem todos que desejam excluir uma imagem também desejam excluir os instantâneos associados. (Embora você possa registrar um instantâneo para criar uma AMI do Windows, a AMI não é inicializável.)

É importante notar que a AWS não permitirá que você exclua um instantâneo associado a uma AMI antes de cancelar o registro da AMI.

Focando nos passos 2 e 3 acima, primeiro você precisa encontrar o (s) ID (s) de snapshot associado (s) a uma AMI. Isso deve ser listado como parte dos mapeamentos de dispositivos de bloco. Normalmente, o volume do EBS raiz possui o ponto de montagem / dev / sda1. Você pode cancelar o registro da AMI na linha de comando (ou usar o console da AWS) e excluir a captura instantânea (novamente, na linha de comando ou no console da AWS).

Se você precisasse realizar essa tarefa com mais frequência, você desejaria fazer o script do processo. Algumas bibliotecas, como o Python Boto, incluem uma função para fazer exatamente isso:

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

Por exemplo, um exemplo de script (completamente não testado e compilado - use a seu próprio risco!) com base no acima pode parecer com:

#!/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)
    
por 10.10.2012 / 07:39
1

O awscli também pode fazer isso.

Primeiro, pegue o id do shapshot usando describe-images :

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

Em seguida, cancele o registro da imagem e exclua o instantâneo:

aws ec2 deregister-image --image-id ami-0123456789
aws ec2 delete-snapshot --snapshot-id snap-9876543210
    
por 10.11.2018 / 07:49