Crear una instancia de VM con un tipo personalizado de máquina

Compute Engine ofrece tipos predefinidos de máquinas que puedes usar cuando creas una instancia. Un tipo predefinido de máquina tiene una cantidad de CPU virtuales y memoria predeterminadas, y se cobran a un precio determinado como se describe en la página Todos los precios.

Si los tipos de máquina predefinidos no satisfacen tus necesidades, puedes crear una instancia con una configuración personalizada de hardware virtualizado. Específicamente, puedes crear una instancia con una cantidad de CPU virtuales y memoria personalizados mediante el uso efectivo de un tipo personalizado de máquina. Estos tipos de máquina están disponibles solo para tipos de máquina de uso general; es decir, cuando creas un tipo personalizado de máquina, implementas de forma efectiva un tipo personalizado de máquina de la familia de tipos de máquina N1 o N2.

Los tipos personalizados de máquinas son ideales para las siguientes situaciones:

  • Las cargas de trabajo no adecuadas para los tipos de máquina predefinidos disponibles
  • Las cargas de trabajo que requieren mayor memoria o poder de procesamiento, pero no todas las actualizaciones que proporciona el próximo nivel de tipo de máquinas

Antes de comenzar

Especificaciones

General

  • La memoria total para un tipo personalizado de máquina debe ser un múltiplo de 256 MB. Por ejemplo, no se admiten 6.9 GB, pero si 6.75 GB y 7 GB.

  • Si es más de 1, el recuento de CPU virtuales de la instancia debe ser par, como 2, 4, 6, 8, 10 y así sucesivamente.

  • Las instancias con tipos personalizados de máquinas tienen las mismas limitaciones de capacidad de disco persistente que las instancias con tipos predefinidos de máquinas.

  • Los tipos personalizados de máquinas están sujetos a los mismos límites de disco persistente que los tipos de máquina de uso general. En la actualidad, el tamaño máximo total del disco persistente para cada tipo de máquina es de 257 TB por instancia y la cantidad máxima de discos persistentes es 128.

Tipos personalizados de máquinas N1

  • La familia de tipos de máquina que elijas determinará la cantidad máxima de CPU virtuales permitida para un tipo personalizado de máquina. Esto es lo que puedes hacer en los tipos de máquina N1:

    • Si implementas en una zona que admite la plataforma de CPU Skylake, puedes crear tipos personalizados de máquinas con hasta 96 CPU virtuales.
    • Si implementas en zonas que admiten las plataformas de CPU Broadwell, Haswell o Ivy Bridge, puedes implementar tipos personalizados de máquinas con hasta 64 CPU virtuales.

    Para ver qué plataformas están disponibles en cada zona, consulta la tabla de regiones y zonas.

  • De forma predeterminada, la familia de tipos de máquina determina la memoria por CPU virtual que puedes seleccionar para un tipo personalizado de máquina. Para los tipos de máquina N1, selecciona entre 0.9 GB y 6.5 GB por CPU virtual, inclusive. Es posible obtener mayor cantidad de memoria si habilitas la memoria extendida.

Ejemplos de tipos de máquina no válidos

  • 1 CPU virtual, 0.2 GB de memoria total. No es válida porque la memoria total es menor que el mínimo de 0.9 para un tipo de máquina N1.
  • 1 CPU virtual, 0.9 GB de memoria total. No es válido porque la memoria total debe ser un múltiplo de 256 MB. Para 1 CPU virtual, usa un mínimo de 1,024 MB de memoria.

Ejemplos de tipos de máquina válidos

  • 32 CPU virtuales, 29 GB de memoria total. Es válido porque la cantidad total de CPU virtuales es par y la memoria total es un múltiplo de 256 MB. La cantidad de memoria por CPU virtual es 0.9 GB, que satisface el requisito mínimo.
  • 1 CPU virtual, 1 GB de memoria total. Es válido porque tiene una CPU virtual, que es el valor mínimo, y la memoria total es un múltiplo de 256 MB. La cantidad de memoria por CPU virtual también está dentro del rango aceptable de 0.9 GB a 6.5 GB por CPU virtual.

