Combina reservas con descuentos por uso confirmado


Los descuentos por compromiso de uso (CUDs) ofrecen precios muy reducidos para tus recursos de Compute Engine a cambio de contratos por uso confirmado de 1 o 3 años (también conocidos como compromisos). Te comprometes a un uso mínimo de recursos o a un gasto mínimo y, a cambio, recibes descuentos por uso confirmado en los costes de uso de recursos. Sin embargo, los compromisos no reservan capacidad de zona para tus recursos comprometidos. Para obtener recursos zonales a precios rebajados y asegurarte de que se reserva capacidad para ellos, debes comprar compromisos y crear reservas para esos recursos zonales.

En este documento se explica cómo puedes recibir CUDs por tus recursos reservados y cómo asociar reservas a compromisos basados en recursos.

Antes de empezar

  • Consulta los aspectos básicos de las reservas, así como sus requisitos y restricciones. Para obtener más información, consulta Información sobre las reservas.
  • Si aún no lo has hecho, configura la autenticación. La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    2. Set a default region and zone.

    REST

    Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.

      Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .

Descuentos por compromiso de uso para tus recursos reservados

Recibes descuentos por uso continuado de las confirmaciones activas por el uso de recursos aptos en tus proyectos. Si también tienes reservas para mantener la capacidad de los recursos de ese proyecto, los CUDs de los compromisos activos también se pueden aplicar a esos recursos reservados. Para que los recursos reservados puedan recibir CUDs, deben cumplir los siguientes requisitos:

  • No recibes ningún otro tipo de descuento por el uso de recursos.
  • Tus VMs deben consumir las reservas mientras los compromisos estén activos.
  • Como mínimo, las siguientes propiedades deben coincidir entre tus compromisos activos y las reservas que consumen tus VMs:

    • Proyecto y región en los que se aplican
    • Serie de familias de máquinas

En función del tipo de recurso, puedes recibir CUDs para tus recursos reservados de una de las siguientes formas:

  • vCPUs y memoria: para recibir CUDs por uno o ambos tipos de recursos, puedes comprar compromisos basados en recursos o en el gasto que incluyan los tipos de recursos necesarios. Cuando las VMs de tu proyecto consumen reservas cuyas propiedades coinciden con los compromisos activos, el uso de estos tipos de recursos se convierte automáticamente en apto para los descuentos por uso continuado aplicables.

    Solo en el caso de los compromisos basados en recursos, puedes habilitar la función de compartir CUD. De esta forma, puedes compartir los DUCs de un proyecto para cubrir el uso de otros proyectos vinculados a la cuenta de facturación de Cloud de ese compromiso.

    Si has reservado más recursos de los que te has comprometido a comprar, no recibirás descuentos por compromiso de uso por esos recursos adicionales.

  • GPUs y discos SSD locales: para recibir CUDs por uno o ambos tipos de recursos, debes hacer lo siguiente:

    • Compra compromisos basados en recursos que incluyan los tipos de recursos necesarios.
    • Crea reservas para todos los recursos comprometidos con propiedades que coincidan con tu compromiso y adjunta esas reservas al compromiso.

    Cuando las VMs de tu proyecto consuman estas reservas adjuntas, empezarás a recibir los descuentos por uso confirmado aplicables a estos tipos de recursos reservados. Si habilitas el uso compartido de CUDs y adjuntas una reserva compartida, el uso de otros proyectos de consumidor también puede cumplir los requisitos de las CUDs compartidas. Sin embargo, para que el uso de otros proyectos cumpla los requisitos, debes limitar el uso compartido de tu reserva a la cuenta de facturación de Cloud del compromiso.

Asociar reservas a compromisos basados en recursos

Puedes asociar reservas a cualquier compromiso basado en recursos y asegurarte de que se reserva capacidad en zonas específicas para los recursos comprometidos que tienes previsto usar. Puedes adjuntar varias reservas a un solo compromiso, pero una reserva solo se puede adjuntar a un compromiso. Cuando compras un compromiso, puedes asociarle reservas de una de las siguientes formas:

  • Usar reservas que ya tengas y cuyas propiedades coincidan con el compromiso
  • Crear reservas coincidentes al comprar tu compromiso

Después de comprar un compromiso con reservas asociadas, las reservas permanecerán activas mientras el compromiso esté activo. Cuando vence tu compromiso, Compute Engine elimina automáticamente las reservas asociadas. Eliminar estas reservas no tiene ningún efecto en las máquinas virtuales en ejecución que las estuvieran consumiendo. Las VMs en ejecución siguen funcionando y se te sigue cobrando por ellas.

Recursos comprometidos que no requieren reservas asociadas

Para las vCPUs y la memoria confirmadas, no es necesario que asocies reservas coincidentes a tus compromisos. Sin embargo, si compras un compromiso que incluye vCPUs, memoria o ambos recursos, puedes adjuntar reservas que especifiquen esos recursos. Para obtener información sobre cómo comprar compromisos solo para vCPUs, memoria o ambos recursos sin asociar reservas, consulta Comprar compromisos sin reservas asociadas.

Recursos confirmados que requieren reservas asociadas

Las GPUs y los discos SSD locales comprometidos (excepto los discos SSD locales Titanium para instancias C4A, C4D o Z3) requieren que adjuntes reservas coincidentes a tus compromisos. Cuando compras un compromiso que incluye GPUs, discos SSD locales o ambos, también debes reservar esos recursos y adjuntar las reservas a tu compromiso. Puedes hacerlo con una sola reserva o con una combinación de reservas. Cuando compras un compromiso de este tipo, también puedes incluir vCPUs, memoria o ambos recursos. Sin embargo, no es necesario reservar esas vCPUs ni esa memoria.

Para saber cómo comprar compromisos de GPUs, consulta uno de los siguientes artículos:

Para saber cómo comprar compromisos de discos SSD locales, consulta la sección Comprar compromisos con reservas asociadas de este documento.

Para ver la lista completa de series de máquinas que admiten CUDs para GPUs y discos SSD locales, consulta la sección Tipos de compromisos de hardware de la documentación sobre CUDs basados en recursos.

Cantidades de recursos permitidas en las reservas adjuntas

En el caso de las vCPUs y la memoria, puedes tener reservas asociadas que especifiquen cantidades de recursos superiores o inferiores a las que te comprometes. Si te comprometes a usar más vCPUs o memoria de las que reservas, Compute Engine solo reserva capacidad para los recursos reservados. Sin embargo, puedes seguir usando los recursos comprometidos adicionales en función de su disponibilidad en tu región. Si reservas más vCPUs o memoria de las que te comprometes a usar, no recibirás descuentos por uso continuado por esos recursos adicionales.

Por ejemplo, si compras una confirmación de 4 vCPUs y 30 GB de memoria, puedes hacer lo siguiente:

  • No adjuntar ninguna reserva.
  • Adjunta reservas especificando cualquier combinación de estos tipos de recursos. Por ejemplo:

    • 4 vCPUs y 30 GB de memoria
    • 2 vCPUs y 50 GB de memoria
    • 10 vCPUs y 10 GB de memoria

Sin embargo, si tu compromiso contiene GPUs, discos SSD locales o ambos, debes reservar y adjuntar todos esos recursos. Las reservas que adjuntes deben especificar el número y los tipos exactos de las GPUs y los discos SSD locales a los que te comprometes. Por lo tanto, tampoco puedes tener ningún número o tipo adicional de GPUs o discos SSD locales en tus reservas adjuntas.

Por ejemplo, supongamos que compras una confirmación de 30 GB de memoria y 4 GPUs NVIDIA P100. La reserva asociada (o la combinación de reservas asociadas) puede especificar cualquier cantidad de vCPUs o memoria, pero debe tener exactamente 4 GPUs de tipo NVIDIA P100. En este ejemplo, no puedes adjuntar reservas que especifiquen ninguna de las siguientes combinaciones de recursos:

  • 6 GPUs NVIDIA P100
  • 2 GPUs NVIDIA P100
  • 4 GPUs NVIDIA P100 y 2 GPUs NVIDIA V100
  • 4 GPUs NVIDIA P100 y 4 discos SSD locales

Comprar compromisos con reservas asociadas

Cuando compras un nuevo compromiso, puedes asociar reservas a él de una de las siguientes formas:

Una vez que hayas comprado un compromiso, este se activará al día siguiente a las 00:00 (hora del Pacífico de EE. UU. y Canadá, UTC-8 o UTC-7 durante el horario de verano). Entre el momento en que compras tu compromiso y el momento en que se activa, el estado de tu compromiso sigue siendo NOT_YET_ACTIVE (o PENDING en la consolaGoogle Cloud ). Una vez activado, el estado de tu compromiso cambia a ACTIVE. Por ejemplo, supongamos que compras tu compromiso el 20 de enero a las 22:00 (hora del Pacífico de EE. UU. y Canadá, UTC-8 o UTC-7). Compute Engine crea tu compromiso inmediatamente con el estado NOT_YET_ACTIVE. Sin embargo, tu compromiso se hará efectivo ACTIVE solo el 21 de enero a las 00:00 (hora del Pacífico de EE. UU. y Canadá, UTC-8 o UTC-7).

Requisitos

Antes de comprar un compromiso con reservas asociadas, consulta estos requisitos y asegúrate de que tu compromiso y tus reservas cumplen los siguientes criterios:

  • Debes comprar el compromiso y crear las reservas asociadas en el mismo proyecto y región.
  • Debes comprar el compromiso y crear las reservas asociadas para los recursos de la misma serie de familias de máquinas.
  • Debes inhabilitar la opción de eliminación automática en las reservas adjuntas.
  • Si tu confirmación tiene GPUs, el tipo de GPU especificado en la reserva y en la confirmación debe coincidir.
  • En el caso de las GPUs y los discos SSD locales, el número de recursos reservados de cada tipo de recurso debe coincidir exactamente con el número de recursos comprometidos de ese tipo. Sin embargo, este requisito no se aplica cuando compras un compromiso de discos SSD locales Titanium para usarlo con los tipos de máquina C4A, C4D o Z3.

    Por ejemplo, si quieres comprar un compromiso de 4 GPUs V100 y 2 discos SSD locales, las reservas asociadas a tu compromiso deben especificar un total de 4 GPUs V100 y 2 SSDs locales. La cantidad de vCPU y memoria que reserves puede ser mayor o menor que la que te comprometas a usar. Sin embargo, si compras una confirmación de 4 vCPUs C4A y 2 discos SSD locales Titanium, no tienes que adjuntar ninguna reserva a la confirmación.

  • En el caso de las GPUs, compra compromisos para los tipos de GPU específicos que quieras usar. Por ejemplo, puedes comprar compromisos para GPUs NVIDIA P100 o NVIDIA V100, pero no puedes usar un compromiso que hayas comprado para GPUs NVIDIA P100 para cubrir GPUs NVIDIA V100.

  • Si la reserva que has adjuntado es compartida y quieres recibir los CUDs aplicables cuando la consumas fuera del proyecto de tu compromiso, debes hacer lo siguiente:

    • Comparte tus reservas solo entre proyectos que pertenezcan a la misma cuenta de facturación de Cloud que el compromiso.
    • Habilita el uso compartido de CUDs en esa cuenta de facturación de Cloud.

Adjuntar reservas

Puedes asociar reservas que ya tengas al comprar tu compromiso mediante la Google Cloud consola, la interfaz de línea de comandos de Google Cloud o REST.

