Crea e inicia una instancia de VM

En este documento se explica cómo crear una instancia de máquina virtual (VM) mediante una imagen de disco de arranque, una instantánea de disco de arranque o una imagen de contenedor. Algunas imágenes son compatibles con las funciones de VM protegida, que ofrecen características de seguridad como firmware compatible con UEFI, inicio seguro e inicio medido con protección de vTPM. En las VM protegidas el vTPM y la supervisión de integridad están habilitados de forma predeterminada.

Puedes crear varios discos para la instancia de VM durante su creación. También puedes agregar más discos a la instancia después de crearla. Compute Engine inicia la instancia de VM automáticamente después de crearla.

En este documento se explican formas básicas de crear una instancia. Para obtener más información sobre las opciones de configuración de instancias más específicas o complicadas, consulta los siguientes recursos:

Si tienes una licencia existente, consulta Trae tu propia licencia con nodos de instancia única.

Antes de comenzar

Crea una instancia a partir de una imagen

En esta sección se explica cómo crear una VM a partir de una imagen de SO pública o una imagen personalizada. Una VM contiene un bootloader, un sistema de archivos de inicio y una imagen de SO.

Crea una instancia a partir de una imagen pública

Google, así como comunidades de código abierto y proveedores externos proporcionan y mantienen imágenes de SO públicas. Todos los proyectos de Google Cloud pueden crear VM a partir de imágenes de SO públicas de forma predeterminada. Sin embargo, si tu proyecto de Cloud tiene una lista definida de imágenes confiables, solo puedes usar las imágenes de esa lista para crear una VM.

Si creas una imagen de VM protegida con SSD local, no puedes proteger los datos con la supervisión de integridad ni con el módulo de plataforma segura virtual (vTPM).

Console

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

    Ir a la página Instancias de VM

  2. Selecciona el proyecto y haz clic en Continuar.

  3. Haz clic en Crear instancia.

  4. Especifica un Nombre para la instancia. Consulta la convención de asignación de nombres de recursos.

  5. Opcional: Cambia la Zona para esta instancia. Compute Engine aleatoriza la lista de zonas dentro de cada región para fomentar el uso en varias zonas.

  6. Selecciona una Configuración de máquina para la instancia.

  7. En la sección Disco de arranque, haz clic en Cambiar para configurarlo. A menos que elijas de forma explícita un disco de arranque diferente, si el nombre de la instancia nueva coincide con el de un disco persistente que ya existe, este se agregará automáticamente a la instancia nueva como disco de arranque.

  8. En la pestaña Imágenes públicas, elige un sistema operativo y una versión.

  9. Haz clic en Guardar para confirmar las opciones del disco de arranque.

  10. Selecciona Permitir el tráfico HTTP o Permitir el tráfico HTTPS para permitir el tráfico HTTP o HTTPS a la VM. Cuando seleccionas uno de estos, Compute Engine agrega una etiqueta de red a la VM, que asocia la regla de firewall con la VM. Luego Compute Engine crea la regla de firewall de entrada correspondiente que permite todo el tráfico entrante en tcp:80 (HTTP) o tcp:443 (HTTPS).

  11. Para agregar discos secundarios que no sean de arranque a la VM, sigue estos pasos:

    1. Haz clic en la sección Administración, seguridad, discos, redes, instancia única.
    2. Haz clic en la pestaña Discos.
    3. En Discos adicionales, haz clic en Agregar disco nuevo.
    4. Especifica las opciones Nombre, Tipo, Tipo de fuente, Modo y Regla de eliminación del disco.
    5. Haz clic en Listo.
    6. Agrega discos adicionales según sea necesario.
  12. Opcional: Puedes modificar la configuración de la VM protegida si elegiste una imagen de SO que admite estas funciones:

    1. Haz clic en la pestaña Seguridad en la sección Administración, seguridad, discos, redes, usuario único.

    2. Para habilitar el inicio seguro, selecciona Activar inicio seguro. El inicio seguro está inhabilitado de forma predeterminada.

    3. El vTPM está habilitado de forma predeterminada. Para inhabilitar el vTPM, borra Activar vTPM. Al inhabilitar el vTPM también se inhabilita la supervisión de integridad porque esta depende de los datos que se recopilan mediante el inicio medido.

    4. Para inhabilitar la supervisión de integridad, desmarca la casilla de verificación Activar la supervisión de integridad. La supervisión de la integridad está habilitada de forma predeterminada.

  13. Haz clic en el botón Crear para crear e iniciar la instancia.

