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.

Cuando creas tu VM, puedes crear uno o más discos. También puedes agregar más discos a la VM después de crearla. Compute Engine inicia la instancia de VM automáticamente después de crearla.

Cuando creas una VM, también puedes agregar múltiples interfaces de red. Para mitigar la exposición de la VM a amenazas en Internet, puedes omitir la dirección IP externa cuando agregues una interfaz de red a la instancia. En esos casos, solo se puede acceder a la VM desde otras VM en la misma red de VPC o desde una red vinculada, a menos que configures Cloud NAT.

Para obtener más detalles sobre las opciones de creación de VM 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 de VM 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.

Visualiza una lista de las imágenes públicas disponibles en Compute Engine

Antes de crear una VM mediante una imagen pública, revisa la lista de las imágenes públicas disponibles en Compute Engine.

Para obtener más información sobre las funciones disponibles con cada imagen pública, consulta Compatibilidad de funciones por sistema operativo.

Console

  1. En Google Cloud Console, ve a la página Imágenes.

    Ir a Imágenes

gcloud

  1. Ejecuta el siguiente comando:

    gcloud compute images list
  2. Anota el nombre de las imágenes o familias de imágenes y el nombre del proyecto que la contiene.

  3. (Opcional) Para determinar si la imagen admite funciones de VM protegida, ejecuta el siguiente comando:

    gcloud compute images describe IMAGE_NAME \
        --project=IMAGE_PROJECT
    

    Reemplaza lo siguiente:

    • IMAGE_NAME: Es el nombre de la imagen cuya compatibilidad con funciones de VM protegida se quiere comprobar.
    • IMAGE_PROJECT: Es el proyecto que contiene la imagen.

    Si la imagen admite funciones de VM protegida, aparecerá la siguiente línea en el resultado: type: UEFI_COMPATIBLE.

API

  1. Ejecuta el siguiente comando:

    GET https://compute.googleapis.com/compute/v1/projects/IMAGE_PROJECT/global/images/
    
  2. Anota el nombre de las imágenes o familias de imágenes y el nombre del proyecto que la contiene.

  3. (Opcional) Para determinar si la imagen admite funciones de VM protegida, ejecuta el siguiente comando:

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

    Reemplaza lo siguiente:

    • IMAGE_PROJECT: Es el proyecto que contiene la imagen.
    • IMAGE_NAME: Es el nombre de la imagen cuya compatibilidad con funciones de VM protegida se quiere comprobar.

    Si la imagen admite funciones de VM protegida, aparecerá la siguiente línea en el resultado: type: UEFI_COMPATIBLE.

Crea una instancia de VM a partir de una imagen pública

Google, las comunidades de código abierto y los 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 Instancias de VM

  2. Selecciona el proyecto y haz clic en Continuar.

  3. Haz clic en Crear instancia.

  4. Especifica un Nombre para la VM. Para obtener más información, consulta Convención de asignación de nombres de recursos.

  5. Opcional: Cambia la Zona para esta VM. 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 VM.

  7. En la sección Disco de arranque, haz clic en Cambiar y, luego, haz lo siguiente:

    1. En la pestaña Imágenes públicas, elige lo siguiente:
      • Sistema operativo
      • Versión del SO
      • Tipo de disco de arranque
      • Tamaño de disco de arranque
    2. Opcional: Para ver las opciones de configuración avanzadas, haz clic en Mostrar configuración avanzada.
    3. Para confirmar las opciones del disco de arranque, haz clic en Seleccionar.
  8. En la sección Firewall, para permitir el tráfico HTTP o HTTPS a la VM, selecciona Permitir tráfico HTTP o Permitir tráfico HTTPS. 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).

  9. Opcional: Puedes modificar la configuración de la VM protegida si elegiste una imagen de SO que admite estas funciones: Para modificar la configuración de las VM protegidas, expande la sección Seguridad en la sección Herramientas de redes, discos, seguridad, administración, instancia única y haz lo siguiente, según sea necesario:

  10. Para crear y, también, iniciar la VM, haz clic en Crear.