Tipos personalizados de máquinas N2

  • La familia de tipos de máquina que elijas determinará la cantidad máxima de CPU virtuales permitida para un tipo personalizado de máquina. Para los tipos de máquina N2, que solo admiten la plataforma Cascade Lake, puedes implementar tipos personalizados de máquinas con 2 a 80 CPU virtuales.

  • Las máquinas N2 solo están disponibles en determinadas zonas. Para obtener más información, consulta la página de regiones y zonas.

  • De forma predeterminada, la familia de tipos de máquina determina la memoria por CPU virtual que puedes seleccionar para un tipo personalizado de máquina. Para los tipos de máquinas N2, selecciona entre 0.5 GB y 8.0 GB por CPU virtual, inclusive. Es posible obtener mayor cantidad de memoria si habilitas la memoria extendida.

  • Si la instancia tiene un recuento de CPU virtuales que es de 32 o más, el recuento de CPU virtuales debe ser divisible por 4 de manera uniforme. Por ejemplo, 32, 36 y 40 CPU virtuales son todas válidas, pero 38 no.

Ejemplos de tipos de máquina no válidos

  • 2 CPU virtuales, 0.8 GB de memoria total. No es válida porque la memoria total es menor que el mínimo de 0.5 para un tipo de máquina N2.
  • 34 CPU virtuales, 34 GB de memoria total. No es válida porque la cantidad total de CPU virtuales no se puede dividir por 4.
  • 1 CPU virtual, 1024 MB de memoria. No es válida porque el recuento de CPU virtuales es demasiado pequeño. Los tipos personalizados de máquinas N2 requieren un mínimo de 2 CPU virtuales.

Ejemplos de tipos de máquina válidos

  • 36 CPU virtuales, 18 GB de memoria total. Es válido porque la cantidad total de CPU virtuales es par y la memoria total es un múltiplo de 256 MB. La cantidad de memoria por CPU virtual es 0.5 GB, que satisface el requisito mínimo. Debido a que la cantidad de CPU virtuales es superior a 32, la cantidad de CPU virtuales debe ser divisible por 4.
  • 2 CPU virtuales, 7 GB de memoria total. Es válido porque tiene dos CPU virtuales, que es el valor mínimo, y la memoria total es un múltiplo de 256 MB. La cantidad de memoria por CPU virtual también se encuentra dentro del rango aceptable de 0.5 GB y 8 GB por CPU virtual.

Precios

Google cobra por los tipos personalizados de máquinas en función de la cantidad de CPU virtuales y las horas de memoria que usa la instancia. Esto difiere de cómo se cobran los tipos predefinidos de máquina, por lo que te recomendamos que revises la página de precios antes de crear un tipo personalizado de máquina.

Las instancias que ejecutan un tipo personalizado de máquina están sujetas al mismo cargo mínimo de 1 minuto que cualquier otra instancia, pero los descuentos por uso continuo de los tipos personalizados de máquinas se calculan de manera diferente. A fin de obtener más información, consulta los descuentos por uso continuo para tipos personalizados de máquinas.

Expresa la memoria en GB o MB

En las herramientas y la documentación de Google Cloud Platform, la memoria del tipo de máquina se calcula en gigabytes (GB), donde 1 GB es 230 bytes. Esta unidad de medida también se conoce como gibibyte (GiB). Cuando conviertes la memoria de GB en MB, 1 GB es igual a 1024 MB.

En la API, siempre debes proporcionar la memoria en unidades de MB. Si usas la herramienta de línea de comandos de gcloud, es posible proporcionar la memoria total para una instancia en unidades de GB o MB. Sin embargo, la herramienta de gcloud espera que el valor de la memoria sea un número entero, por lo que no puedes proporcionar un valor flotante. Por ejemplo, para expresar 5.75 GB, convierte 5.75 GB en MB. En este caso, 5.75 GB es igual a 5,888 MB.

Crea una instancia con un tipo personalizado de máquina

Antes de crear una instancia, asegúrate de leer y comprender las especificaciones para crear un tipo personalizado de máquina.

Console

  1. Ve a la página Crear una instancia en Google Cloud Platform Console.

    Ir a la página Crear una instancia

  2. Selecciona la zona donde deseas alojar esta instancia. Esto también filtrará la lista de tipos de máquinas solo a los tipos disponibles en esa zona.
  3. En Configuración de la máquina, selecciona Propósito general.
  4. En el menú desplegable Generación, selecciona Primero para los tipos personalizados de máquinas N1 o Segundo para los tipos personalizados de máquinas N2.
  5. En el menú desplegable Tipo de máquina, selecciona Personalizado.
  6. Arrastra los controles deslizantes para elegir la cantidad de CPU virtuales y la cantidad de memoria de la instancia. Console mostrará un costo estimado para la instancia a medida que cambies la cantidad de CPU virtuales y la memoria.
  7. Guarda los cambios y continúa con el resto del proceso de creación.

