Terminar una instancia
Puede eliminar la instancia cuando ya no la necesite. Esto se denomina terminar la instancia. En cuanto el estado de una instancia cambia a shutting-down
o terminated
, dejará de incurrir en gastos por ella.
Una vez se ha terminado la instancia, no es posible conectarse a ella ni iniciarla. No obstante, puede lanzar instancias adicionales utilizando la misma AMI. Si prefiere parar e iniciar la instancia, o hibernarla, consulte Detener e iniciar la instancia o Hiberne la instancia de Linux bajo demanda. Para obtener más información, consulte Diferencias entre reinicio, detención, hibernación y terminación.
Contenido
- Terminación de la instancia
- Terminar varias instancias con la protección contra la terminación en las zonas de disponibilidad
- Qué ocurre cuando se termina una instancia
- Finalizar una instancia
- Habilitar la protección contra la terminación
- Cambiar el comportamiento de apagado iniciado por la instancia
- Mantener los volúmenes de Amazon EBS cuando se termina la instancia
- Solucionar problemas de terminación de instancias
Terminación de la instancia
Una vez terminada una instancia, permanecerá visible en la consola durante un breve periodo y, a continuación, la entrada se eliminará automáticamente. No puede eliminar la entrada de la instancia terminada. Una vez que la instancia ha terminado, los recursos como las etiquetas y los volúmenes se desvinculan gradualmente de la instancia, por lo que podrían dejar de estar visibles en la instancia terminada tras un breve periodo.
Cuando una instancia se termina, los datos de cualquier volumen de almacén de instancias asociado con ella se eliminan.
De forma predeterminada, los volúmenes de dispositivo raíz de Amazon EBS se eliminan automáticamente cuando se termina la instancia. Sin embargo, de manera predeterminada, los volúmenes de EBS adicionales que adjunte en el lanzamiento o cualquier volumen de EBS que adjunte a una instancia existente se mantienen incluso después de que la instancia se termine. Este comportamiento lo controla el atributo DeleteOnTermination
del volumen y lo puede modificar. Para obtener más información, consulte Mantener los volúmenes de Amazon EBS cuando se termina la instancia.
Puede impedir que una instancia termine accidentalmente debido a que alguien usa la AWS Management Console, la CLI y la API. Esta característica está disponible para las instancias Amazon EC2 con respaldo en el almacén de instancias, así como para las instancias con respaldo en Amazon EBS. Cada instancia tiene un atributo DisableApiTermination
con el valor predeterminado de false
(se puede terminar la instancia a través de Amazon EC2). Puede modificar este atributo de la instancia mientras se encuentre en ejecución o detenida (en el caso de las instancias con respaldo en Amazon EBS). Para obtener más información, consulte Habilitar la protección contra la terminación.
Puede controlar si una instancia debe pararse o terminarse cuando comienza el cierre desde la instancia con un comando del sistema operativo para el cierre del sistema. Para obtener más información, consulte Cambiar el comportamiento de apagado iniciado por la instancia.
Si ejecuta un script en la terminación de la instancia, podría producirse una terminación anormal porque no hay forma de asegurarse de que se ejecuten los scripts de apagado. Amazon EC2 intenta apagar una instancia de forma limpia y ejecutar los scripts de apagado del sistema; sin embargo, algunos eventos (como error de hardware) pueden impedir que se ejecuten estos scripts de apagado del sistema.
Terminar varias instancias con la protección contra la terminación en las zonas de disponibilidad
Si se terminan varias instancias en distintas zonas de disponibilidad, y una o varias de las instancias especificadas se encuentran habilitadas para la protección contra la terminación, se produce un error en la solicitud acompañado de los siguientes resultados:
-
Las instancias especificadas que se encuentran en la misma zona de disponibilidad que la instancia protegida no se terminan.
-
Las instancias especificadas que se encuentran en diferentes zonas de disponibilidad, en las que no hay otras instancias especificadas protegidas, se terminan correctamente.
Por ejemplo, supongamos que dispone de las siguientes instancias:
Instancia | Zona de disponibilidad | Protección contra la terminación |
---|---|---|
Instancia A | us-east-1a |
Disabled |
Instancia B | Disabled |
|
Instancia C | us-east-1b |
Enabled |
Instancia D | Disabled |
Si se intenta terminar todas estas instancias en la misma solicitud, se informa de un error en la solicitud con los siguientes resultados:
-
La instancia A y la instancia B se terminan correctamente, ya que ninguna de las instancias especificadas en
us-east-1a
se encuentran habilitadas para la protección contra la terminación. -
La instancia C y la instancia D no pueden terminarse, ya que, al menos una de las instancias especificadas en
us-east-1b
(instancia C) se encuentra habilitada para la protección contra la terminación.
Qué ocurre cuando se termina una instancia
Cuando una instancia EC2 se termina con el comando terminate-instances
, se registra lo siguiente en el nivel del SO:
-
La solicitud de la API envía al invitado un evento de pulsación de botón.
-
Como resultado de este evento de pulsación de botón, se detienen varios servicios del sistema. systemd se encarga de administrar un cierre estable del sistema. El apagado estable se activa desde el hipervisor a través del evento de pulsación del botón de apagado de ACPI.
-
Se inicia el apagado de ACPI.
-
La instancia se apaga cuando se termina el proceso de apagado estable. El tiempo de apagado del SO no puede configurarse.
Finalizar una instancia
Puede terminar una instancia usando la AWS Management Console o la línea de comandos.
De forma predeterminada, cuando se inicia un cierre desde una instancia respaldada por Amazon EBS (con los comandos shutdown o poweroff), la instancia se detiene. El comandohalt no inicia un cierre. Si se utiliza, la instancia no termina; en su lugar, coloca la CPU en HLT
y la instancia permanece en ejecución.
Para ejecutar un experimento controlado de inserción de errores
Puede usar AWS Fault Injection Simulator para probar cómo responde la aplicación cuando la instancia se termina. Para obtener más información, consulte la Guía del usuario de AWS Fault Injection Simulator.
Habilitar la protección contra la terminación
De manera predeterminada, puede terminar una instancia usando la línea de comandos, la interfaz o la API o la consola de Amazon EC2. Si quiere evitar que la instancia se termine accidentalmente utilizando Amazon EC2, puede habilitar la protección contra terminación para la instancia. El atributo DisableApiTermination
controla si la instancia puede terminarse usando la consola, la CLI o la API. De forma predeterminada, la protección contra terminación de la instancia está deshabilitada. Puede establecer el valor de este atributo cuando lanza la instancia, mientras se encuentre en ejecución o cuando está detenida (en el caso de las instancias con respaldo en Amazon EBS).
El atributo DisableApiTermination
no evita que termine una instancia cuando comienza el cierre desde la instancia (con un comando del sistema operativo para el cierre del sistema) cuando el atributo InstanceInitiatedShutdownBehavior
está establecido. Para obtener más información, consulte Cambiar el comportamiento de apagado iniciado por la instancia.
Limitaciones
No puede habilitar la protección contra terminación para instancias de spot; una instancia de spot se termina cuando el precio de spot excede el monto que está dispuesto a pagar por las instancias de spot. Sin embargo, puede preparar la aplicación para gestionar las interrupciones de las instancias de spot. Para obtener más información, consulte Interrupciones de instancias de spot.
El atributo DisableApiTermination
no impide que Amazon EC2 Auto Scaling termine una instancia. Para las instancias de un grupo de Auto Scaling, use las características de Amazon EC2 Auto Scaling siguientes en lugar de la protección contra terminación de Amazon EC2:
-
Para impedir que las instancias que son parte de un grupo de Auto Scaling se terminen al reducir horizontalmente, utilice la protección de reducción horizontal de instancias. Para obtener más información, consulte Uso de la protección para la reducción horizontal de instancias en la Guía del usuario de Amazon EC2 Auto Scaling.
-
Para impedir que Amazon EC2 Auto Scaling termine las instancias deterioradas, suspenda el proceso
ReplaceUnhealthy
. Para obtener más información, consulte Suspender y reanudar procesos de escalado en la Guía del usuario de Amazon EC2 Auto Scaling. -
Para especificar qué Amazon EC2 Auto Scaling de instancia debe terminar primero, elija una política de terminación. Para obtener más información, consulte Personalizar la política de terminación en la Guía del usuario de Amazon EC2 Auto Scaling.
Para habilitar la protección contra terminación para una instancia en el lanzamiento
Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/
. -
En el panel, elija Launch Instance (Lanzar instancia) y siga las instrucciones del asistente.
-
En la página Configure Instance Details (Configurar detalles de instancia), seleccione la casilla de verificación Enable termination protection (Habilitar la protección de terminación).
Para habilitar la protección contra terminación para una instancia en ejecución o detenida
-
Seleccione la instancia y, a continuación, elija Actions (Acciones), Instance Settings (Configuración de instancia), Change Termination Protection (Cambiar protección de terminación).
-
Elija Yes, Enable (Sí, habilitar).
Para deshabilitar la protección contra terminación para una instancia en ejecución o detenida
-
Seleccione la instancia y, a continuación, elija Actions (Acciones), Instance Settings (Configuración de instancia), Change Termination Protection (Cambiar protección de terminación).
-
Elija Yes, Disable (Sí, deshabilitar).
Para habilitar o deshabilitar la protección contra terminación en la línea de comandos
Puede utilizar uno de los siguientes comandos. Para obtener más información acerca de estas interfaces de línea de comandos, consulte Acceder a Amazon EC2.
modify-instance-attribute (AWS CLI)
Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell)
Cambiar el comportamiento de apagado iniciado por la instancia
De forma predeterminada, al iniciar un cierre de una instancia respaldada por Amazon EBS (usando un comando del tipo shutdown o poweroff), la instancia se detiene (Tenga en cuenta que halt no emite ningún comando poweroff y, si se utiliza, la instancia no termina; en cambio, colocará la CPU en HLT y la instancia seguirá ejecutándose). Puede cambiar este comportamiento con el atributo InstanceInitiatedShutdownBehavior
de la instancia para hacer que se termine. Puede actualizar este atributo mientras la instancia está en ejecución o detenida.
Puede actualizar el atributo InstanceInitiatedShutdownBehavior
con la línea de comandos o la consola de Amazon EC2. El atributo InstanceInitiatedShutdownBehavior
solo se aplica cuando lleva a cabo un cierre desde el sistema operativo de la propia instancia, no se aplica cuando detiene una instancia con la API StopInstances
o la consola de Amazon EC2.
Mantener los volúmenes de Amazon EBS cuando se termina la instancia
Cuando se termina una instancia, Amazon EC2; usa el valor del atributo DeleteOnTermination
en cada volumen de Amazon EBS asociado para determinar si conservarlo o eliminarlo.
El valor predeterminado del atributo DeleteOnTermination
varía dependiendo de si el volumen es el volumen raíz de la instancia o un volumen no raíz asociado a la instancia.
- Volumen raíz
-
De manera predeterminada, el atributo
DeleteOnTermination
del volumen raíz de una instancia se establece entrue
. Por tanto, la opción predeterminada es eliminar el volumen raíz de la instancia cuando la instancia se termina. El atributoDeleteOnTermination
lo puede definir el creador de una AMI o la persona que lanza una instancia. Cuando el creador de una AMI o la persona que lanza una instancia cambia el atributo, la nueva configuración invalida la configuración predeterminada original de la AMI. Es recomendable que verifique la configuración predeterminada del atributoDeleteOnTermination
después de lanzar una instancia con una AMI. - Volumen no raíz
-
De manera predeterminada, cuando se adjunta un volumen no raíz de EBS a una instancia, su atributo
DeleteOnTermination
se establece enfalse
. Por consiguiente, el valor predeterminado es conservar estos volúmenes. Después de que la 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. Para obtener más información, consulte Eliminar un volumen Amazon EBS.
Para comprobar el valor del atributo DeleteOnTermination
para un volumen de EBS que está en uso, mire la asignación de dispositivos de bloques de la instancia. Para obtener más información, consulte Visualizar los volúmenes de EBS en la asignación de dispositivos de bloques de una instancia.
Puede cambiar el valor del atributo DeleteOnTermination
de un volumen cuando lance la instancia o mientras la instancia está en ejecución.
Ejemplos
Cambiar el volumen raíz para que persista en el lanzamiento con la consola
Utilizando la consola, puede cambiar el atributo DeleteOnTermination
al lanzar una instancia. Para cambiar este atributo en una instancia en ejecución, debe utilizar la línea de comandos.
Para cambiar el volumen raíz de una instancia a persistente en el lanzamiento con la consola
-
Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/
. -
En el panel de la consola, seleccione Launch Instance (Lanzar instancia).
-
En la página Choose an Amazon Machine Image (AMI) (Elegir una imagen de máquina de Amazon (AMI)), elija una AMI y, después, elija Select (Seleccionar).
-
Siga el asistente para completar las páginas Choose an Instance Type (Elegir un tipo de instancia) y Configure Instance Details (Configurar detalles de instancia).
-
En la página Add Storage (Añadir almacenamiento), anule la selección de la casilla Delete On Termination (Eliminar al terminar) para el volumen raíz.
-
Complete las páginas del asistente restantes y, a continuación, elija Launch (Lanzar).
En la nueva experiencia de consola, puede verificar la configuración al ver los detalles del volumen de dispositivo raíz en el panel de detalles de la instancia. En la pestaña de Storage (Almacenamiento), en Block devices (Dispositivos de bloques), desplácese hacia la derecha a fin de ver la configuración Delete on termination (Eliminar al terminar) para el volumen. De forma predeterminada, Delete on termination (Eliminar al terminar) está como Yes
. Si cambia el comportamiento predeterminado, Delete on termination (Eliminar al terminar) aparecerá como No
.
En la experiencia de consola anterior, puede verificar la configuración al ver los detalles del volumen de dispositivo raíz en el panel de detalles de la instancia. Junto a Block devices (Dispositivos de bloques), elija la entrada para el volumen de dispositivo raíz. De forma predeterminada, Delete on termination (Eliminar al terminar) está como True
. Si cambia el comportamiento predeterminado, Delete on termination (Eliminar al terminar) aparecerá como False
.
Cambiar el volumen raíz para que persista en el lanzamiento con la línea de comandos
Cuando lanza una instancia con respaldo en EBS, puede usar uno de los comandos siguientes para cambiar el volumen de dispositivo raíz a persistente. Para obtener más información acerca de estas interfaces de línea de comandos, consulte Acceder a Amazon EC2.
run-instances (AWS CLI)
New-EC2Instance (AWS Tools for Windows PowerShell)
En las asignaciones de dispositivos de bloques para los volúmenes que desee conservar, incluya --DeleteOnTermination
y especifique false
.
Por ejemplo, para conservar un volumen, agregue la siguiente opción al comando run-instances
:
--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 } } ]
Cambiar el volumen raíz de una instancia en ejecución para que persista con la línea de comandos
Puede usar uno de los comandos siguientes para cambiar el volumen de dispositivo raíz de una instancia con respaldo en EBS en ejecución a persistente. Para obtener más información acerca de estas interfaces de línea de comandos, consulte Acceder a Amazon EC2.
modify-instance-attribute (AWS CLI)
Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell)
Por ejemplo, use el siguiente comando:
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 } } ]
Solucionar problemas de terminación de instancias
Si termina la instancia y comienza otra instancia, lo más probable es que haya configurado el escalado automático a través de una característica como Flota de EC2 o Amazon EC2 Auto Scaling.
Si la instancia se encuentra en estado shutting-down
durante más tiempo del habitual, se limpiará (terminará) por procesos automáticos dentro del servicio de Amazon EC2. Para obtener más información, consulte Retrasar la terminación de una instancia.