gcloud

  1. Puedes ver la lista de imágenes de SO públicas disponibles, que incluye el nombre, el proyecto de imagen y la familia de imágenes, de una de las siguientes maneras:

  2. Selecciona una imagen y anota su nombre, el proyecto que la contiene y la familia de imágenes.

  3. Opcional: Determina si la imagen admite funciones de VM protegida. Para ello ejecuta el siguiente comando y busca UEFI_COMPATIBLE en el resultado:

    gcloud compute images describe IMAGE_NAME --project IMAGE_PROJECT
    

    Reemplaza los siguientes elementos:

    • IMAGE_NAME: Nombre de la imagen cuya compatibilidad con funciones de VM protegida se quiere comprobar.
    • IMAGE_PROJECT: Proyecto que contiene la imagen.
  4. Use el siguiente comando gcloud compute instances create para crear una VM a partir de la última versión de una imagen de SO o de una versión específica de una imagen de SO, con discos adicionales que no sean de arranque de manera opcional:

    gcloud compute instances create VM_NAME
    --image-family IMAGE
    --image-project IMAGE_PROJECT
    [--create-disk image=DISK_IMAGE,
    image-project=DISK_IMAGE_PROJECT]
    [,size=SIZE_GB]
    [,type=DISK_TYPE]
    [--shielded-secure-boot]
    

    Reemplazar los siguientes elementos:

    • VM_NAME: Nombre de la VM nueva
    • IMAGE: Imagen a partir de la que se creará la VM. Existen dos maneras de especificar la imagen:
      • Especifica la familia a partir de la que se creará la VM mediante la versión de SO más reciente. Por ejemplo, si especificas debian-10 como la imagen, Compute Engine crea una VM a partir de la versión más reciente de la imagen de SO en la familia de imágenes de Debian 10.
      • Especifica una versión específica de un SO público, por ejemplo: debian-10-buster-v20200309.
    • IMAGE_PROJECT: Proyecto que contiene la imagen.
    • DISK_IMAGE: Especifica cada disco secundario adicional que no sea de arranque (opcional). Indica la familia para crear el disco a partir de la versión más reciente del SO de esa familia o indica una versión de imagen específica. Para los discos en blanco, no especifiques una imagen de disco ni un proyecto de imagen. Después de agregar discos que no son de arranque, debes formatearlos y activarlos.
    • DISK_IMAGE_PROJECT: Proyecto de imagen al que pertenece la imagen de disco (opcional). Para los discos en blanco, no especifiques una imagen de disco ni un proyecto de imagen.
    • SIZE_GB: Tamaño del disco secundario (opcional)
    • DISK_TYPE: Tipo de disco persistente, configurado en pd-standard o pd-ssd (opcional)
    • --shielded-secure-boot: Si eliges una imagen que admite funciones de VM protegida, Compute Engine habilita de forma predeterminada el Módulo de plataforma segura virtual (vTPM) y la supervisión de integridad (opcional). Compute Engine no habilita el inicio seguro de forma predeterminada. Si especificas --shielded-secure-boot, Compute Engine crea una VM con las tres funciones de VM protegida habilitadas. Después de que Compute Engine inicie la VM, debes detenerla para modificar las opciones de VM protegida.
  5. Para comprobar que Compute Engine creó la VM, reemplaza VM_NAME por el nombre de la VM:

    gcloud compute instances describe VM_NAME
    

API

  1. Puedes ver la lista de imágenes de SO públicas disponibles, que incluye el nombre, el proyecto de imagen y la familia de imágenes, de una de las siguientes maneras:

  2. Selecciona una imagen y anota su nombre, el proyecto que la contiene y la familia de imágenes.

  3. Opcional: Determina si la imagen admite funciones de VM protegida. Para ello ejecuta el siguiente comando y busca UEFI_COMPATIBLE en el resultado:

    GET https://compute.googleapis.com/compute/v1/projects/IMAGE_PROJECT/global/images/IMAGE_NAME
    

    Reemplaza los siguientes elementos:

    • IMAGE_PROJECT: Proyecto que contiene la imagen
    • IMAGE_NAME: Nombre de la imagen cuya compatibilidad con funciones de VM protegida se quiere comprobar.
  4. Usa uno de los siguientes comandos instances.insert para crear una VM a partir de la última versión de una imagen de SO o de una versión específica de una imagen de SO, o bien para crear una VM con discos que no sean de arranque:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/PROJECT_ZONE/instances
    
    {
     "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
     "name": "VM_NAME",
     "disks": [
       {
         "initializeParams": {
           "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE"
         },
         "boot": true
       },
       {
         "initializeParams": {
           "sourceImage": "projects/DISK_IMAGE_PROJECT/global/images/family/DISK_IMAGE"
         },
         "boot": false
       }
     ],
     "networkInterfaces": [
       {
         "network": "global/networks/default",
         "subnetwork": "regions/SUBNETWORK_REGION/subnetworks/SUBNETWORK_NAME"
       }
     ],
     "shieldedInstanceConfig": {
       "enableSecureBoot": ENABLE_SECURE_BOOT
     }
    }
    

    Reemplazar los siguientes elementos:

    • PROJECT_ID: ID del proyecto en el que se creará la VM
    • PROJECT_ZONE: Zona en la que se creará la VM
    • MACHINE_TYPE_ZONE: Zona que contiene el tipo de máquina que se usará para la VM nueva
    • MACHINE_TYPE: Tipo de máquina, predefinido o personalizado, de la VM nueva
    • VM_NAME: Nombre de la VM nueva
    • IMAGE_PROJECT: Proyecto que contiene la imagen. Por ejemplo, si especificas debian-10 como familia de imágenes, especifica debian-cloud como proyecto de imagen.
    • IMAGE: Imagen a partir de la que se creará la VM. Especifica la familia a partir de la que se creará la VM mediante la versión de SO más reciente. Por ejemplo, si especificas debian-10 como familia de imágenes, Compute Engine crea una VM a partir de la versión más reciente de la imagen de SO de la familia de imágenes de Debian 10. Como alternativa, en lugar de especificar la familia, puedes especificar una versión específica de un SO público, por ejemplo: debian-10-buster-v20200309.
    • DISK_IMAGE_PROJECT: Proyecto de imagen al que pertenece la imagen de disco (opcional). Para los discos en blanco, no especifiques una imagen de disco ni un proyecto de imagen.
    • DISK_IMAGE: Se especifica para cada disco secundario adicional de hasta 128, que no sea de arranque. Indica la familia para crear el disco a partir de la versión más reciente del SO de esa familia o indica una versión de imagen específica. Para los discos en blanco, no especifiques una imagen de disco ni un proyecto de imagen. Después de agregar discos que no son de arranque, debes formatearlos y activarlos
    • SUBNETWORK_REGION: Región que contiene la subred para crear la VM si la red de VPC es una red de VPC en modo personalizado (opcional)
    • SUBNETWORK_NAME: Nombre de la subred en la que se creará la VM si la red de VPC es una red de VPC en modo personalizado
    • ENABLE_SECURE_BOOT: Si eliges una imagen que admite funciones de VM protegida, Compute Engine habilita de forma predeterminada el módulo virtual de plataforma de confianza (vTPM) y la supervisión de la integridad (opcional). Compute Engine no habilita el inicio seguro de forma predeterminada. Si especificas true para enableSecureBoot, Compute Engine crea una VM con las tres funciones de VM protegida habilitadas. Después de que Compute Engine inicie la VM, debes detenerla para modificar las opciones de VM protegida

Python