gcloud

El comando gcloud para tipos personalizados de máquinas difiere de manera leve según la familia de tipos de máquina.

Para los tipos de máquina N1, usa el comando gcloud compute instances create y, además, incluye una de las siguientes opciones:

  • Las marcas --custom-cpu y --custom-memory
  • La marca --machine-type=custom-[NUMBER_OF_CPUS]-[NUMBER_OF_MB]

Por ejemplo, el siguiente comando crearía una instancia que ejecuta un tipo de máquina N1 con 4 CPU virtuales y 5 GB de memoria total:

gcloud compute instances create example-instance --custom-cpu 4 --custom-memory 5

Para los tipos de máquina N2, usa el comando gcloud beta compute instances create y, además, incluye una de las siguientes opciones:

  • Las marcas --custom-cpu, --custom-memory y --custom-vm-type
  • La marca --machine-type=n2-custom-[NUMBER_OF_CPUS]-[NUMBER_OF_MB]

Cuando uses la marca --custom-memory, especifica la cantidad total de memoria en GB o MB. La propiedad debe ser un número entero, por lo que si deseas especificar incrementos de 0.25 GB para la memoria, convierte ese valor en MB.

Para especificar un valor incremental, como 2.5 GB de memoria, convierte el valor en MB y proporciónalo seguido del sufijo MB. En el siguiente ejemplo, se crea una instancia que ejecuta un tipo de máquina N2:

gcloud beta compute instances create example-instance \
    --custom-cpu 6 --custom-memory 3072MB --custom-vm-type n2

Como alternativa, puedes especificar un tipo personalizado de máquina con el siguiente formato:

gcloud beta compute instances create example-instance \
    --machine-type n2-custom-[NUMBER_OF_CPUS]-[NUMBER_OF_MB]

donde:

  • [NUMBER_OF_CPUS] es la cantidad de CPU que deseas.
  • [NUMBER_OF_MB] es la cantidad de memoria que deseas en unidades de MB.

Como en este ejemplo:

gcloud compute instances create example-instance --machine-type n2-custom-6-3072

API

En la API, crea tu solicitud de creación de instancias como lo harías normalmente, pero cuando especifiques un valor machineType, usa uno de los siguientes formatos. Reemplaza NUMBER_OF_CPUS por la cantidad de CPU y AMOUNT_OF_MEMORY por la cantidad de memoria que deseas. Proporciona la memoria en unidades de MB.

  • Usa lo siguiente para los tipos de máquina N1:

    zones/[ZONE]/machineTypes/custom-[NUMBER_OF_CPUS]-[AMOUNT_OF_MEMORY_MB]
    
  • Usa lo siguiente para los tipos de máquina N2:

    zones/[ZONE]/machineTypes/n2-custom-[NUMBER_OF_CPUS]-[AMOUNT_OF_MEMORY_MB]
    

Por ejemplo, la siguiente URL crearía una instancia con 4 CPU virtuales y 5 GB (5,120 MB) de memoria:

zones/us-central1-f/machineTypes/custom-4-5120

Si especificas un tipo personalizado de máquina en los formatos descritos con anterioridad, también puedes crear instancias interrumpibles o grupos de instancias con un tipo personalizado de máquina.

Agrega memoria extendida a un tipo de máquina

En función del tipo de máquina, cada tipo puede tener hasta una cantidad específica de memoria de forma predeterminada. Por ejemplo, si creas una VM con un tipo personalizado de máquina N1, la VM puede tener hasta 6.5 GB de memoria por CPU virtual. Para los tipos personalizados de máquinas N2, esta cantidad aumenta a 8 GB de memoria por CPU virtual.

Esta cantidad de memoria podría no ser suficiente para algunas cargas de trabajo. Puedes obtener más memoria por CPU virtual además del límite predeterminado por un costo adicional. Esto se conoce como memoria extendida.