gcloud

  1. Selecciona una imagen pública. Anota el nombre de las imágenes o familias de imágenes y el nombre del proyecto que la contiene.
  2. Usa el comando gcloud compute instances create para crear una VM a partir de una familia de imágenes o de una versión específica de una imagen de SO.

    Si especificas la marca opcional --shielded-secure-boot, Compute Engine crea una VM con las tres funciones de la VM protegida habilitadas:

    Después de que Compute Engine inicie tu VM, debes detenerla para modificar las opciones de VM protegida.

    gcloud compute instances create VM_NAME \
        [--image=IMAGE | --image-family=IMAGE_FAMILY] \
        --image-project=IMAGE_PROJECT
        --machine-type=MACHINE_TYPE

    Reemplaza lo siguiente:

    • VM_NAME: Nombre de la VM nueva
    • IMAGE o IMAGE_FAMILY: Especifica una de las siguientes opciones:

      • IMAGE: Es una versión específica de una imagen pública

        Por ejemplo, --image=debian-10-buster-v20200309.

      • IMAGE_FAMILY: Es una familia de imágenes.

        Esto crea la VM a partir de la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas --image-family=debian-10, Compute Engine crea una VM a partir de la última versión de la imagen de SO en la familia de imágenes Debian 10.

    • IMAGE_PROJECT: Proyecto que contiene la imagen

    • MACHINE_TYPE: Tipo de máquina, predefinido o personalizado, de la VM nueva

      Para obtener una lista de los tipos de máquinas disponibles en una zona, usa el comando gcloud compute machine-types list con la marca --zones.

  3. Verifica si Compute Engine creó la VM:

    gcloud compute instances describe VM_NAME
    

    Reemplaza VM_NAME por el nombre de la VM.

API

  1. Selecciona una imagen pública. Anota el nombre de las imágenes o familias de imágenes y el nombre del proyecto que la contiene.
  2. Usa el método instances.insert para crear una VM a partir de una familia de imágenes o de una versión específica de una imagen de SO:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    
    {
     "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
     "name": "VM_NAME",
     "disks": [
       {
         "initializeParams": {
           "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
         },
         "boot": true
       }
     ],
     "shieldedInstanceConfig": {
       "enableSecureBoot": ENABLE_SECURE_BOOT
     }
    }
    

    Reemplaza lo siguiente:

    • PROJECT_ID: ID del proyecto en el que se creará la VM
    • 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 o IMAGE_FAMILY: Especifica una de las siguientes opciones:

      • IMAGE: Es una versión específica de una imagen pública

        Por ejemplo: "sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309"

      • IMAGE_FAMILY: Es una familia de imágenes

        Esto crea la VM a partir de la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas "sourceImage": "projects/debian-cloud/global/images/family/debian-10", Compute Engine crea una VM a partir de la última versión de la imagen de SO en la familia de imágenes Debian 10.

    • ENABLE_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 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 VM a partir de una imagen personalizada

La imagen personalizada pertenece solo a tu proyecto. Para crear una VM con una imagen personalizada, primero debes crear una imagen personalizada, si aún no tienes una.

Console

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

    Ir a Instancias de VM

  2. Selecciona el proyecto y haz clic en Continuar.

  3. Haz clic en Crear instancia.

  4. Especifica un Nombre para la VM. Para obtener más información, consulta Convención de asignación de nombres de recursos.

  5. Opcional: Cambia la Zona para esta VM. 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 VM.

  7. En la sección Disco de arranque, haz clic en Cambiar y, luego, haz lo siguiente:

    1. Selecciona la pestaña Imágenes personalizadas.
    2. Para seleccionar el proyecto de imagen, haz clic en Seleccionar un proyecto y, luego, haz lo siguiente:
      1. Selecciona el proyecto que contiene la imagen.
      2. Haz clic en Abrir.
    3. En la lista Imagen, haz clic en la imagen que deseas importar.
    4. Selecciona el tipo y tamaño de tu disco de arranque.
    5. Opcional: Para ver las opciones de configuración avanzadas, haz clic en Mostrar configuración avanzada.
    6. Para confirmar las opciones del disco de arranque, haz clic en Seleccionar.
  8. En la sección Firewall, para permitir el tráfico HTTP o HTTPS a la VM, selecciona Permitir tráfico HTTP o Permitir tráfico HTTPS.

    Cloud Console agrega una etiqueta de red a tu VM 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 VM. Para obtener más información, consulta Descripción general de las reglas de firewall en la documentación de la nube privada virtual.

  9. Para crear y, también, iniciar la VM, haz clic en Crear.