def create_instance(compute, project, zone, name, bucket):
    # Get the latest Debian Jessie image.
    image_response = compute.images().getFromFamily(
        project='debian-cloud', family='debian-9').execute()
    source_disk_image = image_response['selfLink']

    # Configure the machine
    machine_type = "zones/%s/machineTypes/n1-standard-1" % zone
    startup_script = open(
        os.path.join(
            os.path.dirname(__file__), 'startup-script.sh'), 'r').read()
    image_url = "http://storage.googleapis.com/gce-demo-input/photo.jpg"
    image_caption = "Ready for dessert?"

    config = {
        'name': name,
        'machineType': machine_type,

        # Specify the boot disk and the image to use as a source.
        'disks': [
            {
                'boot': True,
                'autoDelete': True,
                'initializeParams': {
                    'sourceImage': source_disk_image,
                }
            }
        ],

        # Specify a network interface with NAT to access the public
        # internet.
        'networkInterfaces': [{
            'network': 'global/networks/default',
            'accessConfigs': [
                {'type': 'ONE_TO_ONE_NAT', 'name': 'External NAT'}
            ]
        }],

        # Allow the instance to access cloud storage and logging.
        'serviceAccounts': [{
            'email': 'default',
            'scopes': [
                'https://www.googleapis.com/auth/devstorage.read_write',
                'https://www.googleapis.com/auth/logging.write'
            ]
        }],

        # Metadata is readable from the instance and allows you to
        # pass configuration from deployment scripts to instances.
        'metadata': {
            'items': [{
                # Startup script is automatically executed by the
                # instance upon startup.
                'key': 'startup-script',
                'value': startup_script
            }, {
                'key': 'url',
                'value': image_url
            }, {
                'key': 'text',
                'value': image_caption
            }, {
                'key': 'bucket',
                'value': bucket
            }]
        }
    }

    return compute.instances().insert(
        project=project,
        zone=zone,
        body=config).execute()

Crea una instancia a partir de una imagen personalizada

La imagen personalizada pertenece solo a tu proyecto. Para crear una instancia con una imagen personalizada, primero debes tener una. Para aprender a crear una imagen personalizada, consulta Crea, borra y da de baja imágenes personalizadas.

Console

  1. Ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. Selecciona tu proyecto y haz clic en Continuar.
  3. Haz clic en el botón Crear instancia.
  4. Especifica un Nombre para la instancia. Consulta la convención de asignación de nombres de recursos.
  5. De manera opcional, cambia la Zona para esta instancia.

    Nota: La lista de zonas es aleatoria dentro de cada región para fomentar el uso de varias zonas.

  6. Selecciona una Configuración de máquina para tu instancia.

  7. En la sección Disco de arranque, haz clic en Cambiar para configurar tu disco de arranque.
    Crea un disco de arranque de no más de 2 TB de tamaño para contemplar las limitaciones de las particiones del MBR.

  8. Selecciona la pestaña Imágenes personalizadas.

  9. Asegúrate de que tu proyecto esté seleccionado en la lista desplegable.

  10. Elige la imagen que desees y haz clic en el botón Seleccionar.

  11. Para permitir el tráfico HTTP o HTTPS a la instancia de VM, selecciona Permitir el tráfico HTTP o Permitir el tráfico HTTPS.

    Cloud Console agrega una etiqueta de red a la instancia y crea la regla de firewall de entrada correspondiente que permite todo el tráfico entrante en tcp:80 (HTTP) o tcp:443 (HTTPS). La etiqueta de red asocia la regla de firewall con la instancia. Para obtener más información, consulta la Descripción general de las reglas de firewall en la documentación de la nube privada virtual.

  12. Para agregar a tu instancia de VM discos secundarios que no sean de arranque, sigue estos pasos:

    1. Haz clic en Administración, seguridad, discos, herramientas de redes, instancia única.
    2. Selecciona la pestaña Discos.
    3. En Discos adicionales, haz clic en Agregar disco nuevo.
    4. Especifica las opciones Nombre, Tipo, Tipo de fuente, Modo y Regla de eliminación del disco.
    5. Haz clic en Listo.
    6. Agrega discos adicionales según sea necesario.
  13. Haz clic en el botón Crear para crear e iniciar la instancia.

gcloud

Ejecuta el comando gcloud compute instances create para crear una instancia con una imagen personalizada:

gcloud compute instances create [INSTANCE_NAME] \
--image [IMAGE_NAME] \
--image-family [IMAGE_FAMILY]

donde:

  • [INSTANCE_NAME] es el nombre de la instancia.
  • [IMAGE_NAME] es el nombre de la imagen.
  • [IMAGE] es un campo opcional. Usa una imagen privada o pública. Si no se especifica ninguna imagen, el disco está en blanco.

Si creaste tus imágenes personalizadas como parte de una familia de imágenes, especifica esa familia de imágenes en lugar del nombre de la imagen. Al hacerlo, la instancia usa de manera automática la imagen más reciente y no obsoleta de la familia de imágenes.

Puedes agregar hasta 128 discos secundarios que no sean de arranque mientras creas la instancia. Especifica la marca --create-disk para cada disco secundario que crees. Para crear discos secundarios a partir de una imagen pública o de archivo, especifica las propiedades image y image-project en la marca --create-disk. Para crear un disco en blanco, no incluyas estas propiedades. Tienes la opción de incluir propiedades para las opciones size y type del disco.

gcloud compute instances create [INSTANCE_NAME] \
  --image-family [IMAGE_FAMILY] \
  --image-project [IMAGE_PROJECT] \
  --create-disk image=[DISK_IMAGE],image-project=[DISK_IMAGE_PROJECT],size=[SIZE_GB],type=[DISK_TYPE]

donde:

  • [INSTANCE_NAME] es el nombre de la instancia nueva.
  • [IMAGE_FAMILY] es una de las familias de imágenes disponibles.
  • [IMAGE_PROJECT] es el proyecto de imagen al que pertenece la imagen.
  • [DISK_IMAGE] es la imagen de origen para el disco secundario. Para ver una lista de las imágenes disponibles, ejecuta gcloud compute images list. Para los discos en blanco, no especifiques una imagen de disco o de proyecto de imagen.
  • [DISK_IMAGE_PROJECT] es el proyecto de imagen al que pertenece la imagen de disco. Para los discos en blanco, no especifiques una imagen de disco ni un proyecto de imagen.
  • [SIZE_GB] es el tamaño del disco secundario.
  • [DISK_TYPE] es el tipo de disco persistente, ya sea pd-standard o pd-ssd.