Con la memoria extendida, puedes agregar memoria a un tipo de máquina sin limitaciones por CPU virtual. Puedes agregar memoria extendida hasta ciertos límites según el tipo de máquina:

  • Para los tipos de máquina N1, puedes agregar hasta un total de 624 GB de memoria por VM.
  • Para los tipos de máquina N2, puedes agregar hasta un total de 640 GB de memoria por VM.

Si necesitas más memoria, debes usar uno de los tipos de máquina de megamemoria, que te permite crear instancias con un total de 1.4 TB por instancia de VM.

Determina si necesitas memoria extendida

Ciertas cargas de trabajo necesitan más que la cantidad predeterminada de memoria por CPU virtual para ofrecer resultados óptimos. Las cargas de trabajo que se basan en análisis en memoria, bases de datos de alto rendimiento; incluidas las bases de datos relacionales y NoSQL, como MS SQL Server, MongoDB y MemcacheD/Redis, entran en esta categoría. Las licencias basadas en CPU virtuales de los sistemas operativos y las pilas de software también dificultan la selección de una configuración de memoria de VM óptima con los tipos predefinidos de máquinas. Cuando utilizas memoria extendida, puedes agregar tanta memoria como sea necesario para alcanzar el mejor precio y rendimiento de tus instancias de VM.

Precios

Cuando usas un tipo personalizado de memoria, toda cantidad de memoria, incluida la cantidad predeterminada por CPU virtual, se cobra según los precios de tipos personalizados de máquinas N1 o los precios de tipos personalizados de máquinas N2. Para la memoria superior a la predeterminada, Compute Engine cobra por la memoria extendida según el precio de la memoria personalizada extendida N1 o el precio de la memoria personalizada extendida N2. Ten en cuenta que el precio de la memoria extendida es diferente al precio de la memoria por debajo del umbral predeterminado.

Los precios de la memoria extendida varían según la región. Las instancias que se ejecutan con memoria extendida están sujetas a la misma carga mínima de 1 minuto como cualquier otra instancia. La memoria extendida también califica para descuentos de uso continuo. A fin de obtener más información, consulta Descuentos por uso continuo.

Para obtener información sobre precios, consulta los Precios de instancias de máquina virtual.

Limitaciones

  • Solo puedes agregar la memoria extendida a los tipos personalizados de máquinas. No se admiten los tipos predefinidos de máquinas.
  • No hay límite de memoria por CPU virtual que puedas agregar, pero hay una cantidad máxima de memoria que puedes agregar a cada instancia de VM. Para los tipos de máquina N1, puedes agregar hasta 624 GB de memoria. Para los tipos de máquina N2, puedes agregar hasta 640 GB de memoria.
  • Los tipos de máquina N2 solo están disponibles en determinadas zonas:
    • us-central1-a y us-central1-c
    • europe-west4-b y europe-west4-c
  • Debes especificar la memoria en incrementos de 256 MB.
  • Los descuentos por compromiso de uso no se aplican a la memoria extendida.

Agrega memoria extendida durante la creación de instancias

Para crear una instancia de VM con memoria extendida, sigue las instrucciones que se detallan a continuación.

Console

  1. Ve a la página Crear una instancia en Google Cloud Platform Console.

    Ir a la página Crear una instancia

  2. Selecciona la zona donde deseas alojar esta instancia. Esto también filtrará la lista de tipos de máquinas solo a los tipos disponibles en esa zona.
  3. En Configuración de la máquina, selecciona Propósito general.
  4. En el menú desplegable Generación, selecciona Primero para los tipos personalizados de máquinas N1 o Segundo para los tipos personalizados de máquinas N2.
  5. En el menú desplegable Tipo de máquina, selecciona Personalizado.
  6. Selecciona la cantidad de memoria que deseas. Para agregar memoria extendida, marca la opción Extender memoria. El rango de memoria seleccionable se expande.
  7. Continúa con el proceso de creación de la instancia.

gcloud

Para los tipos de máquina N1, usa la herramienta de gcloud y el subcomando instances create, seguido de la marca --custom-extensions a fin de habilitar la memoria extendida. Luego, especifica la memoria total que deseas con el parámetro --custom- memory.

gcloud compute instances create example-instance  \
    --custom-extensions --custom-cpu 2 --custom-memory 15