Consola

Antes de comprar un compromiso mediante la Google Cloud consola, selecciona el proyecto que quieras usar para comprar el compromiso. Si la opción de compartir DUCs está habilitada en una cuenta de facturación de Cloud, puedes comprar la confirmación de uso con cualquier proyecto de esa cuenta. Después de seleccionar el proyecto, haz lo siguiente:

  1. En la Google Cloud consola, ve a la página Descuentos por compromiso de uso.

    Ir a Descuentos por compromiso de uso

  2. Para comprar un compromiso, haz clic en Comprar compromiso. Se abrirá la página Compra un descuento por uso confirmado y se mostrará la pestaña Hardware.

  3. En el campo Nombre, introduce un nombre para tu compromiso.

  4. En el campo Región, selecciona la región en la que quieras comprometerte a usar recursos de Compute Engine.

  5. En el campo Tipo de compromiso, selecciona la serie de familias de máquinas de los recursos comprometidos. Los siguientes tipos de compromiso ofrecen opciones para GPUs, discos SSD locales o ambos:

    • A2 optimizada para aceleradores para recursos de tipo de máquina A2
    • A3 optimizada para aceleradores para recursos de tipo de máquina A3 Edge y A3 High
    • A3 Mega optimizada para aceleradores para recursos de tipo de máquina A3 Mega
    • C2 optimizado para la computación para recursos de tipo de máquina C2
    • C2D optimizado para la computación para recursos de tipo de máquina C2D
    • C3 de uso general para recursos de tipo de máquina C3
    • Uso general C3D para recursos de tipo de máquina C3D
    • N1 de uso general para recursos de tipo de máquina N1
    • N2 de uso general para recursos de tipo de máquina N2
    • N2D de uso general para recursos de máquinas N2D
    • G2 optimizada para gráficos para recursos de tipo de máquina G2
    • M3 con memoria optimizada para recursos de tipo de máquina M3
    • Z3 con almacenamiento optimizado para recursos de tipo de máquina Z3

  6. En Duración, haz lo siguiente:

    1. Para especificar el plan de tu compromiso, selecciona 1 año o 3 años. Este ajuste determina la duración predefinida de tu compromiso.
    2. Opcional. Para especificar una duración personalizada para tu compromiso, haz clic en el interruptor Ampliar fecha de finalización y, a continuación, en el campo Fecha, especifica una fecha de finalización personalizada. Para obtener más información, consulta el artículo Ampliar la duración de los compromisos.

  7. En el campo Cores (Núcleos), introduce el número de vCPUs que quieras comprar.

  8. En el campo Memoria, introduce la cantidad de memoria (en GB) que quieras comprar.

    Solo puedes especificar la memoria en incrementos de 0,25 GB. Para especificar un valor de memoria personalizado para tu compromiso, usa la CLI de gcloud o REST.

  9. Para confirmar las GPUs, en la sección GPUs (GPUs), haga clic en Add GPU (Añadir GPU) y, a continuación, siga estos pasos:

    1. En el campo Tipo de GPU, selecciona el tipo de GPU.
    2. En el campo Número de GPUs, introduce el número de GPUs.
    3. Opcional: Si tu modelo de GPU es compatible con estaciones de trabajo virtuales NVIDIA RTX para cargas de trabajo de gráficos y tienes previsto ejecutar cargas de trabajo que utilizan un gran número de gráficos, selecciona la casilla Habilitar estación de trabajo virtual (NVIDIA GRID).
  10. Para confirmar el uso de discos SSD locales, en la sección SSD locales, haz clic en Añadir SSD y, a continuación, en el campo Número de SSDs, especifica el número de discos.

  11. Para asociar una o varias reservas a un compromiso, en el campo Reservas, seleccione Asociar reservas.

    La consola Google Cloud muestra una lista de todas las reservas de tu proyecto cuya región, tipo de máquina y tipo de GPU coincidan con el compromiso. A continuación, haz lo siguiente:

    1. Opcional. Para ver las reservas con propiedades específicas, en el menú Filtrar, añada o quite filtros de las propiedades que quiera.
    2. Selecciona todas las reservas que quieras asociar al compromiso.
  12. Para terminar de comprar tu compromiso con las reservas asociadas, haz lo siguiente:

    1. Haz clic en Comprar.
    2. En el cuadro de diálogo Comprar un descuento por compromiso de uso, si estás de acuerdo con los términos específicos del servicio, haz clic de nuevo en Comprar.

gcloud

Para comprar un compromiso asociando reservas, ejecuta el comando gcloud compute commitments create. En tu comando, incluye la marca --existing-reservation para especificar una reserva que quieras asociar a tu compromiso. Incluya una instancia nueva de esta marca por cada reserva que quiera adjuntar. Puedes asociar cualquier número de reservas a tu compromiso.

Por ejemplo, para comprar un compromiso asociándole dos reservas, ejecuta el siguiente comando:

gcloud compute commitments create COMMITMENT_NAME \
    --region=REGION \
    --project=PROJECT_ID \
    --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \
    --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \
    --plan=DURATION \
    --type=COMMITMENT_TYPE \
    --custom-end-time=CUSTOM_END_DATE \
    --existing-reservation=name='RESERVATION_NAME_1',zone='RESERVATION_ZONE_1' \
    --existing-reservation=name='RESERVATION_NAME_2',zone='RESERVATION_ZONE_2'

Haz los cambios siguientes:

  • COMMITMENT_NAME: el nombre del compromiso.
  • REGION: la región en la que se encuentra el compromiso.
  • PROJECT_ID: el ID del proyecto en el que quieres comprar el compromiso con las reservas asociadas.
  • DURATION: la duración del compromiso, que puede ser 12-month o 36-month.
  • CUSTOM_END_DATE: opcional. Una fecha de finalización personalizada para el plazo, que debe tener el formato YYYY-MM-DD. Por ejemplo, para especificar una fecha de finalización personalizada del 20 de abril del 2024, debe usar el formato 2024-04-20.
  • COMMITMENT_TYPE: el tipo de compromiso. Los siguientes tipos de compromisos ofrecen opciones para GPUs, discos SSD locales o ambos:

    • accelerator-optimized para recursos de tipo de máquina A2
    • accelerator-optimized-a3 para los recursos de los tipos de máquinas A3 Edge y A3 High
    • accelerator-optimized-a3-mega para los recursos de tipo de máquina A3 Mega
    • compute-optimized para recursos de tipo de máquina C2
    • compute-optimized-c2d para recursos de tipo de máquina C2D
    • compute-optimized-c3 para recursos de tipo de máquina C3
    • compute-optimized-c3d para recursos de tipo de máquina C3D
    • general-purpose para recursos de tipo de máquina N1
    • general-purpose-n2 para recursos de tipo de máquina N2
    • general-purpose-n2d para recursos de máquinas N2D
    • graphics-optimized para recursos de tipo de máquina G2
    • memory-optimized-m3 para recursos de tipo de máquina M3
    • storage-optimized-z3 para recursos de tipo de máquina Z3

  • COMMITTED_VCPUS: el número de vCPUs que quieres incluir en tu compromiso. El número debe ser un entero positivo.

  • COMMITTED_MEMORY: la cantidad de memoria que quieres incluir en tu compromiso, en MB o GB. Por ejemplo, 10240MB o 10GB. Si no especificas ninguna unidad, Compute Engine usará GB.

  • COMMITTED_LOCAL_SSD: la cantidad, en GB, de espacio de SSD local que quieres incluir en tu compromiso. Cada disco SSD local tiene 375 GB.

  • COMMITTED_ACCELERATOR_COUNT: el número de GPUs que quieres incluir en tu compromiso.

  • COMMITTED_ACCELERATOR_TYPE: el tipo de GPU que quieres incluir en tu compromiso.

  • RESERVATION_NAME_1 y RESERVATION_NAME_2: los nombres de las reservas que quieras adjuntar al compromiso.

  • RESERVATION_ZONE_1 y RESERVATION_ZONE_2: las zonas de las reservas que quieras asociar al compromiso.

Ejemplo: comprar una confirmación asociando reservas

Supongamos que tienes dos reservas, res-01 y res-02, en las zonas us-central1-a y us-central1-b del proyecto myproject. Supongamos que estas reservas tienen una capacidad combinada de 4 GPUs NVIDIA P100 y 4 discos SSD locales. Para comprar un nuevo compromiso en la región us-central1 de este proyecto para estas GPUs y discos SSD locales, y usar estas reservas como reservas adjuntas, ejecuta el siguiente comando. Ten en cuenta que el compromiso de ejemplo también contiene vCPUs y memoria.

gcloud compute commitments create commitment-01 \
    --region=us-central1 \
    --project=myproject \
    --resources=vcpu=96,memory=624GB,local-ssd=1500 \
    --resources-accelerator=type=nvidia-tesla-p100,count=4 \
    --plan 12-month \
    --existing-reservation=name=res-01,zone=us-central1-a \
    --existing-reservation=name=res-02,zone=us-central1-b
    

REST

Para comprar un compromiso asociando reservas, haz una solicitud POST al método regionCommitments.insert. En su solicitud, incluya el campo existingReservations para especificar una lista separada por comas de todas las reservas que quiera asociar a su compromiso. Puedes asociar a tu compromiso tantas reservas como quieras.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments

{
  "name": "COMMITMENT_NAME",
  "plan": "DURATION",
  "type": COMMITMENT_TYPE,
  "resources":
  [
    {
      "amount": "COMMITTED_VCPUS",
      "type": "VCPU"
    },
    {
      "amount": "COMMITTED_MEMORY",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "COMMITTED_ACCELERATOR_TYPE",
      "amount": "COMMITTED_ACCELERATOR_COUNT",
      "type": "ACCELERATOR"
    }
    {
      "amount": "COMMITTED_LOCAL_SSD",
      "type": "LOCAL_SSD"
    }
  ],
  "customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ",
  "existingReservations": "RESERVATION_URLs"
}