Formatea y activa los discos antes de usarlos.

API

El proceso de creación de una instancia con una imagen personalizada en la API es el mismo que si crearas una instancia con una imagen disponible de forma pública. En el URI de sourceImage, proporciona tu propio ID del proyecto y el nombre de la imagen.

Puedes crear hasta 128 discos secundarios que no sean de arranque cuando creas una instancia de VM mediante la propiedad initializeParams para cada disco adicional. Crea discos adicionales con una imagen pública o privada. Para agregar un disco en blanco, define la entrada initializeParams sin ningún valor sourceImage.

...
"initializeParams" :{
   "sourceImage": "global/images/[IMAGE_NAME]"
},
{
"initializeParams": {
   "diskSizeGb": "[SIZE_GB]",
   "sourceImage": "[IMAGE]",
   "diskType": "[DISK_TYPE]"
 },
 {
 "initializeParams": {
 "diskSizeGb": "[SIZE_GB]",
 "diskType": "[DISK_TYPE]"
 }
}...]

donde:

  • [PROJECT_ID] es el ID del proyecto.
  • [IMAGE_NAME] es la imagen específica, como debian-9-stretch-v20170619. De manera alternativa, puedes especificar una familia de imágenes. Por ejemplo, family/debian-9 muestra la última versión de la imagen de Debian 9.
  • [IMAGE] es la imagen de origen del disco secundario. Para discos en blanco, no especifiques una fuente de imagen.
  • [SIZE_GB] es el tamaño del disco.
  • [DISK_TYPE] es el tipo de disco persistente, ya sea pd-standard o pd-ssd.

Formatea y activa los discos antes de usarlos.

Crea una instancia a partir de una imagen compartida contigo

Si otro usuario compartió una imagen contigo, puedes usarla para crear una instancia nueva.

Console

  1. Ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. Selecciona tu proyecto y haz clic en Continuar.
  3. Haz clic en el botón Crear instancia.
  4. Especifica un Nombre para la instancia. Consulta la convención de asignación de nombres de recursos.
  5. De manera opcional, cambia la Zona para esta instancia.

  6. Selecciona una Configuración de máquina para tu instancia.

  7. En la sección Disco de arranque, haz clic en Cambiar para configurar tu disco de arranque.

    Crea un disco de arranque de no más de 2 TB para contemplar las limitaciones de las particiones del MBR.

  8. Selecciona la pestaña Imágenes personalizadas.

  9. Selecciona el proyecto de imagen en la lista desplegable.

  10. Elige la imagen que desees y haz clic en el botón Seleccionar.

  11. Para permitir el tráfico HTTP o HTTPS a la instancia de VM, selecciona Permitir el tráfico HTTP o Permitir el tráfico HTTPS.

    Cloud Console agrega una etiqueta de red a tu instancia y crea la regla de firewall de entrada correspondiente que permite todo el tráfico entrante en tcp:80 (HTTP) o tcp:443 (HTTPS). La etiqueta de red asocia la regla de firewall con la instancia. Para obtener más información, consulta la Descripción general de las reglas de firewall en la documentación de la nube privada virtual.

  12. Para agregar a tu instancia de VM discos secundarios que no sean de arranque, sigue estos pasos:

    1. Haz clic en Administración, seguridad, discos, herramientas de redes, instancia única.
    2. Selecciona la pestaña Discos.
    3. En Discos adicionales, haz clic en Agregar disco nuevo.
    4. Especifica las opciones Nombre, Tipo, Tipo de fuente, Modo y Regla de eliminación del disco.
    5. Haz clic en Listo.
    6. Agrega discos adicionales según sea necesario.
  13. Haz clic en el botón Crear para crear e iniciar la instancia.

gcloud

Crea una instancia con el comando gcloud compute instances create y usa las marcas --image y --image-project para especificar el nombre de la imagen y el proyecto donde esta reside:

gcloud compute instances create [INSTANCE_NAME] \
    --image [IMAGE] \
    --image-project [IMAGE_PROJECT]

donde:

  • [INSTANCE_NAME] es el nombre de la instancia nueva.
  • [IMAGE] es el nombre de la imagen.
  • [IMAGE_PROJECT] es el proyecto al que pertenece la imagen.

Si el comando se ejecuta con éxito, gcloud responde con las propiedades de la instancia nueva:

Created [https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-b/instances/example-instance].
NAME                 ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
example-instance     us-central1-b  n1-standard-1               10.240.0.4   104.198.53.60  RUNNING

Puedes agregar hasta 128 discos secundarios que no sean de arranque mientras creas la instancia. Especifica la marca --create-disk para cada disco secundario que crees. Para crear discos secundarios a partir de una imagen pública o de archivo, especifica las propiedades image y image-project en la marca --create-disk. Para crear un disco en blanco, no incluyas estas propiedades. De manera opcional, puedes incluir propiedades para el disco size y type.

gcloud compute instances create [INSTANCE_NAME] \
--image-family [IMAGE_FAMILY] \
--image-project [IMAGE_PROJECT] \
--create-disk image=[DISK_IMAGE],image-project=[DISK_IMAGE_PROJECT],size=[SIZE_GB],type=[DISK_TYPE]

donde:

  • [INSTANCE_NAME] es el nombre de la instancia nueva.
  • [IMAGE_FAMILY] es una de las familias de imágenes disponibles.
  • [IMAGE_PROJECT] es el proyecto de imagen al que pertenece la imagen.
  • [DISK_IMAGE] es la imagen de origen para el disco secundario. Para ver una lista de las imágenes disponibles, ejecuta gcloud compute images list. Para los discos en blanco, no especifiques una imagen de disco o de proyecto de imagen.
  • [DISK_IMAGE_PROJECT] es el proyecto de imagen al que pertenece la imagen de disco. Para los discos en blanco, no especifiques una imagen de disco o de proyecto de imagen.
  • [SIZE_GB] es el tamaño del disco secundario.
  • [DISK_TYPE] es el tipo de disco persistente, ya sea pd-standard o pd-ssd.

