En este documento, se explica cómo suspender o reanudar instancias de Compute Engine. Para obtener más información sobre cómo suspender, detener o restablecer instancias, consulta Suspende, detén o restablece instancias de Compute Engine.
Si deseas conservar tu instancia de Compute Engine, pero no quieres que se te cobre por ella cuando no esté en uso, puedes suspenderla. Cuando suspendes una instancia, se conserva y se migra el contenido de su memoria al almacenamiento. Después de reanudar la instancia, Compute Engine migra la memoria de la instancia del almacenamiento a la instancia y esta comienza a ejecutarse de nuevo.
Suspender una instancia de Compute Engine es útil por los siguientes motivos:
Entornos de prueba y desarrollo que no se usan por completo durante los períodos de inactividad, como las noches o los fines de semana, y que deseas mantener para reducir los costos o hacer una inicialización más rápida que la creación de instancias nuevas.
Aplicaciones que requieren un largo período de inicialización después de que la instancia termina de iniciarse, pero antes de que la aplicación esté lista para hacer su primera solicitud, como estaciones de trabajo de desarrolladores virtuales o aplicaciones complejas de Java.
Limitaciones
Cuando suspendes una instancia de procesamiento, se aplican las siguientes limitaciones:
Solo puedes suspender una instancia si el SO invitado lo admite. Para obtener más información, consulta Detalles de los sistemas operativos.
Solo puedes suspender una instancia que use las siguientes imágenes de SO si configuras su SO, como se describe en este documento:
Debian 8 o 9
Cualquier SO de Windows
Solo puedes suspender una instancia durante un máximo de 60 días antes de que Compute Engine cambie automáticamente su estado a
TERMINATED.Puedes suspender las VMs Spot o las instancias interrumpibles. Sin embargo, si Compute Engine interrumpe la instancia antes de que se complete la operación de suspensión, Compute Engine finaliza la operación de suspensión y la instancia se interrumpe.
No puedes suspender instancias con los procesos estándar integrados en su entorno invitado. No se admiten comandos como
systemctl suspenden Ubuntu 16.04 o versiones posteriores. Si se llama, Compute Engine ignora la señal del invitado.No puedes suspender los siguientes tipos de instancias:
Instancias de equipos físicos
Confidential VMs
Son instancias que tienen GPUs adjuntas.
Instancias con más de 208 GB de memoria
Instancias que tienen discos protegidos por CSEK adjuntos
Habilita las operaciones de suspensión en un SO invitado
Si tu instancia de procesamiento usa Debian 8 o 9 como SO invitado, o cualquier SO de Windows, debes configurar el SO antes de poder suspender y reanudar instancias. Si tu instancia usa un SO invitado diferente, omite esta sección.
Cómo habilitar las operaciones de suspensión en Debian 8 o 9
Antes de que puedas suspender o reanudar instancias de procesamiento que usan Debian 8 o 9 como SO invitado, debes configurar el SO invitado con uno de los siguientes métodos:
Configura ACPID
Para habilitar la operación de suspensión y reanudación en Debian 8 o 9, puedes configurar el daemon de eventos de la interfaz avanzada de configuración y energía (ACPID) para controlar el evento del botón de suspensión. Después de habilitar el evento del botón de suspensión profunda, puedes agregar una secuencia de comandos de shell para controlar el evento de suspensión, como se describe en esta sección.
Para configurar el ACPID de modo que admita operaciones de suspensión y reanudación, haz lo siguiente:
Si aún no lo hiciste, conéctate a tu instancia de Linux.
Crea la carpeta
eventsen la carpetaacpi:sudo mkdir -p /etc/acpi/events/Configura el ACPID para controlar el evento del botón de suspensión:
cat <<EOF | sudo tee /etc/acpi/events/sleepbtn-acpi-support event=button[ /]sleep action=/etc/acpi/sleepbtn-acpi-support.sh EOFCrea la secuencia de comandos para controlar eventos de suspensión:
cat <<EOF | sudo tee /etc/acpi/sleepbtn-acpi-support.sh #!/bin/sh echo mem > /sys/power/state EOFConfigura los permisos para la secuencia de comandos:
sudo chmod 755 /etc/acpi/sleepbtn-acpi-support.shPara que los cambios se apliquen, reinicia ACPID:
sudo systemctl restart acpid.service
Instala D-Bus
Para habilitar la operación de suspensión y reanudación en Debian 8 o 9, puedes instalar D-Bus.
Para instalar D-Bus en el SO invitado de tu instancia de procesamiento cuando el SO usa Debian 8 o 9, haz lo siguiente:
Si aún no lo hiciste, conéctate a tu instancia de Linux.
Instala D-Bus:
sudo apt-get install dbusPara que los cambios se apliquen, reinicia
logind:sudo systemctl restart systemd-logind.service
Cómo habilitar las operaciones de suspensión en Windows
Para suspender una instancia que usa un SO invitado de Windows, debes inhabilitar la hibernación en el SO. Si importaste una imagen de Windows, es posible que la hibernación esté habilitada de forma predeterminada, por lo que debes inhabilitarla para suspender la instancia.
Para inhabilitar la hibernación en Windows, sigue estos pasos:
Si aún no lo hiciste, conéctate a tu instancia de Windows.
Abre PowerShell como administrador.
Inhabilita la hibernación:
powercfg -h offVerifica que la hibernación esté inhabilitada:
powercfg -a
Antes de comenzar
-
Si aún no lo hiciste, configura la autenticación.
La autenticación verifica tu identidad para acceder a los servicios y las APIs de Google Cloud . Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
Selecciona la pestaña que corresponda a la forma en que planeas usar las muestras de esta página:
Console
Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud , no necesitas configurar la autenticación.
gcloud
-
Instala Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI con el siguiente comando:
gcloud initSi usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
- Configura una región y una zona predeterminadas.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad (IdP) externo, primero debes acceder a gcloud CLI con tu identidad federada.
-
Si usas un shell local, crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
No es necesario que lo hagas si usas Cloud Shell.
Si se devuelve un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad (IdP) externo, primero debes acceder a gcloud CLI con tu identidad federada.
-
Si usas un shell local, crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
No es necesario que lo hagas si usas Cloud Shell.
Si se devuelve un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad (IdP) externo, primero debes acceder a gcloud CLI con tu identidad federada.
-
Si usas un shell local, crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
No es necesario que lo hagas si usas Cloud Shell.
Si se devuelve un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad (IdP) externo, primero debes acceder a gcloud CLI con tu identidad federada.
-
Si usas un shell local, crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
No es necesario que lo hagas si usas Cloud Shell.
Si se devuelve un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad (IdP) externo, primero debes acceder a gcloud CLI con tu identidad federada.
-
Si usas un shell local, crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
No es necesario que lo hagas si usas Cloud Shell.
Si se devuelve un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.
Go
Para usar las muestras de Go de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para usar las muestras de Java de esta página en un entorno de desarrollo local, instala e inicializa la gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para usar las muestras de Node.js de esta página en un entorno de desarrollo local, instala e inicializa la gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para usar las muestras de PHP de esta página en un entorno de desarrollo local, instala e inicializa la gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para usar las muestras de Python de esta página en un entorno de desarrollo local, instala e inicializa la gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
REST
Para usar las muestras de la API de REST incluidas en esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la gcloud CLI.
Instala Google Cloud CLI.
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
Para obtener más información, consulta Autentícate para usar REST en la documentación de autenticación de Google Cloud .
Roles obligatorios
Para obtener los permisos que necesitas para suspender o reanudar una instancia de Compute, pídele a tu administrador que te otorgue el rol de IAM Administrador de instancias de Compute (v1) (roles/compute.instanceAdmin.v1) en la instancia.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para suspender o reanudar una instancia de procesamiento. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para suspender o reanudar una instancia de procesamiento:
-
Para suspender una instancia, haz lo siguiente:
compute.instances.suspend -
Para reanudar una instancia, haz lo siguiente:
compute.instances.resume
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Suspende una instancia
Si el SO invitado de tu instancia de procesamiento usa Debian 8 o 9, antes de suspender la instancia, debes configurar el SO invitado para que admita operaciones de suspensión y reanudación, como se describe en este documento.
Para suspender una instancia, usa uno de los siguientes métodos según si la instancia tiene discos SSD locales conectados:
Si tu instancia no tiene ningún disco SSD local conectado, consulta Cómo suspender una instancia sin discos SSD locales.
Si tu instancia tiene discos SSD locales conectados y deseas descartar o conservar (versión preliminar) los datos de los discos SSD locales, consulta Cómo suspender una instancia con discos SSD locales.
Suspende una instancia sin discos SSD locales
Puedes suspender varias instancias de procesamiento de forma simultánea o instancias individuales. Para varias instancias, usa la consola de Google Cloud o, para las instancias ubicadas en la misma zona, Google Cloud CLI. Para instancias individuales, selecciona cualquiera de las siguientes opciones:
Console
En la consola de Google Cloud , ve a la página Instancias de VM.
Elige una o más instancias que desees suspender.
Haz clic en Suspender y, luego, en Suspender para confirmar.
gcloud
Para suspender una o más instancias en una sola zona, usa el comando gcloud compute instances suspend:
gcloud compute instances suspend INSTANCE_NAMES \
--zone=ZONE
Reemplaza lo siguiente:
INSTANCE_NAMES: Es una lista de nombres de instancias separados por espacios en blanco; por ejemplo,instance-01 instance-02 instance-03.ZONE: Es la zona en la que se encuentran las instancias.
Go
Java
Node.js
PHP
Python
REST
Para suspender una instancia, realiza una solicitud POST al método instances.suspend:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/suspend
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto en el que se encuentra la instancia.ZONE: Es la zona en la que se encuentra la instancia.INSTANCE_NAME: El nombre de la instancia.
Suspende una instancia con discos SSD locales
Según la cantidad de instancias de procesamiento que quieras suspender de forma simultánea y si necesitas conservar los datos de sus discos SSD locales conectados, haz lo siguiente:
Para conservar los datos de los discos SSD locales conectados a una instancia (excepto las instancias con discos SSD de Titanium), suspende la instancia con gcloud CLI o la API de REST.
Para suspender varias instancias de forma simultánea, usa la Google Cloud consola o, en el caso de las instancias ubicadas en la misma zona, gcloud CLI.
Para suspender una o más instancias que tienen discos SSD locales conectados, selecciona una de las siguientes opciones:
Console
En la consola de Google Cloud , ve a la página Instancias de VM.
Elige una o más instancias que desees suspender.
Haz clic en Suspender y, luego, en Suspender para confirmar.
gcloud
Cuando suspendas una o más instancias en una sola zona que tengan discos SSD locales conectados, especifica si deseas descartar o conservar los datos de SSD locales de la siguiente manera:
Para descartar los datos del SSD local, usa el comando
gcloud compute instances suspendcon la marca--discard-local-ssd=true:gcloud compute instances suspend INSTANCE_NAMES \ --discard-local-ssd=true \ --zone=ZONEPara conservar los datos del SSD local, usa el comando
gcloud beta compute instances suspendcon la marca--discard-local-ssd=false:gcloud beta compute instances suspend INSTANCE_NAMES \ --discard-local-ssd=false \ --zone=ZONE
Reemplaza lo siguiente:
INSTANCE_NAMES: Es una lista de nombres de instancias separados por espacios en blanco; por ejemplo,instance-01 instance-02 instance-03.ZONE: Es la zona en la que se encuentran las instancias.
REST
Cuando suspendas una instancia que tenga discos SSD locales conectados, especifica si deseas descartar o conservar los datos de SSD locales de la siguiente manera:
Para descartar los datos del SSD local, realiza una solicitud
POSTal métodoinstances.suspend. En la URL de la solicitud, incluye el parámetro de consultadiscardLocalSsdconfigurado comotrue:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/suspend?discardLocalSsd=truePara conservar los datos de SSD local, haz una solicitud
POSTal métodobeta.instances.suspend. En la URL de la solicitud, incluye el parámetro de consultadiscardLocalSsdconfigurado comofalse:POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/suspend?discardLocalSsd=false
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto en el que se encuentra la instancia.ZONE: Es la zona en la que se encuentra la instancia.INSTANCE_NAME: El nombre de la instancia.
Reanuda una instancia suspendida
Antes de reanudar una instancia de procesamiento suspendida, ten en cuenta lo siguiente:
Solo puedes reanudar una instancia si hay capacidad suficiente en la zona en la que se encuentra. Por lo general, esto no es un problema. Si tienes problemas para reanudar una instancia, vuelve a intentarlo más tarde.
Si conectaste discos SSD locales a la instancia y elegiste conservar los datos de las SSD locales cuando la suspendiste, es posible que debas volver a conectar los discos SSD locales después de reanudarla. Para obtener más información, consulta cómo volver a activar discos que no sean de arranque en instancias de Linux o instancias de Windows.
Puedes reanudar varias instancias simultáneamente o instancias individuales. Para varias instancias, usa la consola de Google Cloud o, para las instancias ubicadas en la misma zona, gcloud CLI. En el caso de las instancias individuales, selecciona cualquiera de las siguientes opciones:
Console
En la consola de Google Cloud , ve a la página Instancias de VM.
Selecciona una o más instancias suspendidas para reanudarlas.
Haz clic en Iniciar / Reanudar y, luego, en Iniciar.
gcloud
Para reanudar una o más instancias suspendidas en una sola zona, usa el comando gcloud compute instances resume:
gcloud compute instances resume INSTANCE_NAMES \
--zone=ZONE
Reemplaza lo siguiente:
INSTANCE_NAMES: Es una lista de nombres de instancias separados por espacios en blanco; por ejemplo,instance-01 instance-02 instance-03.ZONE: Es la zona en la que se encuentran las instancias suspendidas.
Go
Java
Node.js
PHP
Python
REST
Para reanudar una instancia suspendida, realiza una solicitud POST al método instances.resume:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/resume
Reemplaza lo siguiente:
INSTANCE_NAME: Es el nombre de la instancia suspendida que se reanudará.PROJECT_ID: Es el ID del proyecto en el que se encuentra la instancia suspendida.ZONE: Es la zona en la que se encuentra la instancia suspendida.