En esta página, se describe cómo iniciar y detener una instancia de VM. Ten en cuenta que Compute Engine usa
STOP
y TERMINATE
de forma intercambiable. 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 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 te cobren por los recursos adjuntos, puedes volver a configurar una instancia detenida a fin de no usar esos recursos y, luego, borrarlos.
Si necesitas retener el SO invitado y el estado de la aplicación, suspende la instancia.
Antes de comenzar
- Si deseas usar los ejemplos de línea de comandos en esta guía, haz lo siguiente:
- Instala la herramienta de línea de comandos de gcloud o actualízala a la última versión.
- Configura una región y una zona predeterminadas.
- Si deseas usar los ejemplos de API de esta guía, configura el acceso a la API.
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
En Cloud Console, ve a la página Instancias de VM.
Selecciona una o más instancias que desees detener.
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
En Google Cloud Console, ve a la página Instancias de VM.
Selecciona las casillas junto a una o más instancias para iniciarlas.
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
En Google Cloud Console, ve a la página Instancias de VM.
Haz clic en el nombre de la instancia que quieras iniciar. Se abrirá la página de detalles de la instancia.
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.
Especifica las claves de encriptación para cada uno de los discos encriptados conectados a esta instancia.
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, realiza una solicitud POST al al método instances.startWithEncryptionKey
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/startWithEncryptionKey
{
"disks": [
{
"source": "DISK_URL",
"diskEncryptionKey": {
"ENCRYPTION_TYPE": "ENCRYPTION_KEY"
}
}
]
}
Reemplaza lo siguiente:
PROJECT_ID
: el ID de tu proyectoZONE
: la zona de esta instancia.INSTANCE_NAME
: El nombre de la instancia.ENCRYPTION_TYPE
: el tipo de encriptación del disco que usas:rawKey
,kmsKeyName
orsaEncryptedKey
. Cuando usesrsaEncryptedKey
, debes usar la API Beta en lugar de la API v1.ENCRYPTION_KEY
: es la clave de encriptación que usas para encriptar los discos persistentes conectados a la instancia. Las claves de tiporawKey
orsaEncryptedKey
deben estar codificadas en base64. Se deben tomar medidas adicionales para preparar una clave de tiporsaEncryptedKey
. Para obtener más información, consulta Unión de clave RSA.DISK_URL
: la URL del recurso que corresponde al nombre del recurso completo del 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. 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
En Google Cloud Console, ve a la página Instancias de VM.
Selecciona una o más instancias para restablecer.
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 degcloud compute instances create
: Este es un reinicio completamente destructivo que inicializará la instancia con cualquier información que se pase engcloud 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.
¿Qué sigue?
- Aprende a programar instancias para que se inicien y se detengan automáticamente.
- Usa la consola en serie interactiva para solucionar los problemas en la instancia.
- Obtén más información sobre cómo cambiar el tipo de máquina.