Haz los cambios siguientes:

  • COMMITMENT_NAME: el nombre del compromiso.
  • REGION: la región en la que se encuentra el compromiso.
  • PROJECT_ID: el ID del proyecto en el que quieres comprar el compromiso con las reservas asociadas.
  • DURATION: la duración del compromiso, TWELVE_MONTH o THIRTY_SIX_MONTH.
  • COMMITMENT_TYPE: el tipo de compromiso. Los siguientes tipos de compromisos ofrecen opciones para GPUs, discos SSD locales o ambos:

    • ACCELERATOR_OPTIMIZED para recursos de tipo de máquina A2
    • ACCELERATOR_OPTIMIZED_A3 para los recursos de los tipos de máquinas A3 Edge y A3 High
    • ACCELERATOR_OPTIMIZED_A3_MEGA para los recursos de tipo de máquina A3 Mega
    • COMPUTE_OPTIMIZED para recursos de tipo de máquina C2
    • COMPUTE_OPTIMIZED_C2D para recursos de tipo de máquina C2D
    • COMPUTE_OPTIMIZED_C3 para recursos de tipo de máquina C3
    • COMPUTE_OPTIMIZED_C3D para recursos de tipo de máquina C3D
    • GENERAL_PURPOSE para recursos de tipo de máquina N1
    • GENERAL_PURPOSE_N2 para recursos de tipo de máquina N2
    • GENERAL_PURPOSE_N2D para recursos de máquinas N2D
    • GRAPHICS_OPTIMIZED para recursos de tipo de máquina G2
    • MEMORY_OPTIMIZED_M3 para recursos de tipo de máquina M3
    • STORAGE_OPTIMIZED_Z3 para recursos de tipo de máquina Z3

  • COMMITTED_VCPUS: el número de vCPUs que quieres incluir en tu compromiso. El número debe ser un entero positivo.

  • COMMITTED_MEMORY: la cantidad de memoria, en MB, que quieres incluir en tu compromiso. Por ejemplo, 10240MB.

  • COMMITTED_LOCAL_SSD: la cantidad, en GB, de almacenamiento SSD local que quieres incluir en tu compromiso. Cada disco SSD local tiene 375 GB.

  • COMMITTED_ACCELERATOR_COUNT: el número de GPUs que quieres incluir en tu compromiso.

  • COMMITTED_ACCELERATOR_TYPE: el tipo de GPU que quieres incluir en tu compromiso.

  • CUSTOM_END_DATE: opcional. Una fecha de finalización personalizada para tu periodo, que debe tener el formato YYYY-MM-DD. Por ejemplo, para especificar una fecha de finalización personalizada del 20 de abril del 2024, debe usar el formato 2024-04-20.

  • END_TIME: 00:00 (hora del Pacífico de EE. UU. y Canadá, UTC-8 o UTC-7), como diferencia con el tiempo universal coordinado (UTC). Especifique este valor solo si ha indicado una fecha de finalización personalizada para su compromiso. Se debe utilizar uno de los valores indicados a continuación.

    • Durante el horario de verano: 07:00:00
    • En otros momentos: 08:00:00
  • RESERVATION_URLs: lista separada por comas de las URLs de las reservas que quieras asociar al compromiso. Por ejemplo, para adjuntar dos reservas, res-1 y res-2, especifica lo siguiente:

    "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/example-res-1",
    "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-c/reservations/example-res-2"
    

Ejemplo: comprar una confirmación asociando reservas

Supongamos que tienes dos reservas, res-01 y res-02, en las zonas us-central1-a y us-central1-b del proyecto myproject. Supongamos que estas reservas tienen una capacidad combinada de 4 GPUs NVIDIA P100 y 4 discos SSD locales. Para comprar un nuevo compromiso en la región us-central1 de este proyecto para estas GPUs y discos SSD locales, y para usar estas reservas como reservas adjuntas, haz la siguiente solicitud POST. Ten en cuenta que el compromiso de ejemplo también contiene vCPUs y memoria.

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments

{
  "name": "commitment-01",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE"
  "resources":
  [
    {
      "amount": "96",
      "type": "VCPU"
    },
    {
      "amount": "638976",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-p100",
      "amount": "4",
      "type": "ACCELERATOR"
    },
    {
      "amount": "1536000",
      "type": "LOCAL_SSD"
    }
  ],
  "existingReservations":
  [
    "https://www.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/reservations/res-01",
    "https://www.googleapis.com/compute/v1/projects/my-project/zone/us-central1-b/reservations/res-02"
  ]
}

Crea reservas para adjuntarlas

Puedes crear tus reservas asociadas al comprar tu compromiso mediante la Google Cloud consola, la CLI de Google Cloud o REST.

Consola

Antes de comprar un compromiso mediante la Google Cloud consola, selecciona el proyecto que quieras usar para comprar el compromiso. Si la opción de compartir DUCs está habilitada en una cuenta de facturación de Cloud, puedes comprar la confirmación de uso con cualquier proyecto de esa cuenta. Después de seleccionar el proyecto, haz lo siguiente:

  1. En la Google Cloud consola, ve a la página Descuentos por compromiso de uso.

    Ir a Descuentos por compromiso de uso

  2. Para comprar un compromiso, haz clic en Comprar compromiso. Se abrirá la página Compra un descuento por uso confirmado y se mostrará la pestaña Hardware.

  3. En el campo Nombre, introduce un nombre para tu compromiso.

  4. En el campo Región, selecciona la región en la que quieras comprometerte a usar recursos de Compute Engine.

  5. En el campo Tipo de compromiso, selecciona la serie de familias de máquinas de los recursos comprometidos. Los siguientes tipos de compromiso ofrecen opciones para GPUs, discos SSD locales o ambos:

    • A2 optimizada para aceleradores para recursos de tipo de máquina A2
    • A3 optimizada para aceleradores para recursos de tipo de máquina A3 Edge y A3 High
    • A3 Mega optimizada para aceleradores para recursos de tipo de máquina A3 Mega
    • C2 optimizado para la computación para recursos de tipo de máquina C2
    • C2D optimizado para la computación para recursos de tipo de máquina C2D
    • C3 de uso general para recursos de tipo de máquina C3
    • Uso general C3D para recursos de tipo de máquina C3D
    • N1 de uso general para recursos de tipo de máquina N1
    • N2 de uso general para recursos de tipo de máquina N2
    • N2D de uso general para recursos de máquinas N2D
    • G2 optimizada para gráficos para recursos de tipo de máquina G2
    • M3 con memoria optimizada para recursos de tipo de máquina M3
    • Z3 con almacenamiento optimizado para recursos de tipo de máquina Z3

  6. En Duración, elige 1 año o 3 años como plazo de tu compromiso.

  7. En el campo Cores (Núcleos), introduce el número de vCPUs que quieras asignar.

  8. En el campo Memoria, introduce la cantidad de memoria que quieras asignar en GB.

  9. Para confirmar las GPUs, en la sección GPUs (GPUs), haga clic en Add GPU (Añadir GPU) y, a continuación, siga estos pasos:

    1. En el campo Tipo de GPU, selecciona el tipo de GPU.
    2. En el campo Número de GPUs, introduce el número de GPUs.
    3. Opcional: Si tu modelo de GPU es compatible con estaciones de trabajo virtuales NVIDIA RTX para cargas de trabajo de gráficos y tienes previsto ejecutar cargas de trabajo que utilizan un gran número de gráficos, selecciona la casilla Habilitar estación de trabajo virtual (NVIDIA GRID).
  10. Para confirmar el uso de discos SSD locales, en la sección SSD locales, haz clic en Añadir SSD y, a continuación, en el campo Número de SSDs, especifica el número de discos.

  11. Para crear una reserva y adjuntarla al compromiso, en el campo Reservas, selecciona Crear reservas y, a continuación, haz lo siguiente. Repite este paso con cada reserva que quieras crear y adjuntar.

    1. Haz clic en Añadir reserva. Aparecerá la sección Nueva reserva.
    2. En el campo Nombre, introduce un nombre para la reserva adjunta.
    3. En el campo Región, selecciona la misma región que tu compromiso.
    4. En el campo Zona, selecciona la zona en la que quieras reservar tus recursos.
    5. En la sección Tipo de uso compartido, especifique cómo quiere compartir esta reserva de una de las siguientes formas:

      • Para crear una reserva de un solo proyecto, selecciona Local.
      • Para crear una reserva que se comparta con varios proyectos, selecciona Compartido. A continuación, para especificar los proyectos con los que quieres compartir esta reserva, haz clic en Añadir proyectos y, a continuación, selecciona los proyectos que quieras de la organización del proyecto actual.
    6. En el campo Uso con instancia de VM, selecciona cómo quieres que las VMs consuman tu reserva de una de las siguientes formas:

      • Para permitir que las VMs con propiedades coincidentes consuman automáticamente esta reserva, haga clic en Usar reserva automáticamente (opción predeterminada).
      • Para consumir los recursos de esta reserva solo al crear VMs con propiedades coincidentes que se dirijan específicamente a esta reserva por nombre, haz clic en Seleccionar reserva específica.
    7. En la sección Detalles del recurso, haga lo siguiente:

      1. En el campo Número de instancias de máquina virtual, introduce el número de instancias de máquina virtual que quieras reservar.
      2. En la sección Configuración de la máquina, especifica las propiedades de tus VMs reservadas de una de las siguientes formas:

        1. Para especificar las propiedades de tus VMs mediante una plantilla de instancia, selecciona Usar plantilla de instancia.

          En el campo Plantilla de instancia, selecciona una plantilla de instancia que especifique la misma serie de familias de máquinas que tu compromiso. Si seleccionas una plantilla de instancia regional, la región de esa plantilla también debe coincidir con la región especificada en tu compromiso.

        2. Para especificar manualmente las propiedades de tus VMs, selecciona Seleccionar tipo de máquina y, a continuación, haz lo siguiente:

          1. Selecciona la familia de máquinas que se aplique a la serie de máquinas que hayas especificado en el compromiso:

            • Uso general para series de máquinas de uso general
            • Optimizadas para la computación para series de máquinas optimizadas para la computación
            • Con memoria optimizada para series de máquinas con memoria optimizada
            • GPUs para series de máquinas optimizadas para aceleradores
          2. En la tabla que tiene la columna Serie, selecciona la misma serie de máquinas que especificaste para el compromiso.

          3. En el campo Tipo de máquina, especifica un tipo de máquina predefinido o personalizado de una de las siguientes formas:

            1. Para elegir un tipo de máquina predefinido, selecciona Predefinido y, a continuación, el tipo de máquina que quieras.
            2. Para elegir un tipo de máquina personalizado, selecciona Personalizado y, a continuación, especifica los núcleos y la memoria que quieras.
          4. Para especificar una plataforma de CPU mínima, GPUs o ambas, despliega el menú Plataforma de CPU y GPU y haz lo siguiente:

            1. Opcional: Para especificar una plataforma de CPU mínima, selecciona una opción en la lista Plataforma de CPU.
            2. Opcional: Para reservar GPUs, haz clic en Añadir GPU. A continuación, en los campos Tipo de GPU y Número de GPUs, selecciona el tipo y el número de GPUs de cada VM.

          5. Para reservar discos SSD locales, sigue estos pasos:

            1. En el campo Número de discos, selecciona el número de discos SSD locales que quieras para cada VM.
            2. En el campo Tipo de interfaz, selecciona la interfaz de los discos SSD locales.
    8. Para terminar de especificar las propiedades de esta reserva, haga clic en Hecho.

  12. Para terminar de comprar tu compromiso con las reservas asociadas, haz lo siguiente:

    1. Haz clic en Comprar.
    2. En el cuadro de diálogo Comprar un descuento por compromiso de uso, si estás de acuerdo con los términos específicos del servicio, haz clic de nuevo en Comprar.

gcloud

Para crear tus reservas asociadas al comprar tu compromiso, ejecuta el comando gcloud compute commitments create.

