Preservação de dados quando uma instância for encerrada - Amazon Elastic Compute Cloud

Preservação de dados quando uma instância for encerrada

Quando uma instância do Amazon EC2 é encerrada, é possível preservar os dados nos volumes de armazenamento da instância ou nos volumes do Amazon EBS. Este tópico explica como garantir que seus dados persistam além do encerramento da instância.

Como o encerramento da instância afeta os volumes raiz e de dados

Volumes de armazenamento de instâncias

Quando uma instância é encerrada, os volumes de armazenamento de instância são excluídos automaticamente e os dados são perdidos. Para preservar esses dados além do tempo de vida da instância, antes de encerrá-la, copie manualmente os dados para um armazenamento persistente, como um volume do Amazon EBS, um bucket do Amazon S3 ou um sistema de arquivos do Amazon EFS. Para obter mais informações, consulte Opções de armazenamento para as instâncias do Amazon EC2.

Volumes do Amazon EBS

Quando uma instância é encerrada, os volumes do EBS são excluídos ou preservados, dependendo do valor do atributo DeleteOnTermination para cada volume:

  • Sim (console) / true (CLI): o volume é excluído quando a instância é encerrada.

  • Não (console) / false (CLI): o volume é preservado quando a instância é encerrada. Os volumes preservados continuam a incorrer em cobranças.

    nota

    Depois que uma instância é encerrada, é possível criar um snapshot do volume preservado ou anexá-lo a outra instância. Para evitar incorrer em cobranças, exclua o volume.

Comportamento de exclusão padrão para volumes do EBS

O valor DeleteOnTermination padrão difere dependendo do tipo de volume, se o volume foi anexado na inicialização ou depois e do método (console ou CLI) usado para anexá-lo:

Tipo de volume Anexado quando Método para anexar Comportamento padrão no encerramento da instância
Volume raiz Na inicialização Console ou CLI Excluir
Volume raiz Após a inicialização Console ou CLI Preservar
Volume de dados Na inicialização Console Preservar
Volume de dados Na inicialização CLI Excluir
Volume de dados Após a inicialização Console e CLI Preservar

Verificar as configurações de persistência do volume

O valor padrão na inicialização de um volume do EBS é determinado pelo atributo DeleteOnTermination definido na AMI. Você pode alterar o valor na inicialização da instância substituindo a configuração da AMI. Recomendamos verificar a configuração padrão do atributo DeleteOnTermination após iniciar uma instância.

Para verificar se um volume do Amazon EBS será excluído no encerramento da instância
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Instances (Instâncias).

  3. Selecione a instância.

  4. Escolha a guia Armazenamento.

  5. Em Dispositivos de bloco, role para a direita para verificar a coluna Excluir no encerramento.

    • Se Sim, o volume será excluído quando a instância for encerrada.

    • Se Não, o volume não será excluído quando a instância for encerrada. Quaisquer volumes não excluídos continuarão incorrendo em cobranças.

Alteração do volume raiz para persistir na inicialização

É possível alterar atributo DeleteOnTermination de um volume do EBS ao inicializar uma instância. O procedimento a seguir também pode ser usado para um volume de dados.

Console
Para alterar o volume-raiz de uma instância para que persista na inicialização
  1. Siga o procedimento para executar uma instância, mas não execute a instância até concluir as etapas a seguir para alterar o volume raiz a ser mantido.

  2. No painel Configurar armazenamento, escolha Avançado.

  3. Em Volumes do EBS, expanda as informações do volume raiz.

  4. Em Excluir no encerramento, escolha Não.

  5. No painel Resumo, analise a configuração da instância e selecione Iniciar instância. Para obter mais informações, consulte Executar uma instância do EC2 usando o assistente de inicialização de instâncias no console.

AWS CLI
Para alterar o volume-raiz de uma instância para que persista na inicialização

Use o comando run-instances para alterar o valor de DeleteOnTermination no mapeamento de dispositivos de blocos.

Adicione a opção --block-device-mappings:

--block-device-mappings file://mapping.json

Em mapping.json, especifique o nome do dispositivo (por exemplo, /dev/sda1 ou /dev/xvda), e em DeleteOnTermination, especifique false.

[ { "DeviceName": "device_name", "Ebs": { "DeleteOnTermination": false } } ]
PowerShell
Para alterar o volume-raiz de uma instância para que persista na inicialização

Use o cmdlet New-EC2Instance para alterar o valor de DeleteOnTermination no mapeamento de dispositivos de blocos.

Adicione a opção -BlockDeviceMapping:

-BlockDeviceMapping $bdm

Em bdm, especifique o nome do dispositivo (por exemplo, /dev/sda1 ou /dev/xvda), e em DeleteOnTermination, especifique false.

$ebd = New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice $ebd.DeleteOnTermination = false $bdm = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping $bdm.DeviceName = "/dev/sda1" $bdm.Ebs = $ebd

Alteração do volume raiz de uma instância em execução para persistir

É possível alterar o volume raiz do EBS de uma instância em execução para que ele persista. O procedimento a seguir também pode ser usado para um volume de dados.

AWS CLI
Para alterar o volume-raiz para que persista

Use o comando modify-instance-attribute.

aws ec2 modify-instance-attribute \ --instance-id i-1234567890abcdef0 \ --block-device-mappings file://mapping.json

Em mapping.json, especifique o nome do dispositivo (por exemplo, /dev/sda1 ou /dev/xvda), e em --DeleteOnTermination, especifique false.

[ { "DeviceName": "device_name", "Ebs": { "DeleteOnTermination": false } } ]
PowerShell
Para alterar o volume-raiz para que persista

Use o cmdlet Edit-EC2InstanceAttribute.

Adicione a opção -BlockDeviceMapping:

-BlockDeviceMapping $bdm

Em bdm, especifique o nome do dispositivo (por exemplo, /dev/sda1 ou /dev/xvda), e em DeleteOnTermination, especifique false.

$ebd = New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice $ebd.DeleteOnTermination = false $bdm = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping $bdm.DeviceName = "/dev/sda1" $bdm.Ebs = $ebd