Inicia y detén una instancia

En esta página, se describe cómo iniciar y detener una instancia de VM. Para ver una tabla de comparación de las diferencias entre la detención, el restablecimiento y la eliminación de una instancia, consulta Ciclo de vida de la instancia.

Si ya no necesitas una instancia, puedes detenerla de manera temporal y reiniciarla más adelante. Una instancia detenida conserva sus discos persistentes, sus IP internas, sus IP externas estáticas y sus direcciones MAC. Sin embargo, la instancia cierra el SO invitado y pierde su estado de la aplicación. En esencia, una instancia detenida se restablece a su estado de encendido y no se guardan los datos. Puedes detener una instancia si deseas 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 le envía la señal de apagado de ACPI. 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 un período corto 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 adjuntos a la instancia. 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 adjuntos, puedes volver a configurar una instancia detenida a fin de no usar estos recursos y, luego, borrarlos.

Antes de comenzar

Restricciones

No puedes detener una instancia con un SSD local adjunto. Compute Engine no te impide cerrar una instancia desde el sistema operativo invitado si la instancia tiene un SSD local; por lo tanto, toma precauciones adicionales.

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 te impide apagar el sistema operativo invitado en una instancia con un SSD local; por lo tanto, toma precauciones adicionales si cierras los sistemas operativos invitados en tus instancias.

Facturación

Google no cobra por los recursos de VM una vez que las VM se encuentran en un estado TERMINATED.

En particular, cuando una VM tiene el estado RUNNING y está en proceso de detención (pero aún no está en estado TERMINATED), Google cobra por CPU virtuales, memoria, GPU y el uso de SSD locales. Después de que finaliza el estado STOPPING y una VM ingresa al estado TERMINATED, Google deja de facturar por los recursos mencionados.

Ten en cuenta que otros recursos que estén conectados a una VM en estado TERMINATED seguirán generando cargos, por ejemplo, los discos persistentes y las direcciones IP externas estáticas.

Para obtener más información sobre los estados de las instancias, consulta la documentación del Ciclo de vida de la instancia.

Detén una instancia

Para detener una instancia, usa Google Cloud Console, la herramienta de gcloud o 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 que quieras 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/zone/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 que aún estén adjuntos a la instancia terminada permanecerán así hasta que los separes de forma manual o borres la instancia.

Una vez que la instancia esté en 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 a través del SO

De manera opcional, puedes detener una instancia a través del sistema operativo invitado.

Linux

Usa los comandos sudo shutdown -h now o sudo poweroff. Ejecuta uno de estos comandos cuando accedas a la máquina virtual:

    sudo shutdown -h now
    
    sudo poweroff
    

Windows

Para detener una instancia de VM basada en el SO Windows, haz clic en la flecha junto a Cerrar sesión en el menú Inicio y, luego, en Apagar.

Inicia una instancia detenida

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 con un estado TERMINATED, mientras que métodos como reset() y sudo reboot solo funcionan en instancias que se encuentran en ejecución en ese momento. La mayoría de las instancias pueden reiniciarse, siempre y cuando tengan un estado TERMINATED, excepto las instancias con SSD locales adjuntos, que no se pueden reiniciar.

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 instancias que deseas reiniciar.
  3. Haz clic en el botón 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:

    POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/zone/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="zone", 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.

Inicia una instancia detenida que tiene discos encriptados

Si la instancia que quieres reiniciar usa claves de encriptación proporcionadas por el cliente, debes ingresarlas 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 Iniciar. Se abrirá una ventana en la que 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

Proporciona la clave con la marca --csek-key-file y el nombre del disco cuando inicies la instancia. 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: El nombre de la instancia.
  • encryption-key: La clave de encriptación que usas para encriptar los discos persistentes adjuntos a la instancia.

API

En la API, crea una solicitud POST para iniciar la instancia con una clave de encriptación. Si usas una clave unida con RSA, realiza la solicitud a la API Beta, en lugar de 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: El ID de tu proyecto.
  • zone: La zona de esta instancia.
  • instance-name: El nombre de la instancia.
  • encryption-key: La clave de encriptación que usas para encriptar los discos persistentes adjuntos a la instancia.
  • disk-name: El disco adjunto 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. Cuando se restablece 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 SO invitado. A lo largo de este proceso, la instancia permanece en estado RUNNING.

Cuando restableces una instancia, no se cambia ninguna de sus propiedades. La instancia conserva propiedades como la dirección IP efímera, la dirección IP externa estática, el disco persistente y el tipo de máquina. Sin embargo, todos los datos almacenados en la memoria se restablecerán. Para conservar los datos almacenados en la memoria, debes crear una copia de seguridad de los datos.

Puedes restablecer una instancia en ejecución con el botón Restablecer en Cloud Console, con el comando instances reset en gcloud o con 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. Marca las casillas junto a una o más instancias que quieras restablecer.
  3. Haz clic en el botón Restablecer para restablecer las instancias.

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:

    POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/zone/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="zone", 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().reset.

Después de ejecutar el comando reset, la operación de zona posterior se mostrará como DONE una vez que la instancia se haya detenido por completo y haya comenzado a reiniciarse.

Usa otros métodos de reinicio

Como alternativa, puedes restablecer la instancia con los comandos siguientes:

  • sudo reboot (solo Linux): Se llama desde dentro de la instancia. Limpia la memoria y vuelve a inicializar la instancia con los metadatos, la imagen y los discos persistentes originales. sudo reboot no recogerá las versiones actualizadas de la imagen, y la instancia conservará la misma dirección IP efímera. Esto es similar al proceso de reinicio de tu computadora.
  • 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 a gcloud compute instances create. Luego, puedes seleccionar alguna imagen nueva o bien otros recursos que te gustarían usar. La instancia reiniciada probablemente tenga una dirección IP diferente. Con este método, se puede intercambiar la máquina física que aloja la instancia.

Próximos pasos