Para los tipos de máquina N2, usa el comando gcloud beta con el subcomando instances create. Establece las marcas --custom-extensions, --custom-cpu y --custom-memory, seguidas de la marca --custom-vm-type para especificar el tipo de máquina N2:

gcloud beta compute instances create example-instance \
    --custom-extensions --custom-cpu 2 --custom-memory 16 \
    --custom-vm-type n2

API

En la API, construye tu solicitud de creación de instancias como lo harías normalmente, pero cuando especifiques un valor machineType, usa uno de los siguientes formatos:

  • Usa lo siguiente para los tipos de máquina N1:

    zones/[ZONE]/machineTypes/custom-[NUMBER_OF_CPUS]-[AMOUNT_OF_MEMORY]-ext
    
  • Usa lo siguiente para los tipos de máquina N2:

    zones/[ZONE]/machineTypes/n2-custom-[NUMBER_OF_CPUS]-[AMOUNT_OF_MEMORY]-ext
    

donde:

  • [NUMBER_OF_CPUS] es la cantidad de CPU virtuales.
  • [AMOUNT_OF_MEMORY] es la cantidad de memoria que deseas. Proporciona la cantidad de memoria en unidades de MB.

Por ejemplo, lo siguiente especifica un tipo de máquina N2 con 2 CPU virtuales y 20 GB de memoria:

zones/[ZONE]/machineTypes/n2-custom-2-20480-ext

Agrega memoria extendida a una instancia de VM existente

Para agregar más memoria a una instancia existente, primero debes detener la instancia. Después de que la instancia se detenga, sigue las instrucciones a continuación para agregar más memoria a la VM.

Console

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

    Ir a la página Instancias de VM

  2. Elige la instancia detenida que deseas modificar de la lista de instancias.
  3. Haz clic en Editar en la parte superior de la página.
  4. En Configuración de la máquina, selecciona Propósito general.
  5. En el menú desplegable Tipo de máquina, selecciona Personalizado.
  6. Selecciona la cantidad de CPU virtuales que deseas.
  7. Selecciona la cantidad de memoria que deseas. Para agregar memoria extendida, marca la opción Extender memoria. El rango de memoria seleccionable se expande.
  8. Guarda los cambios.

gcloud

Con la herramienta de línea de comandos de gcloud, usa el subcomando instances set-machine-type, seguido de la marca --custom-extensions y el parámetro --custom-memory existente. Para cambiar de tipos de máquina N1 a tipos de máquina N2 y viceversa, proporciona la marca --custom-vm-type.

Por ejemplo, para agregar 2 GB de memoria a una instancia llamada example-instance, que por el momento tiene un tipo de máquina N1 con 2 CPU virtuales, 13 GB, en la zona us-central1-b, usa el siguiente comando:

gcloud compute instances set-machine-type example-instance \
   --zone us-central1-b --custom-cpu 2 \
   --custom-memory 15 --custom-extensions

Usa lo siguiente para cambiar entre los tipos de máquina N1 y N2:

gcloud beta compute instances set-machine-type example-instance \
   --zone us-central1-a  --custom-extensions --custom-cpu 2 \
   --custom-memory 16 --custom-vm-type n2

API

En la API, realiza una solicitud POST al método setMachineType con el tipo de máquina deseado en el cuerpo de la solicitud. Usa uno de los siguientes formatos:

  • Usa lo siguiente para los tipos de máquina N1:

    zones/[ZONE]/machineTypes/custom-[NUMBER_OF_CPUS]-[AMOUNT_OF_MEMORY]-ext
    
  • Usa lo siguiente para los tipos de máquina N2:

    zones/[ZONE]/machineTypes/n2-custom-[NUMBER_OF_CPUS]-[AMOUNT_OF_MEMORY]-ext
    

donde:

  • [NUMBER_OF_CPUS] es la cantidad de CPU virtuales.
  • [AMOUNT_OF_MEMORY] es la cantidad de memoria que deseas. Proporciona la cantidad de memoria en unidades de MB.

Por ejemplo, la siguiente solicitud utiliza un tipo de máquina con 2 CPU virtuales y 15 GB de memoria:

zones/[ZONE]/machineTypes/custom-2-15360-ext

Como en este ejemplo:

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/setMachineType

{
    machineType: "zones/us-central1-f/machineTypes/custom-2-15360-ext"
}

Qué sigue

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Compute Engine