Formatea y activa los discos antes de usarlos.

API

Sigue las instrucciones de la API para crear una instancia a partir de una imagen pública, pero especifica el campo image en el cuerpo de la solicitud. Puedes agregar hasta 128 discos secundarios que no sean de arranque mediante la especificación del campo initializeParams para cada disco adicional. Para agregar discos en blanco, no especifiques una fuente de la imagen. De manera opcional, puedes especificar las propiedades diskSizeGb, diskType y labels.

[...
image: "projects/[PROJECT_ID]/global/images/[IMAGE_NAME]

{
 "initializeParams": {
    "diskSizeGb": "[SIZE_GB]",
    "sourceImage": "[IMAGE]"
       }
 }
 ...]

donde:

  • [PROJECT_ID] es el proyecto que contiene la imagen.
  • [IMAGE_NAME] es la imagen de origen.
  • [SIZE_GB] es el tamaño del disco.
  • [IMAGE] es la imagen de origen del disco secundario. Para discos en blanco, no especifiques una fuente de imagen.

Formatea y activa los discos antes de usarlos.

Crea una instancia de VM a partir de una instantánea

Si creaste una copia de seguridad de un disco persistente de arranque con una instantánea, puedes usar esa instantánea para crear una instancia.

Ten en cuenta que si planeas crear muchas instancias a partir de la misma instantánea del disco de arranque, deberías considerar crear una imagen personalizada y crear instancias a partir de esa imagen. Las imágenes personalizadas pueden crear los discos de arranque para tus instancias de manera más rápida y eficiente que las instantáneas.

Crea un disco de arranque de instancia de VM nuevo a partir de una instantánea

Puedes restablecer una instantánea de un disco de arranque en uno nuevo cuando creas una instancia nueva.

Console

  1. Ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. Selecciona tu proyecto y haz clic en Continuar.
  3. Haz clic en el botón Crear instancia.
  4. Especifica un Nombre para la instancia. Consulta la convención de asignación de nombres de recursos.
  5. De manera opcional, cambia la Zona para esta instancia.

  6. Selecciona una Configuración de máquina para tu instancia.

  7. En la sección Disco de arranque, haz clic en Cambiar para configurar tu disco de arranque.

    Crea un disco de arranque de no más de 2 TB para contemplar las limitaciones de las particiones del MBR.

  8. Haz clic en la pestaña Instantáneas y elige una instantánea de la lista.

  9. Haz clic en Seleccionar.

  10. Para permitir el tráfico HTTP o HTTPS a la instancia de VM, selecciona Permitir el tráfico HTTP o Permitir el tráfico HTTPS.

    Cloud Console agrega una etiqueta de red a tu instancia y crea la regla de firewall de entrada correspondiente que permite todo el tráfico entrante en tcp:80 (HTTP) o tcp:443 (HTTPS). La etiqueta de red asocia la regla de firewall con la instancia. Para obtener más información, consulta la Descripción general de las reglas de firewall en la documentación de la nube privada virtual.

  11. Para agregar a tu instancia de VM discos secundarios que no sean de arranque, sigue estos pasos:

    1. Haz clic en Administración, seguridad, discos, herramientas de redes, instancia única.
    2. Selecciona la pestaña Discos.
    3. En Discos adicionales, haz clic en Agregar disco nuevo.
    4. Especifica las opciones Nombre, Tipo, Tipo de fuente, Modo y Regla de eliminación del disco.
    5. Haz clic en Listo.
    6. Agrega discos adicionales según sea necesario.
  12. Haz clic en el botón Crear para crear e iniciar la instancia.

gcloud

Usa el comando gcloud compute instances create e incluye la marca --source-snapshot:

gcloud compute instances create [INSTANCE_NAME] \
    --source-snapshot [BOOT_SNAPSHOT_NAME] \
    --boot-disk-size [BOOT_DISK_SIZE] \
    --boot-disk-type [BOOT_DISK_TYPE] \
    --boot-disk-device-name [BOOT_DISK_NAME]

donde:

  • [INSTANCE_NAME] es el nombre de la instancia nueva.
  • [BOOT_SNAPSHOT_NAME] es el nombre de la instantánea del disco de arranque que deseas restablecer en el disco de arranque de la instancia nueva.
  • [BOOT_DISK_NAME] es el nombre del nuevo disco de arranque de esta instancia.
  • [BOOT_DISK_SIZE] es el tamaño, en gigabytes, del nuevo disco de arranque. El tamaño debe ser igual al tamaño del disco de origen desde el que se realizó la instantánea o mayor que este. Esta propiedad es opcional.
  • [BOOT_DISK_TYPE] es el tipo de disco persistente, ya sea pd-standard o pd-ssd. Esta marca es opcional.

Si también quieres restablecer una instantánea que no sea de arranque, agrega la marca --create-disk y especifica una source-snapshot Repite la marca --create-disk a fin de crear un disco que no sea de arranque para cada instantánea que quieras restablecer. Cuando creas una instancia, puedes agregar hasta 15 discos que no sean de arranque.

--create-disk source-snapshot=[SNAPSHOT_NAME],name=[DISK_NAME],size=[DISK_SIZE],type=[DISK_TYPE]

donde:

  • [SNAPSHOT_NAME] es el nombre de una instantánea que no es de arranque que deseas restablecer.
  • [DISK_NAME] es el nombre de un nuevo disco que no es de arranque para esta instancia.
  • [DISK_SIZE] es el tamaño, en gigabytes, del disco nuevo. El tamaño debe ser igual al tamaño del disco de origen desde el que se realizó la instantánea o mayor que este. Esta propiedad es opcional.
  • [DISK_TYPE] es el tipo de disco persistente, ya sea pd-standard o pd-ssd. Esta marca es opcional.

API