gcloud

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

gcloud compute instances create VM_NAME \
    --image-project IMAGE_PROJECT \
    [--image IMAGE | --image-family IMAGE_FAMILY]

Reemplaza lo siguiente:

  • VM_NAME: Es el nombre de la VM.
  • IMAGE_PROJECT: Es el nombre del proyecto que contiene la imagen.
  • IMAGE o IMAGE_FAMILY: Especifica una de las siguientes opciones:
    • IMAGE: Es el nombre de tu imagen personalizada.

      Por ejemplo, --image=my-debian-image-v2.

    • IMAGE_FAMILY: Si creaste tus imágenes personalizadas como parte de una familia de imágenes personalizadas, especifica esa familia de imágenes.

      Esto crea la VM a partir de la versión de SO de la imagen de SO no obsoleta más reciente de tu familia de imágenes personalizadas. Por ejemplo, si especificas --image-family=my-debian-family, Compute Engine crea una VM a partir de la última imagen de SO en tu familia de imágenes personalizadas my-debian-family.

API

El proceso para crear una VM con una imagen personalizada en la API es el mismo que si crearas una VM con una imagen disponible de forma pública.

Para crear la VM a partir de una imagen personalizada, usa el método instances.insert.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
 "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
 "name": "VM_NAME",
 "disks": [
   {
     "initializeParams": {
       "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
     },
     "boot": true
   }
 ],
 .....
}

Reemplaza lo siguiente:

  • PROJECT_ID: ID del proyecto en el que se creará la VM
  • 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: Es el nombre del proyecto que contiene la imagen personalizada
  • IMAGE o IMAGE_FAMILY: Especifica una de las siguientes opciones:

    • IMAGE: Es el nombre de tu imagen personalizada

      Por ejemplo, "sourceImage": "projects/my-project-1234/global/images/my-debian-image-v2".

    • IMAGE_FAMILY: Si creaste tus imágenes personalizadas como parte de una familia de imágenes personalizadas, especifica esa familia de imágenes.

      Esto crea la VM a partir de la imagen de SO no obsoleta más reciente de tu familia de imágenes personalizadas. Por ejemplo, si especificas "sourceImage": "projects/my-project-1234/global/images/family/my-debian-family", Compute Engine crea una VM a partir de la última versión de la imagen de SO en la familia de imágenes personalizadas my-debian-family.

Crea una instancia de VM con discos adicionales que no sean de arranque

Console

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

    Ir a Instancias de VM

  2. Selecciona el proyecto y haz clic en Continuar.

  3. Haz clic en Crear instancia.

  4. Especifica un Nombre para la VM. Para obtener más información, consulta Convención de asignación de nombres de recursos.

  5. Opcional: Cambia la Zona para esta VM. 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 VM.

  7. En la sección Disco de arranque, haz clic en Cambiar y, luego, haz lo siguiente:

    1. En la pestaña Imágenes públicas, elige lo siguiente:
      • Sistema operativo
      • Versión del SO
      • Tipo de disco de arranque
      • Tamaño de disco de arranque
    2. Opcional: Para ver las opciones de configuración avanzadas, haz clic en Mostrar configuración avanzada.
    3. Para confirmar las opciones del disco de arranque, haz clic en Seleccionar.
  8. En la sección Firewall, para permitir el tráfico HTTP o HTTPS a la VM, selecciona Permitir tráfico HTTP o Permitir tráfico HTTPS. 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).

  9. Para agregar discos que no sean de arranque a la VM, expande la sección Herramientas de redes, discos, seguridad, administración, usuario único y, luego, haz lo siguiente:

    1. Expande la sección Discos.
    2. Haz clic en Agregar disco nuevo y, luego, haz lo siguiente:
      1. Especifica las opciones Nombre, Tipo, Tipo de origen y Tamaño del disco.
      2. En la sección Configuración de la conexión, selecciona el Modo de la conexión del disco y la Regla de eliminación. Si deseas obtener más información para agregar discos nuevos, consulta Crea y conecta un disco.
      3. Haz clic en Guardar.
  10. Para crear y, también, iniciar la VM, haz clic en Crear.