En función de si quieres adjuntar una o varias reservas, ejecuta el comando de una de las siguientes formas:

  • Para crear y adjuntar una sola reserva a tu compromiso, define las propiedades de la reserva adjunta ejecutando el siguiente comando:

    gcloud compute commitments create COMMITMENT_NAME \
        --region=REGION \
        --project=PROJECT_ID \
        --plan DURATION \
        --type COMMITMENT_TYPE
        --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \
        --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \
        --custom-end-time=CUSTOM_END_DATE \
        --reservation=RESERVATION_NAME \
        --reservation-zone=RESERVATION_ZONE \
        --machine-type=RESERVED_MACHINE_TYPE \
        --require-specific-reservation=REQUIRE_SPECIFIC_RESERVATION_VALUE \
        --vm-count=NUMBER_OF_RESERVED_VMs \
        --accelerator=type=RESERVED_ACCELERATOR_TYPE,count=RESERVED_ACCELERATOR_COUNT \
        --local-ssd=interface=INTERFACE_1,size=375 \
        --local-ssd=interface=INTERFACE_2,size=375 \
        --minimum-cpu-platform=MINIMUM_CPU_PLATFORM \
        --share-setting=SHARE_SETTING \
        --share-with=CONSUMER_PROJECT_ID_1,CONSUMER_PROJECT_ID_2
    
  • Para crear y adjuntar varias reservas a tu compromiso, define las propiedades de la reserva mediante un archivo YAML y, a continuación, especifica ese archivo YAML en el comando que uses para comprar tu compromiso. También puedes usar este método de archivo YAML para crear y asociar una sola reserva a tu compromiso. Para crear reservas asociadas con este método, siga estos pasos:

    1. Crea el archivo YAML en el directorio actual y especifica la configuración que quieras para cada reserva adjunta. Por ejemplo, para especificar la configuración de una reserva compartida con dos proyectos que especifique GPUs, dos discos SSD locales y una plataforma de CPU mínima, incluye el siguiente texto en tu archivo YAML:

      - reservation: RESERVATION_NAME
        reservation_zone: RESERVATION_ZONE
        require_specific_reservation: REQUIRE_SPECIFIC_RESERVATION_VALUE
        vm_count: NUMBER_OF_RESERVED_VMs
        machine_type: RESERVED_MACHINE_TYPE
        accelerator:
        - count: RESERVED_ACCELERATOR_COUNT
          type: RESERVED_ACCELERATOR_TYPE
        localssd:
        - interface: INTERFACE_1
          size: 375
        - interface: INTERFACE_2
          size: 375
        project: OWNER_PROJECT_ID
        minimum-cpu-platform: MINIMUM_CPU_PLATFORM
        share-setting: SHARE_SETTING
        share-with:
        - CONSUMER_PROJECT_ID_1
        - CONSUMER_PROJECT_ID_2
      
      

      Para especificar la configuración de varias reservas, repite estas propiedades para cada reserva que quieras crear. Puedes adjuntar a tu compromiso tantas reservas como quieras.

    2. Ejecuta el comando gcloud compute commitments create e incluye la marca --reservation-from-file.

      gcloud compute commitments create COMMITMENT_NAME \
          --region REGION \
          --project PROJECT_ID \
          --plan DURATION \
          --type COMMITMENT_TYPE \
          --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \
          --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \
          --reservations-from-file=YAML_FILE
      

Sustituye lo siguiente por las propiedades correspondientes del compromiso y las reservas asociadas:

Compromiso

  • COMMITMENT_NAME: el nombre del compromiso.
  • REGION: la región en la que se encuentra el compromiso.
  • PROJECT_ID: el ID del proyecto en el que quieres comprar el compromiso con las reservas asociadas.
  • DURATION: la duración del compromiso, 12-month o 36-month.
  • CUSTOM_END_DATE: opcional. Una fecha de finalización personalizada para el plazo, que debe tener el formato YYYY-MM-DD. Por ejemplo, para especificar una fecha de finalización personalizada del 20 de abril del 2024, debe usar el formato 2024-04-20.
  • COMMITMENT_TYPE: el tipo de compromiso. Los siguientes tipos de compromiso ofrecen opciones para GPUs, discos SSD locales o ambos:

    • accelerator-optimized para recursos de tipo de máquina A2
    • accelerator-optimized-a3 para los recursos de los tipos de máquinas A3 Edge y A3 High
    • accelerator-optimized-a3-mega para los recursos de tipo de máquina A3 Mega
    • compute-optimized para recursos de tipo de máquina C2
    • compute-optimized-c2d para recursos de tipo de máquina C2D
    • compute-optimized-c3 para recursos de tipo de máquina C3
    • compute-optimized-c3d para recursos de tipo de máquina C3D
    • general-purpose para recursos de tipo de máquina N1
    • general-purpose-n2 para recursos de tipo de máquina N2
    • general-purpose-n2d para recursos de máquinas N2D
    • graphics-optimized para recursos de tipo de máquina G2
    • memory-optimized-m3 para recursos de tipo de máquina M3
    • storage-optimized-z3 para recursos de tipo de máquina Z3

  • COMMITTED_VCPUS: el número de vCPUs que quieres incluir en tu compromiso. El número debe ser un entero positivo.

  • COMMITTED_MEMORY: la cantidad de memoria que quieres incluir en tu compromiso, en MB o GB. Por ejemplo, 10GB o 10240MB. Si no especificas ninguna unidad, Compute Engine usará GB.

  • COMMITTED_LOCAL_SSD: la cantidad, en GB, de almacenamiento SSD local que quieres incluir en tu compromiso. Cada disco SSD local tiene 375 GB.

  • COMMITTED_ACCELERATOR_COUNT: el número de GPUs que quieres incluir en tu compromiso.

  • COMMITTED_ACCELERATOR_TYPE: el tipo de GPU que quieres incluir en tu compromiso.

  • YAML_FILE: ruta al archivo YAML que contiene la configuración de las reservas adjuntas.

Reservas asociadas

  • RESERVATION_NAME: el nombre de la reserva adjunta.
  • RESERVATION_ZONE: la zona de la reserva adjunta.
  • REQUIRE_SPECIFIC_RESERVATION_VALUE: especifica si la reserva adjunta es una reserva orientada a un público específico (true o false). Para obtener más información sobre las reservas específicas, consulta el artículo Cómo funcionan las reservas.
  • NUMBER_OF_RESERVED_VMS: número de VMs que quieres reservar en la reserva adjunta.
  • RESERVED_MACHINE_TYPE: el tipo de máquina que quieras para las VMs de la reserva adjunta.

    • En el caso de los tipos de máquinas predefinidos, usa el formato MACHINE_FAMILY-standard-CPUS; por ejemplo, n2-standard-4.
    • En el caso de los tipos de máquina personalizados, usa el formato MACHINE_FAMILY-custom-CPUS-MEMORY; por ejemplo, n2-custom-4-5120. Para ver una lista completa de las restricciones, consulte las especificaciones de los tipos de máquinas personalizadas.

      Haz los cambios siguientes:

      • MACHINE_FAMILY: la familia de tipos de máquinas. Por ejemplo, especifica n2 para las VMs N2.
      • CPUS: el número de vCPUs.
      • MEMORY: la memoria total de una máquina virtual reservada. La memoria debe ser un múltiplo de 256 MB y debe proporcionarse en MB. Por ejemplo, para crear una máquina virtual N2 con 4 vCPUs y 5 GB de memoria (5120 MB), usa n2-custom-4-5120.
  • RESERVED_ACCELERATOR_COUNT: número de GPUs que quieres añadir por VM en la reserva adjunta.

  • RESERVED_ACCELERATOR_TYPE: el tipo de acelerador que quieras añadir en la reserva adjunta.

  • INTERFACE_1 y INTERFACE_2: el tipo de interfaz que quieres que usen los discos SSD locales de cada VM reservada. Las opciones válidas son scsi y nvme. Cada disco SSD local tiene 375 GB. Repite el parámetro local_ssd por cada disco SSD local que quieras añadir. Puedes especificar hasta 24 discos SSD locales.

  • OWNER_PROJECT_ID: el ID del proyecto en el que quieres comprar el compromiso con la reserva adjunta. Especifica este campo si quieres compartir tu reserva adjunta en varios proyectos de consumidor.

  • MINIMUM_CPU_PLATFORM: la plataforma de CPU mínima que quieres especificar para la reserva adjunta.

  • SHARE_SETTING: el tipo de uso compartido de la reserva adjunta. Especifica este campo con el valor projects si quieres compartir la reserva adjunta en varios proyectos de consumidor. Excluye este campo si quieres crear una reserva de un solo proyecto.

  • CONSUMER_PROJECT_ID_1 y CONSUMER_PROJECT_ID_2: los IDs de los proyectos que pueden compartir esta reserva, por ejemplo, project-1 y project-2. Puedes incluir hasta 100 proyectos de consumidor. Estos proyectos deben pertenecer a la misma organización que el proyecto propietario. No incluyas el ID del proyecto en el que creas esta reserva, ya que ese proyecto puede usarla de forma predeterminada. Excluya estos campos si quiere crear una reserva para un solo proyecto.

Compute Engine crea el compromiso y las reservas asociadas solo si hay suficientes recursos del tipo de máquina especificado en la zona de destino y cuota suficiente en el momento de tu solicitud. Si la compra se ha realizado correctamente, verás un mensaje similar al siguiente:

Created[https://www.googleapis.com/compute/v1/projects/your-project/regions/your-region/commitments/your-commitment-name]

Ejemplos de compra de compromisos creando reservas nuevas para adjuntar

En los siguientes ejemplos de situaciones y comandos se muestra cómo puedes comprar un compromiso de uso de GPUs, discos SSD locales o ambos creando nuevas reservas para adjuntar a ese compromiso.

Ejemplo 1: Comprar un compromiso para GPUs adjuntando una sola reserva nueva

Supongamos que quieres comprar un compromiso commitment-01 en la región us-central1 que incluya 4 GPUs NVIDIA V100. Quieres crear una reservation-01reserva nueva como reserva adjunta para esas GPUs. Supongamos que también quieres especificar que Compute Engine use esas GPUs reservadas en dos máquinas virtuales n1-standard-32 de la zona us-central1-a. Para comprar este compromiso de ejemplo con su reserva asociada, ejecuta el siguiente comando:

gcloud compute commitments create commitment-01 \
    --region=us-central1 \
    --project=myproject \
    --resources=vcpu=96,memory=624GB \
    --resources-accelerator=type=nvidia-tesla-v100,count=4 \
    --plan 12-month \
    --reservation=reservation-01 \
    --reservation-zone=us-central1-a \
    --machine-type=n1-standard-32 \
    --accelerator=type=nvidia-tesla-v100,count=2 \
    --vm-count=2

Ejemplo 2: Comprar un compromiso para GPUs sin comprometerse a usar vCPUs ni memoria

Para confirmar y reservar GPUs y discos SSD locales sin confirmar vCPUs ni memoria, especifica 0 como valor de las cantidades de vCPU y memoria. Por ejemplo, supongamos que quieres comprar un compromiso commitment-02 para una sola GPU NVIDIA P4 en la región us-west2. También quieres crear una reserva como reserva adjunta y especificar que Compute Engine use la GPU reservada en una máquina virtual n1-standard-2 de la zona us-west2-b. Para comprar este compromiso de ejemplo con su reserva adjunta, ejecuta el siguiente comando:

gcloud compute commitments create commitment-02 \
    --region=us-west2 \
    --project=myproject \
    --resources=vcpu=0,memory=0 \
    --resources-accelerator=type=nvidia-tesla-p4,count=1 \
    --plan 12-month \
    --reservation=reservation-01 \
    --reservation-zone=us-west2-b \
    --machine-type=n1-standard-2 \
    --accelerator=type=nvidia-tesla-p4,count=1 \
    --vm-count=1

Ejemplo 3: Comprar una confirmación de GPUs y discos SSD locales adjuntando varias reservas nuevas

Supongamos que quieres comprar una confirmación commitment-03 para 1 GPU NVIDIA V100 y 2 discos SSD locales en la región us-central1. También quieres crear y adjuntar dos reservas en la zona us-central1-a. En la primera reserva, res-01, quieres reservar 1 VM n1-standard-2 con 1 GPU. Quieres que res-01 sea una reserva orientada, lo que significa que debes orientar específicamente esa reserva por nombre para usar sus VMs reservadas. En la segunda reserva, res-02, quieres reservar 1 VM n1-standard-8 con 2 tipos de discos SSD locales conectados.

Para comprar este compromiso de ejemplo con las reservas asociadas, primero crea el archivo YAML con las propiedades de ambas reservas.

- reservation: res-01
  reservation_zone: us-central1-a
  require_specific_reservation: true
  vm_count: 1
  machine_type: n1-standard-2
  accelerator:
  - count: 1
    type: nvidia-tesla-v100
- reservation: res-02
  reservation_zone: us-central1-a
  vm_count: 1
  machine_type: n1-standard-8
  local_ssd:
  - interface: scsi
    size: 375
  - interface: nvme
    size: 375

Una vez que hayas creado el archivo YAML, ejecuta el siguiente comando para terminar de comprar el compromiso con las reservas asociadas. Ten en cuenta que el compromiso de ejemplo también contiene recursos de vCPU y de memoria.

gcloud compute commitments create commitment-03 \
    --region=us-central1 \
    --project=myproject \
    --resources=vcpu=96,memory=624,local-ssd=750 \
    --resources-accelerator=type=nvidia-tesla-v100,count=1 \
    --plan 12-month \
    --reservations-from-file=YAML_FILE

REST

Para crear las reservas asociadas al comprar tu contrato, haz una solicitud POST al método regionCommitments.insert. En tu solicitud, incluye el campo reservations para definir una lista de todas las reservas nuevas que quieras crear y adjuntar. Puedes adjuntar a tu compromiso tantas reservas como quieras.

  • Para crear una reserva especificando manualmente todas las propiedades de la máquina virtual, incluya el campo instanceProperties y excluya el campo sourceInstanceTemplate.

    Por ejemplo, para especificar manualmente la configuración de una reserva compartida con dos proyectos que especifica GPUs, dos discos SSD locales y una plataforma de CPU mínima, haz la siguiente solicitud:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments
    
    {
    "name": "COMMITMENT_NAME",
    "plan": "DURATION",
    "type": COMMITMENT_TYPE,
    "resources":
    [
      {
        "amount": "COMMITTED_VCPUS",
        "type": "VCPU"
      },
      {
        "amount": "COMMITTED_MEMORY",
        "type": "MEMORY"
      },
      {
        "acceleratorType": "COMMITTED_ACCELERATOR_TYPE",
        "amount": "COMMITTED_ACCELERATOR_COUNT",
        "type": "ACCELERATOR"
      }
      {
        "amount": "COMMITTED_LOCAL_SSD",
        "type": "LOCAL_SSD"
      }
    ],
    "customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ",
    "reservations":
    [
      {
        "name": "RESERVATION_NAME",
        "specificReservation":
        {
          "count": "NUMBER_OF_RESERVED_VMS",
          "instanceProperties":
          {
            "guestAccelerators":
            [
              {
                "acceleratorCount": "RESERVED_ACCELERATOR_COUNT",
                "acceleratorType": "RESERVED_ACCELERATOR_TYPE"
              }
            ],
            "localSsds":
            [
              {
                "diskSizeGb": "375",
                "interface": "RESERVED_INTERFACE_1"
              },
              {
                "diskSizeGb": "375",
                "interface": "RESERVED_INTERFACE_2"
              }
            ],
            "machineType": "RESERVED_MACHINE_TYPE",
            "minCpuPlatform": "MINIMUM_CPU_PLATFORM"
          }
        },
        "specificReservationRequired": REQUIRE_SPECIFIC_RESERVATION_VALUE",
        "zone": "RESERVED_ZONE",
        "shareSettings":
        {
          "shareType": "SPECIFIC_PROJECTS",
          "projectMap":
          {
            "CONSUMER_PROJECT_ID_1":
            {
              "projectId": "CONSUMER_PROJECT_ID_1"
            },
            "CONSUMER_PROJECT_ID_2":
            {
              "projectId": "CONSUMER_PROJECT_ID_2"
            }
          }
        }
      }
    ]
    }
    
    
  • Para crear una reserva especificando una plantilla de instancia, incluye el campo sourceInstanceTemplate y excluye el campo instanceProperties.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments
    
    {
    "name": "COMMITMENT_NAME",
    "plan": "DURATION",
    "type": COMMITMENT_TYPE,
    "resources":
    [
      {
        "amount": "COMMITTED_VCPUS",
        "type": "VCPU"
      },
      {
        "amount": "COMMITTED_MEMORY",
        "type": "MEMORY"
      },
      {
        "acceleratorType": "COMMITTED_ACCELERATOR_TYPE",
        "amount": "COMMITTED_ACCELERATOR_COUNT",
        "type": "ACCELERATOR"
      }
      {
        "amount": "COMMITTED_LOCAL_SSD",
        "type": "LOCAL_SSD"
      }
    ],
    "customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ",
    "reservations":
    [
      {
        "name": "RESERVATION_NAME",
        "specificReservation":
        {
          "count": "NUMBER_OF_RESERVED_VMS",
          "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME"
        },
        "specificReservationRequired": REQUIRE_SPECIFIC_RESERVATION_VALUE",
        "zone": "RESERVED_ZONE",
        "shareSettings":
        {
          "shareType": "SPECIFIC_PROJECTS",
          "projectMap":
          {
            "CONSUMER_PROJECT_ID_1":
            {
              "projectId": "CONSUMER_PROJECT_ID_1"
            },
            "CONSUMER_PROJECT_ID_2":
            {
              "projectId": "CONSUMER_PROJECT_ID_2"
            }
          }
        }
      }
    ]
    }
    
    

Sustituye lo siguiente por las propiedades correspondientes del compromiso y las reservas asociadas:

Compromiso

  • COMMITMENT_NAME: el nombre del compromiso.
  • REGION: la región en la que se encuentra el compromiso.
  • PROJECT_ID: el ID del proyecto en el que quieres comprar el compromiso con las reservas asociadas.
  • DURATION: la duración del compromiso, que puede ser TWELVE_MONTH o THIRTY_SIX_MONTH.
  • COMMITMENT_TYPE: el tipo de compromiso. Los siguientes tipos de compromiso ofrecen opciones para GPUs, discos SSD locales o ambos:

    • ACCELERATOR_OPTIMIZED para recursos de tipo de máquina A2
    • ACCELERATOR_OPTIMIZED_A3 para los recursos de los tipos de máquinas A3 Edge y A3 High
    • ACCELERATOR_OPTIMIZED_A3_MEGA para los recursos de tipo de máquina A3 Mega
    • COMPUTE_OPTIMIZED para recursos de tipo de máquina C2
    • COMPUTE_OPTIMIZED_C2D para recursos de tipo de máquina C2D
    • COMPUTE_OPTIMIZED_C3 para recursos de tipo de máquina C3
    • COMPUTE_OPTIMIZED_C3D para recursos de tipo de máquina C3D
    • GENERAL_PURPOSE para recursos de tipo de máquina N1
    • GENERAL_PURPOSE_N2 para recursos de tipo de máquina N2
    • GENERAL_PURPOSE_N2D para recursos de máquinas N2D
    • GRAPHICS_OPTIMIZED para recursos de tipo de máquina G2
    • MEMORY_OPTIMIZED_M3 para recursos de tipo de máquina M3
    • STORAGE_OPTIMIZED_Z3 para recursos de tipo de máquina Z3

  • COMMITTED_VCPUS: el número de vCPUs que quieres incluir en tu compromiso. El número debe ser un entero positivo.

  • COMMITTED_MEMORY: la cantidad de memoria, en MB, que quieres incluir en tu compromiso. Por ejemplo, 10240MB.

  • COMMITTED_LOCAL_SSD: la cantidad, en GB, de almacenamiento SSD local que quieres incluir en tu compromiso. Cada disco SSD local tiene 375 GB.

  • COMMITTED_ACCELERATOR_COUNT: el número de GPUs que quieres incluir en tu compromiso.

  • COMMITTED_ACCELERATOR_TYPE: el tipo de GPU que quieres incluir en tu compromiso.

  • CUSTOM_END_DATE: opcional. Una fecha de finalización personalizada para el plazo, que debe tener el formato YYYY-MM-DD. Por ejemplo, para especificar una fecha de finalización personalizada del 20 de abril del 2024, debe usar el formato 2024-04-20.

  • END_TIME: 00:00 (hora del Pacífico de EE. UU. y Canadá, UTC-8 o UTC-7), como diferencia con el tiempo universal coordinado (UTC). Especifique este valor solo si ha indicado una fecha de finalización personalizada para su compromiso. Se debe utilizar uno de los valores indicados a continuación.

    • Durante el horario de verano: 07:00:00
    • En otros momentos: 08:00:00

Reservas asociadas

  • RESERVATION_NAME: el nombre de la reserva adjunta.
  • RESERVATION_ZONE: la zona de la reserva adjunta.
  • REQUIRE_SPECIFIC_RESERVATION_VALUE: especifica si la reserva adjunta es una reserva orientada a un público específico (true o false). Para obtener más información sobre las reservas específicas, consulta el artículo Cómo funcionan las reservas.
  • NUMBER_OF_RESERVED_VMS: número de VMs que quieres reservar en la reserva adjunta.
  • RESERVED_MACHINE_TYPE: el tipo de máquina que quieras para las VMs de la reserva adjunta.

    • En el caso de los tipos de máquinas predefinidos, usa el formato MACHINE_FAMILY-standard-CPUS; por ejemplo, n2-standard-4.
    • En el caso de los tipos de máquina personalizados, usa el formato MACHINE_FAMILY-custom-CPUS-MEMORY; por ejemplo, n2-custom-4-5120. Para ver una lista completa de las restricciones, consulte las especificaciones de los tipos de máquinas personalizadas.

      Haz los cambios siguientes:

      • MACHINE_FAMILY: la familia de tipos de máquinas. Por ejemplo, especifica n2 para las VMs N2.
      • CPUS: el número de vCPUs.
      • MEMORY: la memoria total de una máquina virtual reservada. La memoria debe ser un múltiplo de 256 MB y debe proporcionarse en MB. Por ejemplo, para crear una máquina virtual N2 con 4 vCPUs y 5 GB de memoria (5120 MB), usa n2-custom-4-5120.
  • RESERVED_ACCELERATOR_COUNT: número de GPUs que quieres añadir por VM en la reserva adjunta.

  • RESERVED_ACCELERATOR_TYPE: el tipo de acelerador que quieras añadir en la reserva adjunta.

  • INTERFACE_1 y INTERFACE_2: el tipo de interfaz que quieres que usen los discos SSD locales de cada máquina virtual reservada. Las opciones válidas son scsi y nvme. Cada disco SSD local tiene 375 GB. Repite el parámetro localSsds por cada disco SSD local que quieras añadir. Puedes especificar hasta 24 discos SSD locales.

  • MINIMUM_CPU_PLATFORM: la plataforma de CPU mínima que quieres especificar para la reserva adjunta.

  • INSTANCE_TEMPLATE_NAME: el nombre de la plantilla de instancia que quieres usar para crear la reserva adjunta.

  • SHARE_SETTING: el tipo de uso compartido de la reserva adjunta. Especifica este campo con el valor SPECIFIC_PROJECTS si quieres compartir la reserva adjunta en varios proyectos de consumidor. Excluya este campo si quiere crear una reserva de un solo proyecto.

  • CONSUMER_PROJECT_ID_1 y CONSUMER_PROJECT_ID_2: los IDs de los proyectos que pueden compartir esta reserva. Por ejemplo, project-1 y project-2. Puedes incluir hasta 100 proyectos de consumidor. Estos proyectos deben pertenecer a la misma organización que el proyecto propietario. No incluyas el ID del proyecto en el que creas esta reserva, ya que ese proyecto puede usarla de forma predeterminada. Excluya estos campos si quiere crear una reserva de un solo proyecto.

Compute Engine crea el compromiso y las reservas asociadas solo si hay suficientes recursos del tipo de máquina especificado en la zona de destino y cuota suficiente en el momento de tu solicitud. Si la compra se ha realizado correctamente, Compute Engine devuelve el estado 200 para tu solicitud de la API REST.

Ejemplos de compra de compromisos creando reservas nuevas para adjuntar

En los siguientes ejemplos de situaciones y comandos se muestra cómo puedes comprar un compromiso de uso de GPUs, discos SSD locales o ambos creando nuevas reservas para adjuntar a ese compromiso.

Ejemplo 1: Comprar un compromiso para GPUs adjuntando una sola reserva nueva

Supongamos que quieres comprar un compromiso commitment-01 en la región us-central1 que incluya 4 GPUs NVIDIA V100. Quieres crear una reserva reservation-01 como reserva adjunta para esas GPUs. Supongamos que también quieres especificar que Compute Engine use esas GPUs reservadas en dos n1-standard-8 VMs de la zona us-central1-a. Para comprar este compromiso de ejemplo con su reserva asociada, haz la siguiente solicitud POST:

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments

{
  "name": "commitment-01",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE"
  "resources":
  [
    {
      "amount": "96",
      "type": "VCPU"
    },
    {
      "amount": "638976",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-v100",
      "amount": "4",
      "type": "ACCELERATOR"
    }
  ],
  "reservations":
  [
    {
      "name": "reservation-01",
      "specificReservation":
      {
        "count": "2",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 2,
              "acceleratorType": "nvidia-tesla-v100"
            }
          ],
          "machineType": "n1-standard-8"
        }
      },
      "specificReservationRequired": false,
      "zone": "us-central1-a"
    }
  ]
}