Cuando usas la API para crear una instancia a partir de una instantánea, se aplican las siguientes restricciones:

  • Solo se puede usar un disco persistente como el disco persistente de arranque.
  • Debes conectar el disco persistente de arranque como primer disco para esa instancia.
  • Si especificas la propiedad source, no puedes especificar la propiedad initializeParams. Proporcionar una source indica que el disco persistente de arranque ya existe, pero la propiedad initializeParams indica que Compute Engine debería crear un nuevo disco persistente de arranque.

    Para crear una instancia a partir de una instantánea del disco de arranque, especifica el campo sourceSnapshot en la propiedad disks. De manera opcional, especifica las propiedades diskSizeGb y diskType para el nuevo disco de arranque:

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances
{
  "name": "[INSTANCE_NAME]",
  "machineType": "machineTypes/[MACHINE_TYPE]"
  "networkInterfaces": [{
    "accessConfigs": [{
      "type": "ONE_TO_ONE_NAT",
      "name": "External NAT"
    }],
    "network": "global/networks/default"
  }],
  "disks": [{
     "boot": true,
     "initializeParams": {
       "sourceSnapshot": "global/snapshots/[BOOT_SNAPSHOT_NAME]",
       "diskSizeGb": "[BOOT_DISK_SIZE]",
       "diskType": "[BOOT_DISK_TYPE]"
    }
   }],
 }

donde:

  • [PROJECT_ID] es el ID del proyecto.
  • [ZONE] es la zona donde deseas crear la instancia nueva.
  • [INSTANCE_NAME] es el nombre de la instancia en la que deseas restablecer una instantánea.
  • [MACHINE_TYPE] es el tipo de máquina de la instancia.
  • [BOOT_SNAPSHOT_NAME] es el nombre de la instantánea que deseas usar para crear el disco de arranque de una instancia nueva.
  • [BOOT_DISK_SIZE] es el tamaño, en gigabytes, del disco de arranque nuevo. El tamaño debe ser igual al tamaño del disco de origen desde el que se realizó la instantánea o mayor que este. Esta propiedad es opcional.
  • [BOOT_DISK_TYPE] es el tipo de disco de arranque, ya sea pd-standard o pd-ssd. Esta propiedad es opcional.

Restablece instantáneas que no sean de arranque en una instancia nueva

Las instantáneas que no son de arranque son copias de seguridad de discos persistentes secundarios que la instancia usa solo para el almacenamiento de datos. Puedes restablecer instantáneas que no sean de arranque en discos nuevos cada vez que creas una nueva instancia. También puedes restablecer instantáneas que no sean de arranque en una instancia existente.

Para restablecer instantáneas que no sean de arranque en una instancia nueva, sigue estos pasos adicionales cuando crees una instancia.

Console

Para restablecer instantáneas que no sean de arranque en una instancia nueva desde la consola, primero crea un disco a partir de cada instantánea. Luego conecta los discos nuevos cuando crees la instancia nueva.

  1. Restablece cada instantánea que no sea de arranque en un disco nuevo.

    1. Ve a la página Discos.

      Ir a la página Discos

    2. Haz clic en Crear disco.
    3. Especifica un Nombre para el disco. Consulta la convención de asignación de nombres de recursos.
    4. Selecciona la Región y la Zona para este disco.

      Nota: Solo puedes conectar un disco a una instancia si ambos se encuentran en la misma zona.

    5. Selecciona un Tipo de disco.

    6. En Tipo de fuente, selecciona Instantánea.

    7. En el nuevo campo Instantánea de origen, selecciona una instantánea que no sea de arranque que quieras restablecer en el disco nuevo.

    8. Haz clic en Crear para crear el disco.

    9. Repite estos pasos para crear un disco a partir de cada instantánea que desees restablecer. Cuando creas una instancia, puedes agregar hasta 15 discos secundarios que no sean de arranque.

  2. Ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  3. Haz clic en Crear instancia.

  4. Especifica un Nombre para la instancia. Consulta la convención de asignación de nombres de recursos.

  5. Selecciona la Región y Zona para esta instancia.

    Nota: Solo puedes conectar un disco a una instancia si ambos se encuentran en la misma zona.

  6. Selecciona un Tipo de máquina para tu instancia.

  7. Si deseas permitir el tráfico externo entrante, cambia las reglas de firewall de la instancia.

  8. Para conectar discos a la instancia, sigue estos pasos:

    1. Haz clic en Administración, seguridad, discos, herramientas de redes, instancia única.
    2. Selecciona la pestaña Discos.
    3. En Discos adicionales, haz clic en Conectar un disco existente.
    4. En el campo nuevo Disco, selecciona un disco para conectar a esta instancia.
    5. Especifica un Modo y una Regla de eliminación para el disco.
    6. Haz clic en Listo.
    7. Repite estos pasos para cada disco que desees conectar. Cuando creas una instancia, puedes agregar hasta 15 discos secundarios que no sean de arranque.
  9. Haz clic en Crear para crear e iniciar la instancia.

  10. Formatea y activa los discos conectados antes de usarlos.

gcloud

Crea una instancia nueva con el comando gcloud compute instances create. Para cada instantánea que no sea de arranque que quieras restablecer, incluye la marca --create-disk y especifica una source-snapshot. Cuando creas una instancia, puedes agregar hasta 15 discos secundarios que no sean de arranque.

Por ejemplo, para restablecer dos instantáneas que no son de arranque a una instancia nueva, usa el siguiente comando:

gcloud compute instances create \
    --create-disk source-snapshot=[SNAPSHOT_1_NAME],name=[DISK_1_NAME],size=[DISK_1_SIZE],type=[DISK_1_TYPE] \
    --create-disk source-snapshot=[SNAPSHOT_2_NAME],name=[DISK_2_NAME],size=[DISK_2_SIZE],type=[DISK_2_TYPE]

donde:

  • [SNAPSHOT_1_NAME] y [SNAPSHOT_2_NAME] son los nombres de las instantáneas que no son de arranque que deseas restablecer.
  • [DISK_1_NAME] y [DISK_2_NAME] son los nombres de los discos nuevos que no son de arranque para esta instancia.
  • [DISK_1_SIZE] y [DISK_2_SIZE] son los tamaños, en gigabytes, de cada disco nuevo que no es de arranque. El tamaño debe ser igual al tamaño del disco de origen desde el que se realizó la instantánea o mayor que este. Esta propiedad es opcional.
  • [DISK_1_TYPE] y [DISK_2_TYPE] son los tipos de discos persistentes, ya sea pd-standard o pd-ssd. Esta marca es opcional.