gcloud

Ejecuta el comando gcloud compute instances create para crear una VM con discos adicionales que no sean de arranque.

Puedes agregar hasta 128 discos que no sean de arranque mientras creas tu VM. Especifica la marca --create-disk para cada disco que crees que no sea de arranque.

Para crear discos que no sean de arranque a partir de una imagen pública o de archivo, especifica las propiedades image o image-family, y image-project con la marca --create-disk. Para crear un disco en blanco, no incluyas estas propiedades. De manera opcional, puedes incluir propiedades para las opciones size y type del disco.

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

Reemplaza lo siguiente:

  • VM_NAME: Nombre de la VM nueva
  • IMAGE o IMAGE_FAMILY. Especifica una de las siguientes opciones:

    • IMAGE: Es una versión específica de una imagen pública

      Por ejemplo, --image=debian-10-buster-v20200309.

    • IMAGE_FAMILY: Es una familia de imágenes

      Esto crea la VM a partir de la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas --image-family=debian-10, Compute Engine crea una VM a partir de la última versión de la imagen de SO en la familia de imágenes Debian 10.

  • IMAGE_PROJECT: Proyecto que contiene la imagen

  • Para discos adicionales, reemplaza los siguientes valores:

    • DISK_IMAGE o DISK_IMAGE_FAMILY: Especifica una de las siguientes opciones:
      • DISK_IMAGE: Nombre de la imagen que deseas usar como disco que no sea de arranque
      • DISK_IMAGE_FAMILY: Una familia de imágenes para usar como disco que no sea de arranque
    • DISK_IMAGE_PROJECT: Es el proyecto de imagen al que pertenece la imagen de disco
    • SIZE_GB: Es el tamaño del disco que no es de arranque (opcional)
    • DISK_TYPE: Es la URL completa o parcial para el tipo de disco persistente (opcional).

      Por ejemplo, https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/pd-ssd. Para ver los tipos de discos disponibles, ejecuta el comando gcloud compute disk-types list.

    Para los discos en blanco, no especifiques los parámetros DISK_IMAGE, DISK_IMAGE_FAMILY ni DISK_IMAGE_PROJECT.

API

