

# Preservação de dados quando uma instância for encerrada
<a name="preserving-volumes-on-termination"></a>

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
<a name="how-instance-termination-affects-root-and-data-volumes"></a>

**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](Storage.md).

**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
<a name="default-deletion-behavior-for-ebs-volumes"></a>

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
<a name="check-ebs-volume-persistence-settings"></a>

O valor padrão na inicialização de um volume do EBS é determinado pelo atributo `DeleteOnTermination` definido na AMI. É possível 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/](https://console.aws.amazon.com/ec2/).

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

1. Selecione a instância.

1. Escolha a guia **Armazenamento**.

1. 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
<a name="delete-on-termination-ebs-volume"></a>

É 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](ec2-launch-instance-wizard.md), mas não execute a instância até concluir as etapas a seguir para alterar o volume raiz a ser mantido.

1. No painel **Configurar armazenamento**, escolha **Avançado**.

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

1. Em **Excluir no encerramento**, escolha **Não**.

1. 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](ec2-launch-instance-wizard.md).

------
#### [ AWS CLI ]

**Para alterar o volume-raiz de uma instância para que persista na inicialização**  
Use o comando [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 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](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) 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
<a name="delete-on-termination-running-instance"></a>

É 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](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html).

```
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](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html).

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
```

------