API

Cuando se usa la API para restablecer una instantánea que no es de arranque en una instancia nueva, se aplican las siguientes restricciones:

  • Solo un disco persistente puede ser el disco de arranque persistente.
  • Debes conectar el disco persistente de arranque como primer disco para esa instancia.
  • Si especificas la propiedad source, no puedes especificar la propiedad initializeParams. Proporcionar una source indica que el disco persistente de arranque ya existe, pero la propiedad initializeParams indica que Compute Engine debería crear un nuevo disco persistente de arranque.

Con la API Beta, especifica el campo sourceSnapshot en la propiedad initializeParams. Puedes agregar hasta 15 discos secundarios que no sean de arranque. Para hacerlo, repite la propiedad initializeParams en cada disco que no sea de arranque que quieras crear. De manera opcional, puedes especificar las propiedades diskSizeGb y diskType para cualquiera de los discos que crees.

Por ejemplo, para restablecer dos instantáneas que no sean de arranque en una instancia nueva, realiza la siguiente solicitud:

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances
{
  "name": "[INSTANCE_NAME]",
  "machineType": "machineTypes/[MACHINE_TYPE]"
  "networkInterfaces": [{
    "accessConfigs": [{
      "type": "ONE_TO_ONE_NAT",
      "name": "External NAT"
    }],
    "network": "global/networks/default"
  }],
  "disks": [{
     "autoDelete": "true",
     "boot": "true",
     "type": "PERSISTENT",
     "diskSizeGb": "[DISK_SIZE]",
     "diskType": "[DISK_TYPE]"
   },
   {
     "initializeParams": {
        "sourceSnapshot": "global/snapshots/[SNAPSHOT_1_NAME]",
        "diskSizeGb": "[DISK_SIZE]",
        "diskType": "[DISK_TYPE]"
     }
   },
   {
     "initializeParams": {
        "sourceSnapshot": "global/snapshots/[SNAPSHOT_2_NAME]",
        "diskSizeGb": "[DISK_SIZE]",
        "diskType": "[DISK_TYPE]"
     }
  }]
 }

donde:

  • [PROJECT_ID] es el ID del proyecto.
  • [ZONE] es la zona donde deseas crear la instancia nueva.
  • [INSTANCE_NAME] es el nombre de la instancia en la que deseas restablecer una instantánea.
  • [MACHINE_TYPE] es el tipo de máquina de la instancia.
  • [SNAPSHOT_1_NAME] y [SNAPSHOT_2_NAME] son los nombres de las instantáneas que no son de arranque que quieres restablecer en discos nuevos que no son de arranque de la instancia nueva.
  • [DISK_SIZE] es el tamaño, en gigabytes, del disco correspondiente. Esta propiedad es opcional, pero debe ser igual al tamaño del disco de origen desde el que se realizó la instantánea o mayor que este.
  • [DISK_TYPE] es el tipo del disco persistente correspondiente, ya sea pd-standard o pd-ssd. Esta propiedad es opcional.

Crea una instancia a partir de una imagen de contenedor

Para implementar e iniciar un contenedor en una instancia de Compute Engine, especifica un nombre de imagen de contenedor y los parámetros de configuración opcionales cuando crees la instancia. Compute Engine crea la instancia con la última versión de la imagen pública de Container-Optimized OS, que tiene instalado Docker. Luego Compute Engine inicia el contenedor cuando se inicia la VM. Para obtener más información consulta la página sobre cómo implementar contenedores en VM.

Console

  1. Ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. Haz clic en Crear instancia.
  3. Especifica un Nombre para la instancia. Consulta la convención de asignación de nombres de recursos.
  4. En la sección Contenedor, selecciona la casilla de verificación Implementar una imagen de contenedor para esta instancia de VM.
  5. Especifica la Imagen de contenedor que deseas usar.
    • Por ejemplo, puedes especificar gcr.io/cloud-marketplace/google/nginx1:1.12 para seleccionar una imagen de contenedor NGINX 1.12 de Cloud Launcher.
    • Si usas una imagen de contenedor de Docker Hub, especifica siempre el nombre completo de la imagen de Docker. Por ejemplo, especifica el siguiente nombre de imagen para implementar una imagen de contenedor de Apache: docker.io/httpd:2.4.
  6. De manera opcional, haz clic en Opciones avanzadas de contenedor. Para obtener más información, consulta la página Configura opciones para ejecutar tu contenedor.
  7. Haz clic en Crear para crear la instancia, iniciarla y ejecutar el contenedor.

gcloud

Ejecuta el comando gcloud compute instances create-with-container:

gcloud compute instances create-with-container [INSTANCE_NAME] \
     --container-image [CONTAINER_IMAGE]

donde:

  • [INSTANCE_NAME] es el nombre de la instancia nueva.
  • [CONTAINER_IMAGE] es el nombre de la imagen de contenedor.

Por ejemplo, con el siguiente comando se crea una instancia de VM llamada nginx-vm, que inicia y ejecuta la imagen de contenedor, gcr.io/cloud-marketplace/google/nginx1:1.12.

gcloud compute instances create-with-container nginx-vm \
    --container-image gcr.io/cloud-marketplace/google/nginx1:1.12

Cuando se usa una imagen de contenedor de Docker Hub, siempre debes especificar el nombre completo de la imagen de Docker. Por ejemplo, especifica el siguiente nombre de imagen para implementar una imagen de contenedor de Apache: docker.io/httpd:2.4.

Crea una instancia con acceso a otros servicios de Google Cloud

Si planeas ejecutar una app en tu instancia de VM que necesita acceso a otros servicios de Google Cloud, crea una cuenta de servicio antes de crear la instancia y sigue las instrucciones a fin de configurar una instancia para que se ejecute como una cuenta de servicio. Una cuenta de servicio es una cuenta especial cuyas credenciales puedes usar en el código de aplicación para acceder a otros servicios de Google Cloud.

Para obtener más información sobre las cuentas de servicio, lee Cuentas de servicio.