Puedes crear hasta 128 discos 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.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
 "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
 "name": "VM_NAME",
 "disks": [
   {
     "initializeParams": {
       "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
     },
     "boot": true
   },
   {
     "initializeParams": {
       "diskSizeGb": "SIZE_GB",
       "sourceImage": "projects/DISK_IMAGE_PROJECT/global/images/DISK_IMAGE",
       "diskType": "DISK_TYPE"
   },
   {
     "initializeParams": {
     "diskSizeGb": "SIZE_GB",
     "diskType": "DISK_TYPE"
   }
    }...]

Reemplaza lo siguiente:

  • PROJECT_ID: ID del proyecto en el que se creará la VM
  • 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: Es el nombre del proyecto que contiene la imagen personalizada
  • IMAGE o IMAGE_FAMILY: Especifica una de las siguientes opciones:

    • IMAGE: Es el nombre de tu imagen personalizada

      Por ejemplo, "sourceImage": "projects/my-project-1234/global/images/my-debian-image-v2".

    • IMAGE_FAMILY: Si creaste tus imágenes personalizadas como parte de una familia de imágenes personalizadas, especifica esa familia de imágenes.

      Esto crea la VM a partir de la versión de SO de la imagen de SO no obsoleta más reciente de tu familia de imágenes personalizadas. Por ejemplo, si especificas "sourceImage": "projects/my-project-1234/global/images/family/my-debian-family", Compute Engine crea una VM a partir de la última versión de la imagen de SO en la familia de imágenes personalizadas my-debian-family.

  • Para discos adicionales, reemplaza los siguientes valores:

    • SIZE_GB: Es el tamaño del disco
    • DISK_IMAGE o DISK_IMAGE_FAMILY: Especifica una imagen de origen o familia de imágenes para el disco que no es de arranque:

      • DISK_IMAGE: Nombre de la imagen que deseas usar como disco que no sea de arranque

        Por ejemplo, "sourceImage": "projects/DISK_IMAGE_PROJECT/global/images/DISK_IMAGE".

      • DISK_IMAGE_FAMILY: Una familia de imágenes para usar como disco que no sea de arranque

        Por ejemplo, "sourceImage": "projects/DISK_IMAGE_PROJECT/global/images/family/DISK_IMAGE_FAMILY".

    • DISK_TYPE: La URL completa o parcial para el tipo de disco persistente

    Por ejemplo, https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/pd-ssd.

    Para los discos en blanco, no especifiques los parámetros DISK_IMAGE, DISK_IMAGE_FAMILY ni DISK_IMAGE_PROJECT.

Formatea y activa los discos antes de usarlos.

Crea una instancia de VM a partir de una imagen compartida

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

Console

  1. En Google Cloud Console, ve a la página Crear una instancia.

    Ir a Crear una instancia

  2. Especifica un Nombre para la VM. Para obtener más información, consulta Convención de asignación de nombres de recursos.
  3. Opcional: Cambia la Zona para esta VM. Compute Engine aleatoriza la lista de zonas dentro de cada región para fomentar el uso en múltiples zonas.
  4. Selecciona una Configuración de máquina para la VM.
  5. En la sección Disco de arranque, haz clic en Cambiar para configurarlo y, luego, haz lo que se indica a continuación:
    1. Selecciona la pestaña Imágenes personalizadas.
    2. Para seleccionar el proyecto de imagen, haz clic en Seleccionar un proyecto y, luego, haz lo siguiente:
      1. Selecciona el proyecto que contiene la imagen.
      2. Haz clic en Abrir.
    3. En la lista Imagen, haz clic en la imagen que deseas importar.
    4. Selecciona el tipo y tamaño de tu disco de arranque.
    5. Para confirmar las opciones del disco de arranque, haz clic en Seleccionar.
  6. Para permitir el tráfico HTTP o HTTPS a la VM, en la sección Firewall, selecciona Permitir tráfico HTTP o Permitir tráfico HTTPS.

    Cloud Console agrega una etiqueta de red a tu VM 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 VM. 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.

  7. Para iniciar y crear una VM, haz clic en Crear.

gcloud

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

 gcloud compute instances create VM_NAME \
        --image=IMAGE \
        --image-project=IMAGE_PROJECT
    

Reemplaza lo siguiente:

  • VM_NAME: Es el nombre de la VM 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 VM 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  e2-standard-2               10.240.0.4   104.198.53.60  RUNNING

API

Sigue las instrucciones de la API para crear una VM a partir de una imagen pública, pero especifica el campo image en el cuerpo de la solicitud. Para agregar discos en blanco, no especifiques un origen 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"
           }
     }
     ...]

Reemplaza lo siguiente:

  • PROJECT_ID: Proyecto que contiene la imagen
  • IMAGE_NAME: Imagen de origen
  • SIZE_GB: Es el tamaño del disco
  • IMAGE: Imagen de origen para el disco que no es de arranque
  • Para los discos en blanco, no especifiques un origen de la imagen.

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

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

Para crear más de una VM con rapidez con el mismo disco de arranque, crea una imagen personalizada y, luego, crea VM a partir de esa imagen en lugar de hacerlo a partir de la instantánea.

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

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

