

# Detención e iniciación de una instancia de Amazon EC2
<a name="Stop_Start"></a>

Puede detener e iniciar la instancia si tiene un volumen de Amazon EBS como volumen raíz. Cuando se detiene una instancia, esta se cierra. Al iniciar una instancia, esta suele migrarse a un nuevo equipo host subyacente y se le asigna una nueva dirección IPv4 pública.

Una parada de una instancia puede ser iniciada por el usuario (cuando se detiene la instancia manualmente) o iniciada por AWS (en respuesta a un evento de parada programado cuando AWS detecta un fallo irreparable en el host subyacente de la instancia).

En el caso de las paradas iniciadas por el usuario, se recomienda utilizar la consola de Amazon EC2, la CLI o la API en lugar de ejecutar el comando de parada del sistema operativo desde la instancia. Al utilizar Amazon EC2, si la instancia no se cierra correctamente en unos minutos, Amazon EC2 realiza un cierre forzado. Además, AWS CloudTrail crea un registro de API de cuándo se detuvo la instancia.

En este tema se describe cómo realizar una parada iniciada por el usuario. Para obtener información sobre una parada realizada por AWS, consulte [Administración de instancias de Amazon EC2 programadas para detenerse o retirarse](schedevents_actions_retire.md).

Cuando detiene una instancia, no se elimina. Si decide que ya no necesita una instancia, puede terminarla. Para obtener más información, consulte [Terminación de las instancias de Amazon EC2](terminating-instances.md). Si desea poner en hibernación una instancia para guardar el contenido de la memoria de la instancia (RAM), consulte [Hibernación de la instancia de Amazon EC2](Hibernate.md). Para ver las distinciones entre las acciones del ciclo de vida de la instancia, consulte [Diferencias entre los estados de las instancias](ec2-instance-lifecycle.md#lifecycle-differences).

**Topics**
+ [Funcionamiento](how-ec2-instance-stop-start-works.md)
+ [Métodos para detener una instancia](instance-stop-methods.md)
+ [Detener e iniciar de forma manual](#starting-stopping-instances)
+ [Detener e iniciar de forma automática](#stop-start-ec2-instances-on-a-schedule)
+ [Buscar las instancias en ejecución y detenidas](#find-running-and-stopped-instances-in-globalview)
+ [Buscar las horas de lanzamiento inicial y más reciente](#find-initial-launch-time)
+ [Habilitación de la protección de detención](ec2-stop-protection.md)

## Detención e inicio de sus instancias de forma manual
<a name="starting-stopping-instances"></a>

Puede detener e iniciar las instancias con respaldo de Amazon EBS (instancias con volúmenes raíz de EBS). No se pueden detener e iniciar instancias con un volumen raíz del almacén de instancias.

Al utilizar el método predeterminado para detener una instancia, se intenta realizar un apagado controlado del sistema operativo (OS). Puede omitir el apagado controlado del sistema operativo; sin embargo, esto podría poner en riesgo la integridad de los datos. 

**aviso**  
Cuando detiene una instancia, se borran los datos contenidos en todos los volúmenes de almacén de instancias. Antes de detener una instancia, compruebe que ha copiado todos los datos que necesita de los volúmenes del almacén de instancias al almacenamiento persistente, como Amazon EBS o Amazon S3.

[Instancias de Linux] El uso del comando **halt** del sistema operativo en una instancia no inicia un apagado. Si usa el comando **halt**, la instancia no termina, sino que coloca la CPU en `HLT`, lo que suspende el funcionamiento de la CPU. La instancia permanece en el estado de ejecución.

Puede iniciar un apagado mediante los comandos del sistema operativo **shutdown** o **poweroff**. Cuando utiliza un comando del sistema operativo, la instancia se detiene de forma predeterminada. Puede cambiar este comportamiento. Para obtener más información, consulte [Cambiar el comportamiento de apagado iniciado por la instancia](Using_ChangingInstanceInitiatedShutdownBehavior.md).

**nota**  
Si detiene una instancia respaldada por Amazon EBS y aparece como “bloqueada” en el estado `stopping`, puede forzar su detención. Para obtener más información, consulte [Solución de problemas de detención de instancia de Amazon EC2](TroubleshootingInstancesStopping.md).

**Topics**
+ [Cómo parar una instancia con un apagado controlado del sistema operativo](#stop-instance-with-graceful-os-shutdown)
+ [Cómo detener una instancia y omitir el apagado controlado del sistema operativo](#stop-instance-bypass-graceful-os-shutdown)
+ [Inicio de una instancia](#start-ec2-instance)

### Cómo parar una instancia con un apagado controlado del sistema operativo
<a name="stop-instance-with-graceful-os-shutdown"></a>

Puede detener una instancia mediante el método de parada predeterminado, que incluye un intento de apagado controlado del sistema operativo. Para obtener más información, consulte [Parada predeterminada](instance-stop-methods.md#ec2-instance-default-stop).

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

**Para detener una instancia mediante el método de parada predeterminado**

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 izquierdo, seleccione **Instancias** y, a continuación, seleccione la instancia.

1. Elija **Instance state (Estado de la instancia)** y **Stop instance (Detener instancia)**. Si esta opción está desactivada, la instancia ya está detenida o bien su volumen raíz es un volumen del almacén de instancias.

1. Cuando se le pida que confirme, seleccione **Detener**. Puede que transcurran unos minutos hasta que la instancia se detenga.

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

**Para detener una instancia mediante el método de parada predeterminado**  
Utilice el comando [stop-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html).

```
aws ec2 stop-instances --instance-ids {{i-1234567890abcdef0}}
```

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

**Para detener una instancia mediante el método de parada predeterminado**  
Use el cmdlet [Stop-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2Instance.html) 

```
Stop-EC2Instance -InstanceId {{i-1234567890abcdef0}}
```

------

### Cómo detener una instancia y omitir el apagado controlado del sistema operativo
<a name="stop-instance-bypass-graceful-os-shutdown"></a>

Puede omitir el apagado controlado del sistema operativo al detener una instancia. Para obtener más información, consulte [Parada que omite el apagado del sistema operativo](instance-stop-methods.md#ec2-instance-stop-with-skip-os-shutdown).

**aviso**  
Omitir el apagado controlado del sistema operativo puede provocar pérdida o corrupción de datos (por ejemplo, contenido de memoria no volcado en disco o pérdida de operaciones de E/S en curso) o la omisión de scripts de apagado.

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

**Para detener una instancia y omitir el apagado controlado del sistema operativo**

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, elija **Instancias** y seleccione la instancia.

1. Elija **Instance state (Estado de la instancia)** y **Stop instance (Detener instancia)**.

1. En **Omitir apagado del sistema operativo**, seleccione la casilla **Omitir apagado del sistema operativo**. Si no ve esta opción en la consola, significa que aún no está disponible en la consola para la región actual. Sin embargo, puede acceder a esta característica mediante la AWS CLI o el SDK, o intentar con otra región desde la consola.

1. Elija **Detener**.

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

**Para detener una instancia y omitir el apagado controlado del sistema operativo**  
Use el comando [stop-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html) con `--skip-os-shutdown`.

```
aws ec2 stop-instances \
    --instance-ids {{i-1234567890abcdef0}} \
    --skip-os-shutdown
```

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

**Para detener una instancia y omitir el apagado controlado del sistema operativo**  
Use el cmdlet [Stop-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2Instance.html) con `-SkipOsShutdown $true`.

```
Stop-EC2Instance `
    -InstanceId {{i-1234567890abcdef0}} `
    -SkipOsShutdown $true
```

------

### Inicio de una instancia
<a name="start-ec2-instance"></a>

Puede iniciar una instancia detenida.

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

**Para iniciar una 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 izquierdo, elija **instancias**.

1. Seleccione la instancia y elija **Estado de la instancia** e **Iniciar instancia**.

   Puede que transcurran unos minutos hasta que la instancia pase al estado `running`.

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

**Para iniciar una instancia**  
Utilice el comando [start-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/start-instances.html).

```
aws ec2 start-instances --instance-ids {{i-1234567890abcdef0}}
```

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

**Para iniciar una instancia**  
Utilice el cmdlet [Start-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Start-EC2Instance.html).

```
Start-EC2Instance -InstanceId {{i-1234567890abcdef0}}
```

------

## Detener e iniciar sus instancias de forma automática
<a name="stop-start-ec2-instances-on-a-schedule"></a>

Puede automatizar la detención y el inicio de las instancias con los siguientes servicios: 

**El programador de instancias en AWS**  
Puede utilizar el programador de instancias en AWS para automatizar el inicio y la detención de instancias de EC2. Para obtener más información, consulte [How do I use Instance Scheduler with CloudFormation to schedule EC2 instances?](https://repost.aws/knowledge-center/stop-start-instance-scheduler) (¿Cómo usar el programador de instancias con CloudFormation para programar instancias de EC2?) Tenga en cuenta que [se aplican cargos adicionales](https://docs.aws.amazon.com/solutions/latest/instance-scheduler-on-aws/cost.html). 

**AWS Lambda y una regla de Amazon EventBridge**  
Puede utilizar Lambda y una regla de EventBridge para detener e iniciar las instancias según un cronograma. Para obtener más información, consulte [¿Cómo puedo utilizar la función de Lambda para detener e iniciar las instancias de Amazon EC2 a intervalos regulares?](https://repost.aws/knowledge-center/start-stop-lambda-eventbridge)

**Amazon EC2 Auto Scaling**  
Para asegurarse de que dispone del número correcto de instancias de Amazon EC2 para gestionar la carga de una aplicación, cree grupos de escalado automático. Amazon EC2 Auto Scaling garantiza que su aplicación siempre tenga la capacidad adecuada para manejar la demanda de tráfico y ahorra costos al iniciar instancias solo cuando es necesario. Tenga en cuenta que Amazon EC2 Auto Scaling termina, en lugar de detener, las instancias innecesarias. Para configurar grupos de escalado automático, consulte [Introducción a Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/get-started-with-ec2-auto-scaling.html).

## Búsqueda de todas las instancias en ejecución y detenidas
<a name="find-running-and-stopped-instances-in-globalview"></a>

Puede encontrar todas las instancias en ejecución y detenidas en todas las Regiones de AWS en una sola página en [Amazon EC2 Global View](https://console.aws.amazon.com/ec2globalview/home). Esta capacidad resulta particularmente práctica para hacer un inventario y encontrar las instancias olvidadas. Para obtener información acerca de cómo utilizar Global View, consulte [Visualización de recursos entre regiones mediante Global View de AWS](global-view.md).

Como alternativa, puede ejecutar un comando o un cmdlet en cada región en la que tenga instancias.

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

**Obtención del número de instancias de EC2 en una región**  
Utilice el siguiente comando [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) para contar las instancias de la región actual. Debe ejecutar este comando en cada región en la que tenga instancias.

```
aws ec2 describe-instances \
    --region {{us-east-2}} \
    --query "length(Reservations[].Instances[])"
```

A continuación, se muestra un ejemplo del resultado.

```
27
```

**Obtención de información resumida sobre las instancias de EC2 de una región**  
Utilice el siguiente comando [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html). Debe ejecutar este comando en cada región en la que tenga instancias.

```
aws ec2 describe-instances \
    --region {{us-east-2}} \
    --query "Reservations[].Instances[].[InstanceId,InstanceType,PrivateIpAddress]" \
    --output table
```

A continuación, se muestra un ejemplo del resultado.

```
---------------------------------------------------------
|                   DescribeInstances                   |
+---------------------+---------------+-----------------+
|  i-0e3e777f4362f1bf7|  t2.micro     |  10.0.12.9      |
|  i-09453945dcf1529e9|  t2.micro     |  10.0.143.213   |
|  i-08fd74f3f1595fdbd|  m7i.4xlarge  |  10.0.1.103     |
+---------------------+---------------+-----------------+
```

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

**Obtención del número de instancias de EC2 en una región**  
Utilice el cmdlet [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html).

```
(Get-EC2Instance -Region {{us-east-2}}).Instances.Length
```

A continuación, se muestra un ejemplo del resultado.

```
27
```

**Obtención de información resumida sobre las instancias de EC2 de una región**  
Utilice el cmdlet [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html). Debe ejecutar este comando en cada región en la que tenga instancias.

```
(Get-EC2Instance).Instances | Select InstanceId, InstanceType, PrivateIpAddress
```

A continuación, se muestra un ejemplo del resultado.

```
InstanceId          InstanceType PrivateIpAddress
----------          ------------ ----------------
i-0e3e777f4362f1bf7 t2.micro     10.0.12.9
i-09453945dcf1529e9 t2.micro     10.0.143.213
i-08fd74f3f1595fdbd m7i.4xlarge  10.0.1.103
```

------

## Buscar las horas de lanzamiento inicial y más reciente
<a name="find-initial-launch-time"></a>

Cuando se describe una instancia, la hora de lanzamiento de la instancia es su hora de lanzamiento más reciente. Después de detener e iniciar una instancia, la hora de lanzamiento refleja la hora de inicio de la nueva instancia. Para averiguar la hora de lanzamiento inicial de una instancia, incluso después de detenerla e iniciarla, consulte la hora a la que la interfaz de red principal se asoció a la instancia.

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

**Búsqueda de la hora de lanzamiento más reciente**  
Seleccione la instancia y busque **Hora de lanzamiento** en **Detalles de la instancia** en la pestaña **Detalles**.

**Búsqueda de la hora de lanzamiento inicial**  
Seleccione la instancia y busque la interfaz de red principal (el índice del dispositivo es 0) en **Interfaces de red**, en la pestaña **Redes**.

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

**Búsqueda de las horas de lanzamiento inicial y más reciente**  
Utilice el siguiente comando [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) para mostrar tanto la hora de lanzamiento inicial como la hora de lanzamiento más reciente de la instancia especificada.

```
aws ec2 describe-instances \
    --instance-id {{i-1234567890abcdef0}} \
    --query 'Reservations[].Instances[].{InstanceID:InstanceId,InitialLaunch:NetworkInterfaces[0].Attachment.AttachTime,LastLaunch:LaunchTime}'
```

A continuación, se muestra un ejemplo del resultado.

```
[
    {
        "InstanceID": "i-1234567890abcdef0",
        "InitialLaunch": "2024-04-19T00:47:08+00:00",
        "LastLaunch": "2024-05-27T06:24:06+00:00"
    }
]
```

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

**Búsqueda de la hora de lanzamiento más reciente**  
Utilice el cmdlet [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html).

```
(Get-EC2Instance -InstanceId {{i-1234567890abcdef0}}).Instances.LaunchTime
```

A continuación, se muestra un ejemplo del resultado.

```
Monday, May 27, 2024 6:24:06 AM
```

**Búsqueda de la hora de lanzamiento inicial**  
Utilice el cmdlet [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html).

```
(Get-EC2Instance -InstanceId {{i-1234567890abcdef0}}).Instances.NetworkInterfaces.Attachment.AttachTime
```

A continuación, se muestra un ejemplo del resultado.

```
Friday, April 19, 2024 12:47:08 AM
```

------