Ejemplo 2: Comprar un compromiso para GPUs sin comprometerse a usar vCPUs ni memoria

Para confirmar y reservar GPUs y discos SSD locales sin confirmar vCPUs ni memoria, especifica 0 como valor de las cantidades de vCPU y memoria. Por ejemplo, supongamos que quieres comprar un compromiso commitment-02 para una sola GPU NVIDIA P4 en la región us-west2. También quieres crear una reserva como reserva adjunta y especificar que Compute Engine use la GPU reservada en una máquina virtual n1-standard-2 de la zona us-west2-b. Para comprar esta confirmación de ejemplo con su reserva asociada, haz la siguiente solicitud POST:

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-west2/commitments

{
  "name": "commitment-02",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE",
  "resources":
  [
    {
      "amount": "0",
      "type": "VCPU"
    },
    {
      "amount": "0",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-p4",
      "amount": "4",
      "type": "ACCELERATOR"
    }
  ],
  "reservations":
  [
    {
      "name": "reservation-01",
      "specificReservation":
      {
        "count": "1",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 4,
              "acceleratorType": "nvidia-tesla-p4"
            }
          ],
          "machineType": "n1-standard-2"
        }
      },
      "specificReservationRequired": false,
      "zone": "us-west2-b"
    }
  ]
}

Ejemplo 3: Comprar una confirmación de GPUs y discos SSD locales adjuntando varias reservas nuevas

Supongamos que quieres comprar una confirmación commitment-03 para 1 GPU NVIDIA V100 y 2 discos SSD locales en la región us-central1. También quieres crear y adjuntar dos reservas en la zona us-central1-a. En la primera reserva, res-01, quieres reservar 1 VM n1-standard-2 con 1 GPU. Quieres que res-01 sea una reserva orientada, lo que significa que debes orientar específicamente esa reserva por nombre para usar sus VMs reservadas. En la segunda reserva, res-02, quieres reservar 1 VM n1-standard-8 con 2 tipos de discos SSD locales conectados. Para comprar este compromiso de ejemplo con las reservas asociadas, envía la siguiente solicitud POST. Ten en cuenta que el compromiso de ejemplo también contiene recursos de vCPU y memoria.

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments

{
  "name": "commitment-03",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE",
  "resources":
  [
    {
      "amount": "96",
      "type": "VCPU"
    },
    {
      "amount": "638976",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-v100",
      "amount": "1",
      "type": "ACCELERATOR"
    },
    {
      "amount": "768000",
      "type": "LOCAL_SSD"
    }
  ],
  "reservations":
  [
    {
      "name": "res-01",
      "specificReservation":
      {
        "count": "1",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 1,
              "acceleratorType": "nvidia-tesla-v100"
            }
          ],
          "machineType": "n1-standard-2"
        }
      },
      "specificReservationRequired": true,
      "zone": "us-central1-a"
    },
    {
      "name": "res-02",
      "specificReservation":
      {
        "count": "1",
        "instanceProperties":
        {
          "localSsds":
          [
            {
              "diskSizeGb": "375",
              "interface": "SCSI"
            },
            {
              "diskSizeGb": "375",
              "interface": "NVME"
            }
          ]
          "machineType": "n1-standard-8"
        }
      },
      "specificReservationRequired": false,
      "zone": "us-central1-a"
    }
  ]
}

Sustituir reservas asociadas a compromisos

Sustituye la reserva adjunta a tu compromiso por una nueva si quieres modificar los tipos y el número de VMs que usan tus recursos comprometidos.

La reserva de sustitución siempre será una reserva recién creada. Para sustituir una reserva adjunta, debes especificar las propiedades de la reserva que quieras usar como sustitución. A continuación, Compute Engine crea automáticamente una reserva con estas propiedades y la usa para sustituir la reserva adjunta. No puedes usar una reserva que ya tengas para sustituir la que has adjuntado.

Cambios permitidos

Cuando sustituyes una reserva adjunta a un compromiso por otra, puedes solicitar cualquiera de los siguientes cambios:

  • Puedes reservar VMs de otro tipo de máquina. Sin embargo, debes seguir reservando VMs de la misma serie de máquinas para seguir recibiendo descuentos por compromiso de uso por los recursos reservados.
  • Puedes cambiar el número de VMs que quieras reservar.
  • Puedes cambiar la cantidad de GPUs y discos SSD locales que se adjuntan por VM siempre que la cantidad total de GPUs y discos SSD locales reservados siga siendo la misma.
  • Puedes especificar que las reservas sustituidas sean de un solo proyecto (también llamadas locales en la consola Google Cloud ) o compartidas.

Requisitos

Cuando sustituyas la reserva adjunta a tu compromiso por otra, tu solicitud deberá cumplir todos los requisitos siguientes:

  • Solo puedes sustituir una reserva adjunta a la vez por otra. Para sustituir una reserva adjunta, elimina simultáneamente una reserva adjunta definiendo el número de VMs en 0 y define una nueva reserva adjunta que quieras sustituir.
  • La nueva reserva debe estar en el mismo proyecto que el compromiso.
  • La nueva reserva debe estar en la misma zona que la reserva eliminada.
  • La cantidad y los tipos de GPUs especificados en la nueva reserva deben coincidir con los de la reserva eliminada.
  • El número y los tipos de discos SSD locales especificados en la nueva reserva deben coincidir con los de la reserva eliminada.
  • Solo puedes cambiar hasta 100 máquinas virtuales por solicitud. Para hacer un cambio que afecte a más de 100 máquinas virtuales, divide el cambio en varias solicitudes más pequeñas o ponte en contacto con el Google Cloud equipo de Asistencia.

Tu solicitud de sustitución de una reserva también depende de la disponibilidad de capacidad en ese momento. Si no hay capacidad para una solicitud, esta falla y devuelve un error de disponibilidad de recursos, que puedes intentar resolver modificando o posponiendo la solicitud. Para obtener más información, consulta la documentación sobre cómo solucionar problemas de disponibilidad de recursos.

Si no se puede sustituir una reserva adjunta, la reserva adjunta y los recursos reservados no se verán afectados. Para conservar tu capacidad, espera a hacer los cambios correspondientes en tus máquinas virtuales hasta que se haya aceptado tu solicitud de sustitución de una reserva.

Pasos para sustituir una reserva adjunta

Puedes sustituir las reservas de un compromiso mediante la CLI de Google Cloud o REST.

gcloud