Console

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

    Ir a Instancias de VM

  2. Selecciona el proyecto y haz clic en Continuar.

  3. Haz clic en Crear instancia.

  4. Especifica un Nombre para la VM. Para obtener más información, consulta Convención de asignación de nombres de recursos.

  5. Opcional: Cambia la Zona para esta VM. 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 VM.

  7. En la sección Disco de arranque, haz clic en Cambiar y, luego, haz lo siguiente:

    1. Haz clic en la pestaña Instantáneas.
    2. En la lista Instantánea, haz clic en una instantánea.
    3. Especifica el tipo y el tamaño del disco de arranque.
    4. Para ver las opciones de configuración avanzadas, haz clic en Mostrar configuración avanzada (opcional).
    5. Para confirmar las opciones del disco de arranque, haz clic en Seleccionar.
  8. En la sección Firewall, para permitir el tráfico HTTP o HTTPS a la VM, selecciona Permitir tráfico HTTP o Permitir tráfico HTTPS.

    Cloud Console agrega una etiqueta de red a tu VM 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 VM. Para obtener más información, consulta Descripción general de las reglas de firewall en la documentación de la nube privada virtual.

  9. Para crear y, también, iniciar la VM, haz clic en Crear.

gcloud

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

gcloud compute instances create VM_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

Reemplaza lo siguiente:

  • VM_NAME: Es el nombre de la VM nueva
  • BOOT_SNAPSHOT_NAME: nombre de la instantánea del disco de arranque que deseas restablecer en el disco de arranque de la nueva VM.
  • BOOT_DISK_SIZE: Es el tamaño, en gigabytes, del nuevo disco de arranque (opcional)

    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.

  • BOOT_DISK_TYPE: Es el tipo de disco persistente de arranque (opcional)

    Por ejemplo, pd-ssd.

  • BOOT_DISK_NAME: Nombre del disco de arranque nuevo para esta VM

API

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

  • Solo se puede usar un disco persistente como disco de arranque.
  • Debes conectar el disco persistente de arranque como primer disco para esa VM.
  • 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 VM a partir de una instantánea del disco de arranque, especifica el campo sourceSnapshot en la propiedad disks. Especifica las propiedades diskSizeGb y diskType para el nuevo disco de arranque (opcional):

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "name": "VM_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"
    }
   }],
 }

Reemplaza lo siguiente:

  • PROJECT_ID: El ID de tu proyecto
  • ZONE: Zona donde deseas crear la VM nueva
  • VM_NAME: Es el nombre de la VM en la que deseas restablecer una instantánea
  • MACHINE_TYPE: tipo de máquina de la VM
  • BOOT_SNAPSHOT_NAME: Nombre de la instantánea que deseas usar para crear el disco de arranque de una VM nueva
  • BOOT_DISK_SIZE: Es el tamaño, en gigabytes, del nuevo disco de arranque (opcional)

    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.

  • BOOT_DISK_TYPE: Es el tipo de disco de arranque (opcional)

    Por ejemplo, pd-ssd.

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

Las instantáneas que no son de arranque son copias de seguridad de discos persistentes secundarios que la VM usa solo para el almacenamiento de datos. Puedes restablecer instantáneas que no sean de arranque en discos nuevos cada vez que creas una VM. De forma alternativa, también puedes restablecer instantáneas que no sean de arranque en una VM existente.

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

Console

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

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

    1. En Google Cloud Console, ve a la página Discos.

      Ir a Discos

    2. Haz clic en Crear disco.

    3. Especifica un Nombre para el disco. Para obtener más información, consulta Convención de asignación de nombres de recursos.

    4. Selecciona la Región y la Zona para este disco. El disco y la VM deben estar 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. Para crear el disco, haz clic en Crear.

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

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

    Ir a Instancias de VM

  3. Selecciona el proyecto y haz clic en Continuar.

  4. Haz clic en Crear instancia.

    1. Especifica un Nombre para la VM. Para obtener más información, consulta Convención de asignación de nombres de recursos.
    2. Selecciona la Región y la Zona para esta VM. El disco y la VM deben estar en la misma zona.
    3. Selecciona un Tipo de máquina para tu VM.
    4. Si deseas permitir el tráfico externo entrante, cambia las reglas de firewall de la VM.
    5. Para conectar discos a la VM, expande la sección Herramientas de redes, discos, seguridad, administración, usuario único y, luego, haz lo siguiente:

      1. Expande la sección Discos.
      2. Haz clic en Conectar un disco existente.
        1. En la lista Disco, selecciona un disco para conectar a esta VM.
        2. En la sección Configuración de la conexión, selecciona el Modo de la conexión y la Regla de eliminación del disco. Si deseas obtener más información para agregar discos nuevos, consulta Crea y conecta un disco.
      3. Haz clic en Guardar.

      Repite estos pasos para cada disco que desees conectar. Cuando creas una VM, puedes agregar hasta 15 discos que no sean de arranque.

  5. Para crear y, también, iniciar la VM, haz clic en Crear.