Crea una instancia en una subred específica

De forma predeterminada, Google Cloud crea una red de VPC en modo automático llamada default para cada proyecto. Si creas una instancia sin especificar los detalles de su red, Compute Engine usa la red de VPC predeterminada y la subred automática que se encuentra en la misma región que la instancia.

Para usar una red diferente o una subred que creaste de forma manual en un modo automático o en una red de VPC en modo personalizado, debes especificar la subred cuando crees la instancia.

Console

  1. Ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. Selecciona tu proyecto y haz clic en Continuar.
  3. Haz clic en el botón Crear instancia.
  4. Especifica un Nombre para la instancia. Consulta la convención de asignación de nombres de recursos.
  5. De manera opcional, cambia la Zona para esta instancia.

  6. Para permitir el tráfico HTTP o HTTPS a la instancia de VM, selecciona Permitir el tráfico HTTP o Permitir el tráfico HTTPS.

    Cloud Console agrega una etiqueta de red a tu instancia y crea la regla de firewall de entrada correspondiente que permite todo el tráfico entrante en tcp:80 (HTTP) o tcp:443 (HTTPS). La etiqueta de red asocia la regla de firewall con la instancia. Para obtener más información, consulta Descripción general de las reglas de firewall en la documentación de la nube privada virtual.

  7. Expande la sección Administración, seguridad, discos, redes, instancia única.

  8. En Interfaces de red, en la pestaña Herramientas de redes, especifica los detalles de la red.

    1. En el campo Red, selecciona la red de VPC que contiene la subred que creaste.
    2. En el campo Subred, selecciona la subred que usará la instancia.
  9. Para agregar a tu instancia de VM discos secundarios que no sean de arranque, sigue estos pasos:

    1. Haz clic en Administración, seguridad, discos, herramientas de redes, instancia única.
    2. Selecciona la pestaña Discos.
    3. En Discos adicionales, haz clic en Agregar disco nuevo.
    4. Especifica las opciones Nombre, Tipo, Tipo de fuente, Modo y Regla de eliminación del disco.
    5. Haz clic en Listo.
    6. Agrega discos adicionales según sea necesario.
  10. Haz clic en el botón Crear para crear e iniciar la instancia.

gcloud

Con la herramienta de línea de comandos de gcloud, sigue las mismas instrucciones para crear una instancia a partir de una imagen o una instantánea, y agrega las marcas --subnet [SUBNET_NAME] y --zone [ZONE_NAME] cuando ejecutes el comando gcloud compute instances create:

gcloud compute instances create [INSTANCE_NAME] --subnet [SUBNET_NAME] \
--zone [ZONE_NAME]

donde:

  • [INSTANCE_NAME] es el nombre de la instancia.
  • [SUBNET_NAME] es el nombre de la subred. La red se infiere de la subred especificada.
  • [ZONE_NAME] es el nombre de la zona donde se crea la instancia, como europe-west1-b. La región de la instancia se infiere de la zona.

Puedes agregar hasta 128 discos secundarios que no sean de arranque mientras creas la instancia. Especifica la marca --create-disk para cada disco secundario que crees. Para crear discos secundarios a partir de una imagen pública o de archivo, especifica las propiedades image y image-project en la marca --create-disk. Para crear un disco en blanco, no incluyas estas propiedades. De manera opcional, puedes incluir propiedades para el disco size y type.

gcloud compute instances create [INSTANCE_NAME] \
--subnet [SUBNET_NAME] \
--zone [ZONE_NAME] \
--image-family [IMAGE_FAMILY] \
--image-project [IMAGE_PROJECT] \
--create-disk image=[DISK_IMAGE],image-project=[DISK_IMAGE_PROJECT],size=[SIZE_GB],type=[DISK_TYPE]

donde:

  • [INSTANCE_NAME] es el nombre de la instancia nueva.
  • [SUBNET_NAME] es el nombre de la subred.
  • [ZONE_NAME] es el nombre de la zona donde se crea la instancia, como europe-west1-b.
  • [IMAGE_FAMILY] es una de las familias de imágenes disponibles.
  • [IMAGE_PROJECT] es el proyecto de imagen al que pertenece la imagen.
  • [DISK_IMAGE] es la imagen de origen para el disco secundario. Si quieres obtener una lista de las imágenes disponibles, ejecuta gcloud compute images list. Para los discos en blanco, no especifiques una imagen de disco ni un proyecto de imagen.
  • [DISK_IMAGE_PROJECT] es el proyecto de imagen al que pertenece la imagen de disco. Para los discos en blanco, no especifiques una imagen de disco ni un proyecto de imagen.
  • [SIZE_GB] es el tamaño del disco secundario.
  • [DISK_TYPE] es el tipo de disco persistente, ya sea pd-standard o pd-ssd.

Formatea y activa los discos antes de usarlos.

API

Sigue las instrucciones de la API para crear una instancia a partir de una imagen o una instantánea, pero especifica el campo subnet en el cuerpo de la solicitud. Para agregar hasta 128 discos secundarios que no sean de arranque, usa la propiedad initializeParams en cada disco que crees. Para agregar discos en blanco, no agregues una imagen de origen. De manera opcional, puedes especificar las propiedades diskSizeGb, diskType y labels.

...
"networkInterfaces": [
{
  "network": "global/networks/[NETWORK_NAME]",
  "subnetwork": "regions/[REGION]/subnetworks/[SUBNET_NAME]",
  "accessConfigs":
    {
      "name": "External NAT",
      "type": "ONE_TO_ONE_NAT"
    }
    {
      "initializeParams": {
         "diskSizeGb": "[SIZE_GB]",
         "sourceImage": "[IMAGE]"
    {
      "initializeParams": {
      "diskSizeGb": "[SIZE_GB]"
     }
 }...]

donde:

  • [IMAGE] es la imagen de origen del disco secundario. Para los discos en blanco, no especifiques una fuente de imagen.
  • [SIZE_GB] es el tamaño del disco.
  • [DISK_TYPE] es el tipo de disco persistente, ya sea pd-standard o pd-ssd.

Formatea y activa los discos antes de usarlos.

Próximos pasos