Para sustituir las reservas asociadas a compromisos, sigue estos pasos:

  1. Crea un archivo YAML en el directorio actual con las configuraciones de las siguientes reservas adjuntas:

    • La reserva actual que quieras sustituir.

      Para consultar los detalles de esta reserva, consulta Ver los detalles de una reserva.

    • La nueva reserva de sustitución.

    El contenido del archivo YAML es similar al siguiente:

    - reservation: CURRENT_RESERVATION_NAME
      reservation_zone: CURRENT_RESERVATION_ZONE
      vm_count: 0
      machine_type: CURRENT_RESERVATION_MACHINE_TYPE
      accelerator:
      - count: CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS
        type: CURRENT_RESERVATION_ACCELERATOR_TYPE
      local_ssd:
      - interface: CURRENT_RESERVATION_INTERFACE_1
        size: 375
      - interface: CURRENT_RESERVATION_INTERFACE_2
        size: 375
      project: CURRENT_RESERVATION_PROJECT_ID
      share_setting: CURRENT_RESERVATION_SHARE_SETTING
      share_with:
      - CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1
      - CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2
    - reservation: REPLACEMENT_RESERVATION_NAME
      reservation_zone: REPLACEMENT_RESERVATION_ZONE
      vm_count: REPLACEMENT_RESERVATION_NUMBER_OF_VMs
      machine_type: REPLACEMENT_RESERVATION_MACHINE_TYPE
      accelerator:
      - count: REPLACEMENT_RESERVATION_ACCELERATOR_COUNT
        type: REPLACEMENT_RESERVATION_ACCELERATOR_TYPE
      local_ssd:
      - interface: REPLACEMENT_RESERVATION_INTERFACE_1
        size: 375
      - interface: REPLACEMENT_RESERVATION_INTERFACE_2
        size: 375
      project: REPLACEMENT_RESERVATION_PROJECT_ID
      share_setting: REPLACEMENT_RESERVATION_SHARE_SETTING
      share_with:
      - REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1
      - REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2
    
    

    Sustituye lo siguiente por las propiedades correspondientes de las reservas actual y de sustitución:

    Reserva actual

    En la reserva actual, todas las propiedades siguientes deben ser exactamente las mismas que cuando la consultaste. Omita los campos de las propiedades que no tenga la reserva actual.

    • CURRENT_RESERVATION_NAME: el nombre de la reserva adjunta actual.
    • CURRENT_RESERVATION_ZONE: la zona de la reserva adjunta actual.
    • CURRENT_RESERVATION_MACHINE_TYPE: el tipo de máquina de la reserva adjunta actual.
    • CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS: el número de GPUs reservadas en la reserva adjunta actual.
    • CURRENT_RESERVATION_ACCELERATOR_TYPE: el tipo de acelerador reservado en la reserva adjunta actual.
    • CURRENT_RESERVATION_INTERFACE_1 y CURRENT_RESERVATION_INTERFACE_2: el tipo de interfaz que usa el disco SSD local de cada VM reservada en la reserva vinculada actual. Las opciones válidas son scsi y nvme. Cada disco SSD local tiene 375 GB. Repite el parámetro local_ssd para todos los discos SSD locales reservados.
    • CURRENT_RESERVATION_PROJECT_ID: el ID del proyecto actual que tiene el compromiso y la reserva adjunta. Especifica este campo si tu reserva adjunta actual se comparte entre varios proyectos de consumidor.
    • CURRENT_RESERVATION_SHARE_SETTING: El tipo de uso compartido de la reserva actual. Especifica este campo con el valor projects si la reserva adjunta actual se comparte entre varios proyectos de consumidor.
    • CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1 y CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2: los IDs de proyecto de los proyectos con los que compartes la reserva adjunta actual. Por ejemplo, project-1 y project-2.

    Reserva de sustitución

    En la reserva de sustitución, defina las siguientes propiedades como obligatorias. Asegúrese de que cumple todos los requisitos cuando especifique estas propiedades. Omite los campos adicionales que no quieras usar.

    • REPLACEMENT_RESERVATION_NAME: el nombre de la nueva reserva de sustitución.
    • REPLACEMENT_RESERVATION_ZONE: la zona de la nueva reserva de sustitución.
    • REPLACEMENT_RESERVATION_NUMBER_OF_VMS: el número de máquinas virtuales que quieres reservar en la nueva reserva de sustitución.
    • REPLACEMENT_RESERVATION_MACHINE_TYPE: el tipo de máquina que quieras para las VMs de tu nueva reserva de sustitución.

      • En el caso de los tipos de máquinas predefinidos, usa el formato MACHINE_FAMILY-standard-CPUS; por ejemplo, n2-standard-4.
      • En el caso de los tipos de máquina personalizados, usa el formato MACHINE_FAMILY-custom-CPUS-MEMORY; por ejemplo, n2-custom-4-5120. Para ver una lista completa de las restricciones, consulte las especificaciones de los tipos de máquinas personalizadas.

      Haz los cambios siguientes:

      • MACHINE_FAMILY: la familia de tipos de máquinas. Por ejemplo, especifica n2 para las VMs N2.
      • CPUS: el número de vCPUs.
      • MEMORY: la memoria total de una máquina virtual reservada. La memoria debe ser un múltiplo de 256 MB y debe proporcionarse en MB. Por ejemplo, para crear una máquina virtual N2 con 4 vCPUs y 5 GB de memoria (5120 MB), usa n2-custom-4-5120.
    • REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS: el número de GPUs que quieres añadir por VM en la reserva de sustitución.

    • REPLACEMENT_RESERVATION_ACCELERATOR_TYPE: el tipo de acelerador que quieras añadir en la reserva de sustitución.

    • REPLACEMENT_RESERVATION_INTERFACE_1 y REPLACEMENT_RESERVATION_INTERFACE_2: el tipo de interfaz que quieres que usen los discos SSD locales de cada VM reservada. Las opciones válidas son scsi y nvme. Cada disco SSD local tiene 375 GB. Repite el parámetro local_ssd por cada disco SSD local que quieras añadir. Puedes especificar hasta 24 discos SSD locales.

    • REPLACEMENT_RESERVATION_PROJECT_ID: el ID del proyecto actual que tiene el compromiso y la reserva adjunta. Especifica este campo si quieres compartir tu reserva de sustitución entre varios proyectos de consumidor.

    • REPLACEMENT_RESERVATION_SHARE_SETTING: el tipo de uso compartido de la reserva de sustitución. Especifica este campo con el valor projects si quieres compartir tu reserva de sustitución en varios proyectos de consumidor.

    • REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1 y REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2: los IDs de los proyectos que pueden compartir esta reserva, por ejemplo project-1,project-2. Puedes incluir hasta 100 proyectos de consumidor. Estos proyectos deben pertenecer a la misma organización que el proyecto propietario. No incluyas REPLACEMENT_RESERVATION_PROJECT_ID, ya que tiene permiso para consumir esta reserva de forma predeterminada.

  2. Ejecuta el comando gcloud beta compute commitments update-reservations y especifica la ruta al archivo YAML con la marca --reservations-from-file.

    gcloud beta compute commitments update-reservations COMMITMENT_NAME \
        --project= PROJECT_ID \
        --region= REGION \
        --reservations-from-file= YAML_FILE
    

    Haz los cambios siguientes:

    • COMMITMENT_NAME: el nombre del compromiso con la reserva asociada.
    • PROJECT_ID: el ID de proyecto del compromiso con la reserva adjunta.
    • REGION: la región en la que se encuentra el compromiso.
    • YAML_FILE: ruta al archivo YAML que contiene la configuración de las reservas actuales y de sustitución.

Ejemplo de sustitución de una reserva asociada a un compromiso

Para demostrarlo, en esta sección se muestra un ejemplo de compromiso con una reserva adjunta y cómo sustituir la reserva adjunta de ejemplo.

Ejemplo de compromiso con una reserva asociada

Por ejemplo, supongamos que quieres actualizar las reservas asociadas a la confirmación my-commitment-with-reservations, que se compró con el siguiente comando:

  gcloud beta compute commitments create my-commitment-with-reservations \
      --region=asia-east1 \
      --resources=vcpu=16,memory=60GB,local-ssd=3000 \
      --resources-accelerator=type=nvidia-tesla-p100,count=4 \
      --plan=12-month \
      --type=general-purpose \
      --reservations-from-file=one-reservation.yaml

En este ejemplo, supongamos que, cuando se ejecutó este comando, one-reservation.yaml era un archivo del directorio actual con el siguiente contenido, que define una reserva adjunta llamada res-1.

  - reservation: res-1
    reservation_zone: asia-east1-a
    vm_count: 4
    machine_type: n1-standard-4
    accelerator:
    - count: 1
      type: nvidia-tesla-p100
    local_ssd:
    - interface: scsi
      size: 375
    - interface: scsi
      size: 375

Este my-commitment-with-reservations compromiso y la reserva res-1 adjunta han dado lugar a los siguientes recursos comprometidos y reservados:

Tipo de recurso Recursos en la confirmación
(my-commitment-with-reservations)
Recursos de la reserva adjunta actual
(res-1)
Memoria y vCPUs 16 vCPUs y 60 GB 16 vCPUs y 60 GB
(4 VMs reservadas n1-standard-4)*
GPUs 4 GPUs P100 4 GPUs P100
(1 GPU P100 por VM, para 4 VMs)*
Discos SSD locales 3000 GB u 8 discos SSD locales 3000 GB u 8 discos SSD locales
(750 GB o 2 discos SSD locales por VM, para 4 VMs)*

* En concreto, la reserva adjunta de ejemplo, res-1, reserva 4 n1-standard-4 VMs, cada una con 1 GPU P100 y 2 discos SSD locales de tipo de interfaz scsi. El n1-standard-4 tipo de máquina usa 4 vCPUs y 15 GB por cada VM.

Sustituir la reserva de ejemplo adjunta

Supongamos que quieres sustituir la reserva adjunta res-1 por una nueva reserva adjunta res-2 y cambiar los recursos reservados por los siguientes:

Tipo de recurso Recursos en la confirmación
(my-commitment-with-reservations)
Recursos de la reserva adjunta actual
(res-1)
Recursos de la reserva de sustitución adjunta
(res-2)
Memoria y vCPUs 16 vCPUs y 60 GB 16 vCPUs y 60 GB
(4 VMs reservadas n1-standard-4)*
16 vCPUs y 60 GB
(2 VMs reservadas y compartidas n1-standard-8)
GPUs 4 GPUs P100 4 GPUs P100
(1 GPU P100 por VM, para 4 VMs)*
4 GPUs P100
(2 GPUs P100 por VM, para 2 VMs)
Discos SSD locales 3000 GB u 8 discos SSD locales 3000 GB u 8 discos SSD locales
(750 GB o 2 discos SSD locales por VM, para 4 VMs)*
3000 GB u 8 discos SSD locales
(1500 GB o 4 discos SSD locales por VM, para 2 VMs)*

* En concreto, la reserva adjunta de ejemplo, res-1, reserva 4 n1-standard-4 VMs, cada una con 1 GPU P100 y 2 discos SSD locales de tipo de interfaz scsi. El n1-standard-4 tipo de máquina usa 4 vCPUs y 15 GB por cada VM.

En concreto, la reserva vinculada de sustitución define res-2, que reserva 2 VMs n1-standard-8, cada una con 1 GPU P100 y 4 discos SSD locales de tipo de interfaz scsi. Además, res-2 se ha compartido con otros dos proyectos, project-1 y project-2, y es propiedad del proyecto actual, my-project. El tipo de máquina n1-standard-8 usa 8 vCPUs y 30 GB por cada VM.

Para sustituir la reserva adjunta res-1 por res-2 para el compromiso my-commitment-with-reservations, haz lo siguiente:

  1. Crea un archivo llamado two-reservations.yaml en el directorio actual. Este archivo debe contener lo siguiente:

    - reservation: res-1
      reservation_zone: asia-east1-a
      vm_count: 0
      machine_type: n1-standard-4
      accelerator:
      - count: 1
        type: nvidia-tesla-p100
      local_ssd:
      - interface: scsi
        size: 375
      - interface: scsi
        size: 375
    - reservation: res-2
      reservation_zone: asia-east1-a
      vm_count: 2
      machine_type: n1-standard-8
      accelerator:
      - count: 2
        type: nvidia-tesla-p100
      project: my-project
      share_setting: projects
      share_with:
      - project-1
      - project-2
      local_ssd:
      - interface: scsi
        size: 375
      - interface: scsi
        size: 375
      - interface: scsi
        size: 375
      - interface: scsi
        size: 375
    
  2. Ejecuta el siguiente comando:

    gcloud beta compute commitments update-reservations my-commitment-with-reservations \
        --region=asia-east1 \
        --reservations-from-file=two-reservations.yaml
    

REST

Para sustituir las reservas asociadas a compromisos, haz una solicitud POST con el método regionCommitments.updateReservations.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/COMMITMENT_ZONE/commitments/COMMITMENT_NAME/updateReservations

