Inicia y detén una instancia


En esta página, se describe cómo iniciar y detener una instancia de VM. Para suspender y reanudar una instancia, consulta Suspende y reanuda una instancia. Para obtener más información sobre cómo detener y suspender una instancia, consulta Ciclo de vida de la instancia.

Puedes detener una instancia de forma temporal si ya no la necesitas y reiniciarla más adelante. Una instancia detenida conserva sus discos persistentes, sus IP internas y sus direcciones MAC. Sin embargo, la instancia cierra el sistema operativo invitado y pierde su estado de la aplicación. Básicamente, una instancia detenida se restablece a su estado de encendido y no se guardan los datos. Detén una instancia si quieres cambiar el tipo de máquina, agregar o quitar discos adjuntos, cambiar la plataforma de CPU mínima, agregar o quitar GPU o aplicar recomendaciones de tamaño.

Si se detiene una instancia, Compute Engine envía la señal de cierre de ACPI a la instancia. Los sistemas operativos invitados modernos están configurados para realizar un cierre ordenado antes de apagarse en respuesta a la señal de apagado. Compute Engine espera a que el sistema invitado finalice el cierre y, luego, pasa la instancia al estado TERMINATED.

Una instancia detenida no genera cargos, pero sí generan cargos todos los recursos vinculados a ella. Por ejemplo, se te cobrará por los discos persistentes y las direcciones IP externas de acuerdo con la hoja de precios, incluso si se detiene la instancia. Para que no se te cobre por los recursos vinculados, puedes volver a configurar una instancia detenida de modo que no use esos recursos y, luego, borrarlos.

Si necesitas retener el SO invitado y el estado de la aplicación, suspende la instancia.

Antes de comenzar

Restricciones

No puedes detener una instancia con un SSD local conectado. Compute Engine no evita que apagues una instancia desde el sistema operativo invitado si la instancia tiene un SSD local, por lo que debes tomar precauciones.

SSD locales

No puedes detener una instancia que tenga un SSD local adjunto. En su lugar, debes migrar los datos importantes del SSD local a un disco persistente o a otra instancia antes de borrar la instancia por completo. Compute Engine no evita que apagues el sistema operativo invitado en una instancia con un SSD local, por lo que debes tomar precauciones.

Facturación

Las instancias que están en estado TERMINATED no generan costos de uso por segundo y no cuentan para tu cuota de CPU regional, por lo que puedes optar por detener las instancias que no usas y evitar que se te cobre por instancias que no están activas. Una vez que estés listo, puedes volver a iniciar las mismas instancias con los mismos metadatos, propiedades y recursos.

No se cobra el uso por segundo de las instancias que estén en el estado TERMINATED, pero cualquier recurso vinculado con la máquina virtual, como IP estáticas y discos persistentes, se cobran hasta que se borren.

Detén una instancia

Para detener una instancia, usa Google Cloud Console, la herramienta de gcloud o la API de Compute Engine.

Console

  1. En Cloud Console, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Selecciona una o más instancias que desees detener.

  3. Haz clic en Detener.

gcloud

Usa el comando instances stop y especifica una o más instancias que quieras detener.

gcloud compute instances stop example-instance-1 example-instance-2

API

En la API, crea una solicitud POST para detener una instancia.

POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/stop

Una instancia en estado TERMINATED todavía existe y tiene sus ajustes de configuración y sus metadatos, pero pierde el estado de la máquina virtual y sus datos en la memoria. Todos los recursos vinculados a la instancia interrumpida permanecen así hasta que los desvincules de forma manual o borres la instancia.

Cuando al instancia adquiere el estado TERMINATED, puedes reiniciarla o borrarla. También puedes dejar una instancia en estado TERMINATED de forma indefinida. Sin embargo, si no planeas reiniciar la instancia, bórrala.

Detén una instancia por medio del SO

De manera opcional, puedes detener una instancia por medio del sistema operativo invitado con el comando sudo shutdown -h now o sudo poweroff. Ejecuta uno de estos comandos cuando accedas a la máquina virtual:

me@example-instance:~$ sudo shutdown -h now
me@example-instance:~$ sudo poweroff

Reinicia una instancia detenida que no tiene un disco encriptado

Para iniciar una instancia detenida, usa el método instances().start. Este inicia una instancia de máquina virtual detenida que, por el momento, está en estado TERMINATED.

El método start reinicia una instancia en estado TERMINATED, mientras que métodos como reset() y sudo reboot solo funcionan en instancias que se encuentran en ejecución en ese momento. Casi todas las instancias se pueden reiniciar, siempre y cuando la instancia tenga el estado TERMINATED.

Console

  1. En Google Cloud Console, ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. Selecciona las casillas junto a una o más instancias para iniciarlas.

  3. Haz clic en Iniciar.

gcloud

Para restablecer tu instancia con gcloud compute, haz lo siguiente:

gcloud compute instances start example-instance

API

En la API, realiza una solicitud POST al siguiente URI, reemplazando el proyecto, la zona y el nombre de la instancia de la siguiente manera:

https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/start

A fin de reiniciar la instancia con las bibliotecas cliente, crea una solicitud para el método instances().start:

def restartInstance(auth_http, gce_service):
  request = gce_service.instances().start(project="myproject", zone="us-central1-a", instance="example-instance")
  response = request.execute(auth_http)

  print response

Para obtener más información sobre este método, consulta la documentación de referencia de instances().start.

Reinicia una instancia que tiene discos encriptados

Si la instancia que quieres reiniciar usa claves de encriptación proporcionadas por el cliente, debes ingresar esas claves cuando intentes reiniciar la instancia.

Console

  1. En Google Cloud Console, ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. Haz clic en el nombre de la instancia que quieras iniciar. Se abrirá la página de detalles de la instancia.

  3. Haz clic en el botón Iniciar. Se abre una ventana donde puedes especificar claves de encriptación para los dispositivos que estén conectados a esta instancia.

  4. Especifica las claves de encriptación para cada uno de los discos encriptados conectados a esta instancia.

  5. Haz clic en Iniciar para abrir la instancia.

gcloud

Cuando inicies la instancia, proporciona la clave con la marca --csek-key-file y el nombre del disco. Si usas una clave unida con RSA, usa el componente gcloud beta:

 gcloud compute instances start INSTANCE_NAME \
     --csek-key-file ENCRYPTION_KEY

Reemplaza lo siguiente:

  • INSTANCE_NAME: Es el nombre de la instancia.
  • ENCRYPTION_KEY: Es la clave de encriptación que usas para encriptar los discos persistentes conectados a la instancia.

API

En la API, crea una solicitud POST para iniciar la instancia que usa una clave de encriptación. Si usas una clave unida con RSA, realiza la solicitud a la API Beta, en lugar de a la API v1.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/startWithEncryptionKey
{
  "instanceEncryptionKey": {
    "rsaEncryptedKey": "ENCRYPTION_KEY
  },
  "disk": [
    {
       "source": "DISK_NAME",
       "diskEncryptionKey": {
         "rsaEncryptedKey": "ENCRYPTION_KEY"
       }
    }
  ]
}

Reemplaza lo siguiente:

  • PROJECT_ID es el ID de tu proyecto.
  • ZONE es la zona de esta instancia.
  • INSTANCE_NAME es el nombre de la instancia.
  • ENCRYPTION_KEY es la clave de encriptación que usas para encriptar los discos persistentes conectados a la instancia.
  • DISK_NAME es el disco conectado que se encripta con una clave de encriptación proporcionada por el cliente.

Restablece una instancia

El restablecimiento de una instancia es similar al proceso de restablecimiento de configuración de fábrica de tu computadora, en el que puedes presionar un botón de restablecimiento o mantener presionado el botón de encendido. Al restablecer una instancia, se borra por la fuerza el contenido de la memoria de la máquina y se restablece la máquina virtual a su estado inicial. No se realiza un cierre ordenado del sistema operativo invitado. A lo largo de este proceso, la instancia permanece en estado RUNNING.

Puedes restablecer una instancia en ejecución mediante el botón Restablecer en Cloud Console, el comando instances reset en gcloud o una solicitud POST a la API.

Console

  1. En Google Cloud Console, ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. Selecciona una o más instancias para restablecer.

  3. Haz clic en Restablecer.

gcloud

Para restablecer tu instancia con gcloud compute, haz lo siguiente:

gcloud compute instances reset example-instance

API

En la API, realiza una solicitud POST al siguiente URI, reemplazando el proyecto, la zona y el nombre de la instancia de la siguiente manera:

https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/reset

A fin de restablecer la instancia con las bibliotecas cliente, crea una solicitud para el método instances().reset:

def resetInstance(auth_http, gce_service):
  request = gce_service.instances().reset(project="myproject", zone="us-central1-a", instance="example-instance")

  print response

Para obtener más información sobre este método, consulta la documentación de referencia de instances().reset.

Luego de ejecutar el comando reset, la operación de zona posterior muestra DONE después de que la instancia se apague por completo.

Usa otros métodos de reinicio

También puedes optar por restablecer tu instancia mediante los siguientes métodos:

  • sudo reboot (solo Linux): Llama a este método desde la instancia. Este método limpia la memoria y vuelve a inicializar la instancia con los metadatos, la imagen y los discos persistentes originales. Este comando no adopta ninguna versión actualizada de la imagen, y la instancia conserva la misma dirección IP efímera. El procedimiento es similar al proceso de reinicio de tu computadora.
  • Reinicio de una instancia de Windows: Puedes reiniciar una instancia de Windows, de manera similar a como se hace con sudo reboot, mediante el menú Iniciar. En el menú Iniciar, haz clic en la flecha junto a Log off y, luego, haz clic en Reiniciar.
  • gcloud compute instances delete seguido de gcloud compute instances create: Este es un reinicio completamente destructivo que inicializará la instancia con cualquier información que se pase en gcloud compute instances create. Luego, puedes seleccionar cualquier imagen nueva o cualquier otro recurso que quieras usar. La instancia reiniciada probablemente tendrá una dirección IP diferente. Con este método, se puede intercambiar la máquina física que aloja la instancia.

Próximos pasos