gcloud

Crea una VM mediante 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 VM, puedes agregar hasta 15 discos que no sean de arranque.

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

gcloud compute instances create VM_NAME \
    --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

Reemplaza lo siguiente:

  • VM_NAME: Es el nombre de la VM nueva
  • 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 VM.
  • DISK_1_SIZE y DISK_2_SIZE: Son los tamaños, en gigabytes, de cada disco nuevo que no es de arranque (opcional)

    Los tamaños deben ser iguales o mayores que los tamaños de los discos de origen desde los que se realizó la instantánea.

  • DISK_1_TYPE y DISK_2_TYPE: Son los tipos de los discos persistentes (opcional)

    Por ejemplo, https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/pd-ssd.

API

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

  • El disco de arranque solo puede ser un disco persistente.
  • Debes conectar el disco persistente de arranque como primer disco para esa VM.
  • 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 que no sean de arranque si repites la propiedad initializeParams para cada disco que no sea de arranque que desees 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 VM nueva, realiza la siguiente solicitud:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "name": "VM_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"
     }
  }]
 }

Reemplaza lo siguiente:

  • PROJECT_ID: El ID de tu proyecto
  • ZONE: Zona donde deseas crear la VM
  • VM_NAME: Es el nombre de la VM en la que deseas restablecer una instantánea
  • MACHINE_TYPE: Tipo de máquina de la VM
  • DISK_SIZE: Es el tamaño, en gigabytes, del disco correspondiente (opcional)

    Cuando se proporciona, esta propiedad debe ser igual o mayor que el tamaño del disco de origen desde el que se realizó la instantánea.

  • DISK_TYPE: Es una URL completa o parcial para el tipo de disco persistente correspondiente (opcional).

    Por ejemplo, https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/pd-ssd.

  • SNAPSHOT_1_NAME y SNAPSHOT_2_NAME: Nombres de las instantáneas que no son de arranque que deseas restablecer en discos nuevos que no son de arranque en la nueva VM

Crea una instancia de VM a partir de una imagen de contenedor

Para implementar y, luego, iniciar un contenedor en una VM de Compute Engine, especifica un nombre de imagen de contenedor y los parámetros de configuración opcionales cuando crees la VM. Compute Engine crea la VM 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. Si deseas obtener más información, consulta la sección Implementa contenedores en VM.

Para crear una VM a partir de una imagen de contenedor, debes usar Cloud Console o gcloud.

Console

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

    Ir a Instancias de VM

  2. Selecciona el proyecto y haz clic en Continuar.

  3. Haz clic en Crear instancia.

  4. Especifica un Nombre para la VM. Para obtener más información, consulta Convención de asignación de nombres de recursos.

  5. En la sección Contenedor, haz clic en Implementar contenedor.

    1. Especifica la Imagen de contenedor a utilizar. Por ejemplo:

      • Para seleccionar una imagen de contenedor NGINX 1.12 en Cloud Launcher, haz lo siguiente:

        gcr.io/cloud-marketplace/google/nginx1:1.12

      • Para implementar una imagen de contenedor de Apache desde Docker Hub, especifica siempre el nombre completo de la imagen de Docker:

        docker.io/httpd:2.4

    2. 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.

  6. Para crear la VM, iníciala y, luego, inicia el contenedor, haz clic en Crear.