{
  "reservations":
  [
    {
      "name": "REPLACEMENT_RESERVATION_NAME",
      "specificReservation":
      {
        "count": "REPLACEMENT_RESERVATION_NUMBER_OF_VMS",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": "REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS",
              "acceleratorType": "REPLACEMENT_RESERVATION_ACCELERATOR_TYPE"
            }
          ],
          "localSsds":
          [
            {
              "diskSizeGb": "375",
              "interface": "REPLACEMENT_RESERVATION_INTERFACE_1"
            },
            {
              "diskSizeGb": "375",
              "interface": "REPLACEMENT_RESERVATION_INTERFACE_2"
            }
          ],
          "machineType": "REPLACEMENT_RESERVATION_MACHINE_TYPE"

        }
      },
      "zone": "REPLACEMENT_RESERVATION_ZONE",
      "shareSettings":
      {
        "shareType": "SPECIFIC_PROJECTS",
        "projectMap":
        {
          "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1":
          {
            "projectId": "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1"
          },
          "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2":
          {
            "projectId": "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2"
          }
         }
      }
    },
    {
      "name": "CURRENT_RESERVATION_NAME",
      "specificReservation":
      {
        "count": "0",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": "CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS",
              "acceleratorType": "CURRENT_RESERVATION_ACCELERATOR_TYPE"
            }
          ],
          "localSsds":
          [
            {
              "diskSizeGb": "375",
              "interface": "CURRENT_RESERVATION_INTERFACE_1"
            },
            {
              "diskSizeGb": "375",
              "interface": "CURRENT_RESERVATION_INTERFACE_2"
            }
          ],
          "machineType": "CURRENT_RESERVATION_MACHINE_TYPE"

        }
      },
      "zone": "CURRENT_RESERVATION_ZONE",
      "shareSettings":
      {
        "shareType": "SPECIFIC_PROJECTS",
        "projectMap":
        {
          "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1":
          {
            "projectId": "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1"
          },
          "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2":
          {
            "projectId": "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2"
          }
         }
      }
    }
  ]
}

Sustituye lo siguiente por las propiedades correspondientes del compromiso, la reserva actual y la reserva de sustitución:

Compromiso

  • COMMITMENT_NAME: el nombre del compromiso con la reserva asociada.
  • PROJECT_ID: el ID del proyecto del compromiso con la reserva asociada. También es el ID del proyecto de las reservas actuales y asociadas.
  • COMMITMENT_ZONE: la zona del compromiso con la reserva asociada.

Reserva actual

En la reserva actual, todas las propiedades siguientes deben ser exactamente las mismas que cuando la consultaste. Omita los campos de las propiedades que no se especifiquen en la reserva actual.

  • CURRENT_RESERVATION_NAME: el nombre de la reserva adjunta actual.
  • CURRENT_RESERVATION_ZONE: la zona de la reserva adjunta actual.
  • CURRENT_RESERVATION_MACHINE_TYPE: el tipo de máquina de la reserva adjunta actual.
  • CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS: el número de GPUs reservadas en la reserva adjunta actual.
  • CURRENT_RESERVATION_ACCELERATOR_TYPE: el tipo de acelerador reservado en la reserva adjunta actual.
  • CURRENT_RESERVATION_INTERFACE_1 y CURRENT_RESERVATION_INTERFACE_2: el tipo de interfaz que usan los discos SSD locales de cada VM reservada en la reserva adjunta actual. Las opciones válidas son scsi y nvme. Cada disco SSD local tiene 375 GB. Repite el parámetro localSsds para todos los discos SSD locales reservados.
  • CURRENT_RESERVATION_SHARE_SETTING: El tipo de uso compartido de la reserva actual. Especifica este parámetro con el valor projects si la reserva adjunta actual se comparte entre varios proyectos de consumidor.
  • CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1 y CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2: los IDs de proyecto de los proyectos con los que compartes la reserva adjunta actual, por ejemplo, project-1 y project-2.

Reserva de sustitución

En la reserva de sustitución, defina las siguientes propiedades como obligatorias. Asegúrese de que cumple todos los requisitos cuando especifique estas propiedades. Omite los campos adicionales que no quieras usar.

  • REPLACEMENT_RESERVATION_NAME: el nombre de la nueva reserva de sustitución.
  • REPLACEMENT_RESERVATION_ZONE: la zona de la nueva reserva de sustitución.
  • REPLACEMENT_RESERVATION_NUMBER_OF_VMS: el número de máquinas virtuales que quieres reservar en la nueva reserva de sustitución.
  • REPLACEMENT_RESERVATION_MACHINE_TYPE: el tipo de máquina que quieres para las VMs de tu nueva reserva de sustitución.

    • En el caso de los tipos de máquinas predefinidos, usa el formato MACHINE_FAMILY-standard-CPUS; por ejemplo, n2-standard-4.
    • En el caso de los tipos de máquina personalizados, usa el formato MACHINE_FAMILY-custom-CPUS-MEMORY; por ejemplo, n2-custom-4-5120. Para ver una lista completa de las restricciones, consulte las especificaciones de los tipos de máquinas personalizadas.

    Haz los cambios siguientes:

    • MACHINE_FAMILY: la familia de tipos de máquinas. Por ejemplo, especifica n2 para las VMs N2.
    • CPUS: el número de vCPUs.
    • MEMORY: la memoria total de una VM reservada. La memoria debe ser un múltiplo de 256 MB y debe proporcionarse en MB. Por ejemplo, para crear una VM N2 con 4 vCPUs y 5 GB de memoria (5120 MB), usa n2-custom-4-5120.
  • REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS: el número de GPUs que quieres añadir por VM en la reserva de sustitución.

  • REPLACEMENT_RESERVATION_ACCELERATOR_TYPE: el tipo de acelerador que quieres añadir en la reserva de sustitución.

  • REPLACEMENT_RESERVATION_INTERFACE_1 y REPLACEMENT_RESERVATION_INTERFACE_2: el tipo de interfaz que quieres que usen los discos SSD locales de cada VM reservada. Las opciones válidas son scsi y nvme. Cada disco SSD local tiene 375 GB. Repite el parámetro localSsds por cada disco SSD local que quieras añadir. Puedes especificar hasta 24 discos SSD locales.

  • REPLACEMENT_RESERVATION_SHARE_SETTING: El tipo de uso compartido de la reserva de sustitución. Especifique este parámetro con el valor projects si quiere compartir su reserva de sustitución en varios proyectos de consumidor.

  • REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1 y REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2: los IDs de los proyectos que pueden compartir esta reserva, por ejemplo project-1,project-2. Puedes incluir hasta 100 proyectos de consumidor. Estos proyectos deben pertenecer a la misma organización que el proyecto propietario. No incluyas PROJECT_ID, ya que tiene permiso para consumir esta reserva de forma predeterminada.

Ejemplo de sustitución de una reserva asociada a un compromiso

Para demostrarlo, en esta sección se muestra un ejemplo de compromiso con una reserva adjunta y cómo sustituir la reserva adjunta de ejemplo.

Ejemplo de compromiso con una reserva asociada

Por ejemplo, supongamos que quieres sustituir la reserva asociada res-1 por la confirmación my-commitment-with-reservations, que se compró haciendo la siguiente solicitud POST:

  POST https://compute.googleapis.com/compute/beta/projects/my-project/regions/asia-east1/commitments

  {
    "name": "my-commitment-with-reservations",
    "plan": "TWELVE_MONTH",
    "reservations":
    [
      {
        "name": "res-1",
        "specificReservation":
        {
          "count": "4",
          "instanceProperties":
          {
            "guestAccelerators":
            [
              {
                "acceleratorCount": "1",
                "acceleratorType": "nvidia-tesla-p100"
              }
            ],
            "localSsds":
            [
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              }
            ],
            "machineType": "n1-standard-4"
          }
        },
        "zone": "asia-east1-a"
      }
    ],
    "resources":
    [
      {
        "amount": "16",
        "type": "VCPU"
      },
      {
        "amount": "61440",
        "type": "MEMORY"
      },
      {
        "acceleratorType": "nvidia-tesla-p100",
        "amount": "4",
        "type": "ACCELERATOR"
      }
      {
        "amount": "3072000",
        "type": "LOCAL_SSD"
      }
    ],
    "type": "GENERAL_PURPOSE"
  }

Este my-commitment-with-reservations compromiso y la reserva res-1 adjunta han dado lugar a los siguientes recursos comprometidos y reservados:

Tipo de recurso Recursos en la confirmación
(my-commitment-with-reservations)
Recursos de la reserva adjunta actual
(res-1)
Memoria y vCPUs 16 vCPUs y 60 GB 16 vCPUs y 60 GB
(4 VMs reservadas n1-standard-4)*
GPUs 4 GPUs P100 4 GPUs P100
(1 GPU P100 por VM, para 4 VMs)*
Discos SSD locales 3000 GB u 8 discos SSD locales 3000 GB u 8 discos SSD locales
(750 GB o 2 discos SSD locales por VM, para 4 VMs)*

* En concreto, la reserva adjunta de ejemplo, res-1, reserva 4 n1-standard-4 máquinas virtuales, cada una con 1 GPU P100 y 2 discos SSD locales de tipo de interfaz scsi. El n1-standard-4 tipo de máquina usa 4 vCPUs y 15 GB por cada VM.

Sustituir la reserva de ejemplo adjunta

Supongamos que quieres sustituir la reserva adjunta res-1 por una nueva reserva adjunta res-2 y cambiar los recursos reservados por los siguientes:

Tipo de recurso Recursos en la confirmación
(my-commitment-with-reservations)
Recursos de la reserva adjunta actual
(res-1)
Recursos de la reserva de sustitución adjunta
(res-2)
Memoria y vCPUs 16 vCPUs y 60 GB 16 vCPUs y 60 GB
(4 VMs reservadas n1-standard-4)*
16 vCPUs y 60 GB
(2 VMs reservadas y compartidas n1-standard-8)
GPUs 4 GPUs P100 4 GPUs P100
(1 GPU P100 por VM, para 4 VMs)*
4 GPUs P100
(2 GPUs P100 por VM, para 2 VMs)
Discos SSD locales 3000 GB u 8 discos SSD locales 3000 GB u 8 discos SSD locales
(750 GB o 2 discos SSD locales por VM, para 4 VMs)*
3000 GB u 8 discos SSD locales
(1500 GB o 4 discos SSD locales por VM, para 2 VMs)*

* En concreto, la reserva adjunta de ejemplo, res-1, reserva 4 n1-standard-4 VMs, cada una con 1 GPU P100 y 2 discos SSD locales de tipo de interfaz scsi. El n1-standard-4 tipo de máquina usa 4 vCPUs y 15 GB por cada VM.

En concreto, la reserva vinculada de sustitución define res-2, que reserva 2 VMs n1-standard-8, cada una con 1 GPU P100 y 4 discos SSD locales de tipo de interfaz scsi. Además, res-2 se ha compartido con otros dos proyectos, project-1 y project-2, y es propiedad del proyecto actual, my-project. El tipo de máquina n1-standard-8 usa 8 vCPUs y 30 GB por cada VM.

Para sustituir la reserva res-1 adjunta por res-2 en el compromiso my-commitment-with-reservations, haz la siguiente solicitud POST mediante el método regionCommitments.updateReservations:

  POST https://compute.googleapis.com/compute/beta/projects/my-project/regions/asia-east1/commitments/my-commitment-with-reservations/updateReservations

  {
    "reservations":
    [
      {
        "name": "res-2",
        "specificReservation":
        {
          "count": "2",
          "instanceProperties":
          {
            "guestAccelerators":
            [
              {
                "acceleratorCount": 2,
                "acceleratorType": "nvidia-tesla-p100"
              }
            ],
            "localSsds":
            [
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              }
            ],
            "machineType": "n1-standard-8"
          }
        },
        "zone": "asia-east1-a"
      },
      {
        "name": "res-1",
        "specificReservation":
        {
          "count": "0",
          "instanceProperties":
          {
            "guestAccelerators":
            [
              {
                "acceleratorCount": 1,
                "acceleratorType": "nvidia-tesla-p100"
              }
            ],
            "localSsds":
            [
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              }
            ],
            "machineType": "n1-standard-4"
          }
        },
        "zone": "asia-east1-a"
      }
    ]
  }

Siguientes pasos