

# Conservación de los datos cuando se termina una instancia
<a name="preserving-volumes-on-termination"></a>

Cuando se termina la instancia de Amazon EC2, puede conservar los datos del volumen de su almacén de instancias o del volumen de Amazon EBS. En este tema se explica cómo garantizar que sus datos persistan más allá de la terminación de la instancia.

## Cómo afecta la terminación de una instancia a los volúmenes raíz y de datos
<a name="how-instance-termination-affects-root-and-data-volumes"></a>

**Volúmenes de almacén de instancias**  
Cuando una instancia termina, los volúmenes de almacenes de instancias se eliminas de forma automática y se pierden los datos. Para conservar estos datos más allá de la vida útil de la instancia, antes de terminar la instancia, debe copiarlos manualmente a un almacenamiento persistente, como un volumen de Amazon EBS, un bucket de Amazon S3 o un sistema de archivos de Amazon EFS. Para obtener más información, consulte [Opciones de almacenamiento para sus instancias de Amazon EC2](Storage.md).

**Volúmenes de Amazon EBS**  
Cuando se termina una instancia, los volúmenes de EBS se eliminan o se conservan, según el valor del atributo `DeleteOnTermination` para cada volumen:
+ **Sí** (consola) / `true` (CLI): el volumen se elimina cuando se termina la instancia.
+ **No** (consola) / `false` (CLI): el volumen se conserva cuando se termina la instancia. Los volúmenes conservados siguen generando cargos.
**nota**  
Después de que una instancia se termine, puede hacer una instantánea del volumen conservado o adjuntarlo a otra instancia. Para evitar incurrir en más cargos, debe eliminar el volumen.

## Comportamiento de eliminación predeterminado para los volúmenes de EBS
<a name="default-deletion-behavior-for-ebs-volumes"></a>

El valor `DeleteOnTermination` predeterminado varía según el tipo de volumen, si el volumen se adjuntó al inicio o después, y el método (consola o CLI) utilizado para adjuntar el volumen:


| Tipo de volumen | Adjuntado cuando | Método para adjuntar | Comportamiento predeterminado al terminar la instancia | 
| --- | --- | --- | --- | 
| Volumen raíz | En la inicialización: | Consola o CLI | Eliminar | 
| Volumen raíz | After launch | Consola o CLI | Conservar | 
| Volumen de datos | En la inicialización: | Consola | Conservar | 
| Volumen de datos | En la inicialización: | CLI | Eliminar | 
| Volumen de datos | After launch | Consola y CLI | Conservar | 

## Comprobar la configuración de persistencia del volumen
<a name="check-ebs-volume-persistence-settings"></a>

El valor predeterminado en la inicialización para un volumen de EBS viene determinado por el atributo `DeleteOnTermination` establecido en la AMI. Puede cambiar el valor al inicializar la instancia, anulando la configuración de la AMI. Es recomendable que verifique la configuración predeterminada del atributo `DeleteOnTermination` después de inicializar una instancia.

**Cómo comprobar si un volumen de Amazon EBS se eliminará al terminar la instancia**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, seleccione **Instancias**.

1. Seleccione la instancia.

1. Elija la pestaña **Almacenamiento**.

1. En **Dispositivos de bloque**, desplácese hacia la derecha para comprobar la columna **Eliminar al terminar**.
   + Si la respuesta es **Sí**, el volumen se elimina cuando se termina la instancia.
   + Si la respuesta es **No**, el volumen no se elimina cuando se termina la instancia. Los volúmenes que no se eliminen seguirán generando cargos.

## Cambio del volumen raíz para que persista en la inicialización
<a name="delete-on-termination-ebs-volume"></a>

Puede cambiar el atributo `DeleteOnTermination` de un volumen raíz de EBS cuando lanza una instancia. También puede usar el siguiente procedimiento para un volumen de datos.

------
#### [ Console ]

**Para cambiar el volumen raíz de una instancia a persistente en la inicialización**

1. Siga el procedimiento para [iniciar una instancia](ec2-launch-instance-wizard.md), pero no la lance hasta que haya completado los siguientes pasos para cambiar el volumen raíz de modo que persista.

1. En el panel **Configurar almacenamiento**, elija **Avanzado**.

1. En **Volúmenes de EBS**, expanda la información sobre el volumen raíz.

1. En **Eliminar al terminar**, elija **No**.

1. En el panel **Resumen**, revise la configuración de la instancia y, a continuación, elija **Iniciar instancia**. Para obtener más información, consulte [Inicialización de una instancia de EC2 mediante el asistente de inicialización de instancias de la consola](ec2-launch-instance-wizard.md).

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

**Para cambiar el volumen raíz de una instancia a persistente en la inicialización**  
Use el comando [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) para cambiar el valor de `DeleteOnTermination` en la asignación de dispositivos de bloques.

Añada la opción `--block-device-mappings`:

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

En `mapping.json`, especifique el nombre del dispositivo (por ejemplo, `/dev/sda1` o `/dev/xvda`), y en lo que respecta a `DeleteOnTermination`, especifique `false`.

```
[
  {
    "DeviceName": "device_name",
    "Ebs": {
      "DeleteOnTermination": false
    }
  }
]
```

------
#### [ PowerShell ]

**Para cambiar el volumen raíz de una instancia a persistente en la inicialización**  
Utilice el cmdlet [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) para cambiar el valor de `DeleteOnTermination` en la asignación de dispositivos de bloques.

Añada la opción `-BlockDeviceMapping`:

```
-BlockDeviceMapping $bdm
```

En `bdm`, especifique el nombre del dispositivo (por ejemplo, `/dev/sda1` o `/dev/xvda`), y en lo que respecta a `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
```

------

## Cambio del volumen raíz de una instancia en ejecución para que persista
<a name="delete-on-termination-running-instance"></a>

Puede cambiar el volumen raíz de EBS de una instancia en ejecución para que persista. También puede usar el siguiente procedimiento para un volumen de datos.

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

**Para cambiar el volumen raíz para que persista**  
Utilice el 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
```

En `mapping.json`, especifique el nombre del dispositivo (por ejemplo, `/dev/sda1` o `/dev/xvda`), y en lo que respecta a `--DeleteOnTermination`, especifique `false`.

```
[
  {
    "DeviceName": "device_name",
    "Ebs": {
      "DeleteOnTermination": false
    }
  }
]
```

------
#### [ PowerShell ]

**Para cambiar el volumen raíz para que persista**  
Utilice el cmdlet [Edit-EC2InstanceAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html).

Añada la opción `-BlockDeviceMapping`:

```
-BlockDeviceMapping $bdm
```

En `bdm`, especifique el nombre del dispositivo (por ejemplo, `/dev/sda1` o `/dev/xvda`), y en lo que respecta a `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
```

------