gcloud

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

gcloud compute instances create-with-container VM_NAME \
    --container-image=CONTAINER_IMAGE

Reemplaza lo siguiente:

  • VM_NAME: Es el nombre de la VM nueva.
  • CONTAINER_IMAGE: Es el nombre de la imagen del contenedor.

Por ejemplo, el siguiente comando crea una VM llamada nginx-vm, que inicia y ejecuta la imagen del 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

Para implementar una imagen de contenedor de Apache desde Docker Hub, especifica siempre el nombre completo de la imagen de Docker:

docker.io/httpd:2.4.

Crea una instancia de VM con acceso a otros servicios de Google Cloud

Si planeas ejecutar una aplicación en tu VM que necesite acceso a otros servicios de Google Cloud, crea una cuenta de servicio antes de crear la VM y, luego, configura la VM 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, consulta Cuentas de servicio.

Crea una instancia de VM en una subred específica

De forma predeterminada, Google Cloud crea una red de VPC en modo automático llamada default para cada proyecto. 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 VM.

Cuando crees una VM en una subred, ten en cuenta estas reglas:

  • Si no especificas una red o subred, Compute Engine usa la red de VPC predeterminada y la subred automática que se encuentra en la misma región que la VM.
  • Si no especificas una red, Compute Engine infiere la red desde la subred especificada.
  • Si especificas una red, debes especificar una subred y esta debe pertenecer a la misma red. De lo contrario, la creación de la VM fallará.

Console

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

    Ir a Instancias de VM

  2. Selecciona el proyecto y haz clic en Continuar.

  3. Haz clic en Crear instancia.

  4. Especifica un Nombre para la VM. Para obtener más información, consulta Convención de asignación de nombres de recursos.

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

  6. En la sección Firewall, para permitir el tráfico HTTP o HTTPS a la VM, selecciona Permitir tráfico HTTP o Permitir tráfico HTTPS.

    Cloud Console agrega una etiqueta de red a tu VM 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 VM. 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 Herramientas de redes, discos, seguridad, administración, usuario único.

    1. Expande la sección Herramientas de redes.
    2. En Interfaces de red, 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ás para la VM.
      3. Haga clic en Listo.
  8. Para crear y, también, iniciar la VM, haz clic en Crear.

gcloud

Con la herramienta de línea de comandos de gcloud, sigue las mismas instrucciones para crear una VM a partir de una imagen oinstantánea y agrega las marcas --subnet=SUBNET_NAME y --zone=ZONE cuando ejecutes el comando gcloud compute instances create:

gcloud compute instances create VM_NAME \
    --network=NETWORK_NAME \
    --subnet=SUBNET_NAME \
    --zone=ZONE

Reemplaza lo siguiente:

  • VM_NAME: Nombre de la VM
  • NETWORK_NAME: nombre de la red (opcional)
  • SUBNET_NAME: Es el nombre de la subred

    Para ver una lista de subredes en la red, usa el comando gcloud compute networks subnets list.

  • ZONE: Es la zona en la que se crea la VM, como europe-west1-b

    La región de la VM se infiere de la zona.

API

Sigue las instrucciones de la API para crear una VM a partir de una imagen o de una instantánea, pero especifica el campo subnet en el cuerpo de la solicitud. 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"
     }
 }...]

Reemplaza lo siguiente:

  • NETWORK_NAME: Nombre de la red (opcional)
  • REGION: Región donde existe la subred especificada
  • SUBNET_NAME: Es el nombre de la subred
  • SIZE_GB: Es el tamaño del disco
  • IMAGE: Imagen de origen para el disco que no es de arranque

    Para los discos en blanco, no especifiques un origen de la imagen.

Soluciona problemas

Si quieres encontrar métodos para resolver errores comunes de creación de VM, consulta Soluciona problemas de creación de VM.

Próximos pasos

Pruébalo tú mismo

Si es la primera vez que usas Google Cloud, crea una cuenta para evaluar el rendimiento de Compute Engine en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.

Probar Compute Engine gratis