Puntos de control
Create a GCS bucket
/ 25
Create an instance template
/ 25
Create an instance group
/ 25
Configure autoscaling for the instance group
/ 25
Cómo aplicar un ajuste de escala automático a un grupo de instancias con métricas personalizadas de Cloud Monitoring
- GSP087
- Descripción general
- Objetivos
- Configuración y requisitos
- Tarea 1. Crea la aplicación
- Tarea 2: Crea un bucket
- Tarea 3: Cómo crear una plantilla de instancias
- Tarea 4. Crea el grupo de instancias
- Tarea 5: Verifica que se creó el grupo de instancias
- Tarea 6. Cómo verificar que la secuencia de comandos de Node.js esté en ejecución
- Tarea 7. Configura el ajuste de escala automático para los grupos de instancias
- Tarea 8: Observa cómo el grupo de instancias realiza el ajuste de escala automático
- Tarea 9: Ejemplo de ajuste de escala automático
- Felicitaciones.
GSP087
Descripción general
En este lab, crearás un grupo de instancias administrado de Compute Engine que realice un ajuste de escala automático basado en el valor de una métrica personalizada de Cloud Monitoring.
Arquitectura de aplicaciones
La aplicación con ajuste de escala automático usa una secuencia de comandos de Node.js instalada en instancias de Compute Engine. Esta secuencia de comandos informa un valor numérico a una métrica de Cloud Monitoring. No necesitas saber de Node.js o JavaScript para hacer este lab. Como respuesta al valor de la métrica, la aplicación automáticamente aumenta o reduce la escala del grupo de instancias de Compute Engine según sea necesario.
La secuencia de comandos de Node.js se usa para ingresar una métrica personalizada con valores a los que el grupo de instancias puede responder. En un entorno de producción, el ajuste de escala automático se basaría en una métrica relevante para tu caso práctico.
La aplicación incluye los siguientes componentes:
- Plantilla de instancias de Compute Engine: Es una plantilla que se usa para crear cada instancia en el grupo de instancias.
- Cloud Storage: Es un bucket que se usa para alojar la secuencia de comandos de inicio y otros archivos de secuencia de comandos.
- Secuencia de comandos de inicio de Compute Engine: Es una secuencia de comandos de inicio que instala los componentes de código necesarios en cada instancia. La secuencia de comandos de inicio se instala y se ejecuta automáticamente cuando se inicia una instancia. Cuando se ejecuta la secuencia de comandos de inicio, esta instala e inicia código en la instancia que escribe valores en la métrica personalizada de Cloud Monitoring.
- Grupo de instancias de Compute Engine: Es un grupo de instancias que realiza el ajuste de escala automático según los valores de la métrica de Cloud Monitoring.
- Instancias de Compute Engine: Es un número variable de instancias de Compute Engine.
- Métrica personalizada de Cloud Monitoring: Es una métrica de supervisión personalizada que se usa como valor de entrada para el ajuste de escala automático de un grupo de instancias de Compute Engine.
Objetivos
En este lab, aprenderás a realizar las siguientes tareas:
- Implementar un grupo de instancias de ajuste de escala automático de Compute Engine
- Crear una métrica personalizada para escalar el grupo de instancias
- Usar la consola de Cloud para visualizar el tamaño del grupo de instancias y la métrica personalizada
Configuración y requisitos
Antes de hacer clic en el botón Comenzar lab
Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.
Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.
Para completar este lab, necesitarás lo siguiente:
- Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
- Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Cómo iniciar tu lab y acceder a la consola de Google Cloud
-
Haga clic en el botón Comenzar lab. Si debe pagar por el lab, se abrirá una ventana emergente para que seleccione su forma de pago. A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:
- El botón Abrir la consola de Google Cloud
- El tiempo restante
- Las credenciales temporales que debe usar para el lab
- Otra información para completar el lab, si es necesaria
-
Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).
El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.
Sugerencia: Ordene las pestañas en ventanas separadas, una junto a la otra.
Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta. -
De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.
{{{user_0.username | "Username"}}} También puedes encontrar el nombre de usuario en el panel Detalles del lab.
-
Haz clic en Siguiente.
-
Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.
{{{user_0.password | "Password"}}} También puedes encontrar la contraseña en el panel Detalles del lab.
-
Haz clic en Siguiente.
Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud. Nota: Usar tu propia Cuenta de Google podría generar cargos adicionales. -
Haga clic para avanzar por las páginas siguientes:
- Acepta los Términos y Condiciones.
- No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
- No te registres para obtener pruebas gratuitas.
Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.
Activa Cloud Shell
Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.
- Haz clic en Activar Cloud Shell en la parte superior de la consola de Google Cloud.
Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. El resultado contiene una línea que declara el PROJECT_ID para esta sesión:
gcloud
es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.
- Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
-
Haz clic en Autorizar.
-
Ahora, el resultado debería verse de la siguiente manera:
Resultado:
- Puedes solicitar el ID del proyecto con este comando (opcional):
Resultado:
Resultado de ejemplo:
gcloud
, consulta la guía con la descripción general de gcloud CLI en Google Cloud.
Tarea 1. Crea la aplicación
Crear la aplicación con ajuste de escala automático requiere la descarga de los componentes de código necesarios, la creación de un grupo de instancias administradas y la configuración del ajuste de escala automático para el grupo de instancias administrado.
Cómo subir los archivos de secuencia de comandos a Cloud Storage
Durante el ajuste de escala automático, el grupo de instancias necesitará crear instancias de Compute Engine nuevas. Cuando eso sucede, crea instancias en función de la plantilla de instancias. Cada instancia necesita una secuencia de comandos de inicio. Por lo tanto, la plantilla necesita una forma de referirse a la secuencia de comandos de inicio. Compute Engine es compatible con el uso de buckets de Cloud Storage como fuente para su secuencia de comandos de inicio. En esta sección, harás una copia de la secuencia de comandos de inicio y los archivos de la aplicación para una aplicación de ejemplo que usa este lab. Esta aplicación envía un patrón de datos a una métrica personalizada de Cloud Logging que luego puedes usar para configurarla como la métrica que controla el comportamiento del ajuste de escala para un grupo con ajuste de escala automático.
Tarea 2: Crea un bucket
-
En la consola de Cloud, en el Menú de navegación, selecciona Cloud Storage > Buckets y, luego, haz clic en Crear.
-
Asigna un nombre único a tu bucket, pero no utilices un nombre que quizá desees usar en otro proyecto. Consulta los lineamientos para asignar nombres a buckets y obtener más detalles al respecto. Puedes usar el ID de tu proyecto para el bucket. A lo largo de este lab se hará referencia a este bucket como
YOUR_BUCKET
. -
Acepta los valores predeterminados y haz clic en Crear.
Haz clic en Confirmar si te aparece la ventana emergente Se impedirá el acceso público
.
Una vez que se haya creado el bucket, se abrirá la página Detalles del bucket.
Prueba la tarea completada
Haz clic en Revisar mi progreso para verificar la tarea realizada. Si creaste de forma correcta un bucket de Cloud Storage, verás una puntuación de evaluación.
- A continuación, ejecuta el siguiente comando en Cloud Shell para copiar los archivos de la secuencia de comandos de inicio desde el bucket predeterminado de Cloud Storage del lab a tu bucket de Cloud Storage. Recuerda reemplazar
<YOUR BUCKET>
por el nombre del bucket que acabas de crear:
- Después de subir las secuencias de comandos, haz clic en Actualizar en la página Detalles del bucket. Tu bucket debería publicar los archivos que se agregaron.
Información sobre los componentes de código
-
Startup.sh
: Es una secuencia de comandos de shell que instala los componentes necesarios para cada instancia de Compute Engine mientras la instancia se agrega al grupo de instancias administrado. -
writeToCustomMetric.js
: Es un fragmento de Node.js que crea una métrica personalizada de supervisión cuyo valor activa el escalamiento. Para emular los valores de métrica reales, la secuencia de comandos varía el valor en el tiempo. En una implementación de producción, debes reemplazar esta secuencia de comandos por código personalizado que informa la métrica de supervisión que te interesa, como un valor de cola de procesamiento. -
Config.json
: Es un archivo de configuración de Node.js que especifica los valores para la métrica personalizada de supervisión y se usa enwriteToCustomMetric.js
. -
Package.json
: Es un archivo de paquete de Node.js que especifica la instalación estándar y las dependencias parawriteToCustomMetric.js
. -
writeToCustomMetric.sh
: Es una secuencia de comandos de shell que ejecuta de manera continua el programawriteToCustomMetric.js
en cada instancia de Compute Engine.
Tarea 3: Cómo crear una plantilla de instancias
Crea una plantilla para las instancias que se generen en el grupo de instancias que usará el ajuste de escala automático. Como parte de la plantilla, debes especificar la ubicación (en Cloud Storage) de la secuencia de comandos de inicio que debe ejecutarse cuando se inicia la instancia.
-
En la consola de Cloud, haz clic en Menú de navegación > Compute Engine > Plantillas de instancia.
-
Haz clic en Crear plantilla de instancias en la parte superior de la página.
-
Asigna el nombre
autoscaling-instance01
a la plantilla de instancia. -
Desplázate hacia abajo y haz clic en Opciones avanzadas.
-
En la sección Metadatos de la pestaña Administración, ingresa estos valores y claves de metadatos. Para eso, haz clic en el botón + Agregar elemento y agrégalos de a uno. Recuerda reemplazar el marcador de posición
[YOUR_BUCKET_NAME]
con el nombre de tu bucket:
Clave | Valor |
---|---|
startup-script-url | gs://[YOUR_BUCKET_NAME]/startup.sh |
gcs-bucket | gs://[YOUR_BUCKET_NAME] |
- Haz clic en Crear.
Prueba la tarea completada
Haz clic en Revisar mi progreso para verificar la tarea realizada. Si creaste correctamente una plantilla de instancia, verás una puntuación de evaluación.
Tarea 4. Crea el grupo de instancias
-
En el panel izquierdo, haz clic en Grupos de instancias.
-
Haz clic en Crear grupo de instancias en la parte superior de la página.
-
Nombre:
autoscaling-instance-group-1
. -
Para la Plantilla de instancias, selecciona la plantilla de instancias que acabas de crear.
-
Para la Ubicación, selecciona Zona única y, luego, usa
y para la región y la zona, respectivamente. -
Establece el Modo de ajuste de escala automático en Desactivado: no ajusta la escala automáticamente.
Primero, crearás el grupo de instancias y, luego, editarás la configuración del ajuste de escala automático. Deja las otras opciones de configuración con sus valores predeterminados.
- Haz clic en Crear.
Autoscaling is turned off. The number of instances in the group won't change automatically. The autoscaling configuration is preserved.
” que aparece junto a tu grupo de instancias. Prueba la tarea completada
Haz clic en Revisar mi progreso para verificar la tarea realizada. Si creaste correctamente un grupo de instancias, verás una puntuación de evaluación.
Tarea 5: Verifica que se creó el grupo de instancias
Espera hasta ver la marca de verificación verde junto al grupo de instancias nuevo que acabas de crear. La secuencia de comandos de inicio necesitará varios minutos para completar la instalación y empezar a informar los valores. Haz clic en Actualizar si notas que tarda demasiado.
Tarea 6. Cómo verificar que la secuencia de comandos de Node.js esté en ejecución
La métrica personalizada custom.googleapis.com/appdemo_queue_depth_01
no se crea hasta que la primera instancia del grupo se crea y empieza a informar los valores de la métrica personalizada.
Para verificar que la secuencia de comandos writeToCustomMetric.js
esté en ejecución en la primera instancia del grupo de instancias, observa si la instancia registra los valores de la métrica personalizada.
-
En la ventana Grupos de instancias de Compute Engine, haz clic en
autoscaling-instance-group-1
para mostrar las instancias activas del grupo. -
Desplázate hacia abajo y haz clic en el nombre de la instancia. Debido a que el ajuste de escala automático no inició instancias adicionales, hay solo una instancia en ejecución.
-
En la pestaña Detalles, en la sección Registros, haz clic en el vínculo Registros para ver los registros de la instancia de VM.
-
Espera 1 o 2 minutos para permitir que se acumulen algunos datos. Habilita el botón de activación Mostrar consulta, verás
resource.type
yresource.labels.instance_id
en el cuadro de vista previa Consulta.
- Agrega
nodeapp
como la línea 3 para que el código se vea similar al siguiente:
- Haz clic en Ejecutar consulta.
Si se ejecuta la secuencia de comandos de Node.js
en la instancia de Compute Engine, se envía una solicitud a la API y, en los registros, aparecen entradas que dicen nodeapp: available
.
Tarea 7. Configura el ajuste de escala automático para los grupos de instancias
Tras verificar que la métrica personalizada informe datos de forma correcta desde la primera instancia, se puede configurar el grupo de instancias para que ajuste la escala automáticamente en función del valor de la métrica personalizada.
-
En la consola de Cloud, ve a Compute Engine > Grupos de instancias.
-
Haz clic en el grupo
autoscaling-instance-group-1
. -
Haz clic en Editar.
-
En Ajuste de escala automático, establece el Modo de ajuste de escala automático en Activado: agrega y quita instancias del grupo.
-
Establece Número mínimo de instancias:
1
y Número máximo de instancias:3
. -
En Autoscaling signals, haz clic en AGREGAR INDICADOR para editar la métrica. Configura los siguientes campos y deja el resto con sus valores predeterminados.
-
Tipo de indicador:
Cloud Monitoring metric new
. Haz clic en Configurar. - En Recurso y métrica, haz clic en SELECCIONAR UNA MÉTRICA y navega a Instancia de VM > Métricas personalizadas > Custom/appdemo_queue_depth_01.
- Haz clic en Aplicar.
-
Objetivo de utilización:
150
Cuando los valores de la métrica personalizada de supervisión son más altos o más bajos que el valor Objetivo, el escalador automático escala el grupo de instancias administrado y aumenta o reduce el número de instancias. El valor objetivo puede ser cualquier valor doble, pero para este lab, se eligió el valor 150 porque coincide con los valores que informa la métrica personalizada de supervisión.
-
Tipo de objetivo de utilización:
Medidor
. Haz clic en Seleccionar.
La opción de configuración Medidor especifica que el escalador automático debe procesar el valor promedio de los datos recopilados en los últimos minutos y compararlos con el valor objetivo. En cambio, configurar el Modo de destino en DELTA_PER_MINUTE o DELTA_PER_SECOND ajusta la escala de forma automática según la frecuencia de cambio observada, en vez de un valor promedio.
-
Tipo de indicador:
-
Haz clic en Guardar.
Prueba la tarea completada
Haz clic en Revisar mi progreso para verificar la tarea realizada. Si configuraste correctamente el ajuste de escala automático para el grupo de instancias, verás una puntuación de evaluación.
Tarea 8: Observa cómo el grupo de instancias realiza el ajuste de escala automático
La secuencia de comandos de Node.js modifica los valores de la métrica personalizada que informa desde cada instancia en el tiempo. Cuando el valor de la métrica aumenta, el grupo de instancias agrega instancias de Compute Engine para escalar verticalmente. Si el valor se reduce, el grupo de instancias lo detecta y quita instancias para disminuir la escala. Como se mencionó antes, la secuencia de comandos emula una métrica real cuyos valores pueden fluctuar.
A continuación, verás cómo escala el grupo de instancias en respuesta a la métrica. Para ello, haz clic en la pestaña Supervisión para ver el gráfico Tamaño con ajuste de escala automático.
- En el panel izquierdo, haz clic en Grupos de instancias.
- Haz clic en el grupo de instancias
builtin-igm
de la lista. - Haz clic en la pestaña Monitoring.
- Habilita Actualización automática.
Puesto que este grupo tuvo una ventaja inicial, puedes ver los detalles de ajuste de escala automático del grupo de instancias en el gráfico de ajuste de escala automático. El escalador automático tardará unos cinco minutos en reconocer de forma correcta la métrica personalizada y hasta 10 o 15 minutos para que la secuencia de comandos genere los datos suficientes que activen el comportamiento de ajuste de escala automático.
Coloca el cursor del mouse sobre los gráficos para ver más detalles.
Puedes regresar al grupo de instancias que creaste para ver su rendimiento (puede que no haya suficiente tiempo en el lab para ver el ajuste de escala automático en tu grupo de instancias).
En lo que resta del tiempo del lab, puedes observar el gráfico de ajuste de escala automático y analizar los aumentos y las disminuciones que se producen cuando se agregan y quitan instancias.
Tarea 9: Ejemplo de ajuste de escala automático
Lee este ejemplo de ajuste de escala automático para entender cómo funcionan la capacidad y la cantidad de instancias con ajuste de escala automático en un entorno más grande.
El número de instancias que se muestra en el gráfico superior cambia como resultado del nivel variable global de los valores de las propiedades de la métrica personalizada que aparecen en el gráfico inferior. Después de que se inicia cada instancia, hay un leve retraso de hasta cinco minutos antes de que esta comience a informar los valores de su métrica personalizada. Mientras se inicia el ajuste de escala automático, consulta este gráfico para comprender lo que sucederá:
La secuencia de comandos empieza a generar valores altos durante unos 15 minutos para activar el comportamiento de escalamiento vertical.
- 11:27 El grupo de ajuste de escala automático inicia con una instancia única. El objetivo global de la métrica personalizada es 150.
- 11:31 Se adquieren los datos de la métrica inicial. Como la métrica es mayor que el objetivo de 150, el grupo con ajuste de escala automático inicia una segunda instancia.
- 11:33 Se empiezan a adquirir los datos de la métrica personalizada de la segunda instancia. Ahora el objetivo global es 300. Como el valor de la métrica es mayor que 300, el grupo de ajuste de escala automático inicia la tercera instancia.
- 11:37 Se empiezan a adquirir los datos de la métrica personalizada de la tercera instancia. Ahora el objetivo global es 450. Como el valor acumulativo de la métrica es mayor que 450, el grupo con ajuste de escala automático inicia la cuarta instancia.
- 11:42 Se empiezan a adquirir los datos de la métrica personalizada de la cuarta instancia. Ahora el objetivo global es 600. Ahora el valor acumulativo de la métrica es mayor que el nuevo nivel objetivo de 600, pero no se realizan acciones adicionales para escalar verticalmente debido a que se alcanzó el límite de tamaño del grupo con ajuste de escala automático.
- 11:44 La secuencia de comandos de la aplicación pasó a un período de 15 minutos de métrica baja. A pesar de que el valor acumulativo de la métrica es menor que el objetivo de 600, la reducción de escala debe esperar que pase un retraso de reducción de escala incorporado de diez minutos antes de hacer algún cambio.
- 11:54 Los datos de la métrica personalizada estuvieron por debajo del nivel objetivo global de 600 para un clúster de cuatro nodos durante más de 10 minutos. La reducción de escala verticalmente ahora quita dos instancias seguidas con rapidez.
- 11:56 Los datos de la métrica personalizada de los nodos que se quitaron se quitan del cálculo del ajuste de escala automático y el objetivo global se reduce a 300.
- 12:00 La secuencia de comandos de la aplicación regresó a un período de 15 minutos de métrica alta. El valor acumulativo de la métrica personalizada aumentó de nuevo por encima del nivel objetivo global de 300, por lo que el grupo con ajuste de escala automático inicia una tercera instancia.
- 12:03 Se adquirieron los datos de la métrica personalizada de la instancia nueva, pero los valores acumulativos informados siguen por debajo del objetivo de 450, por lo que el ajuste de escala automático no realiza cambios.
- 12:04 Los valores acumulativos de la métrica personalizada superan el objetivo de 450, por lo que el ajuste de escala automático inicia la cuarta instancia.
Felicitaciones.
Felicitaciones. En este lab, creaste un grupo de instancias administrado de Compute Engine que realiza un ajuste de escala automático basado en el valor de una métrica personalizada de Cloud Monitoring. También aprendiste cómo usar la consola de Cloud para visualizar el tamaño de la métrica personalizada y el grupo de instancias.
Próximos pasos/Más información
- Más información sobre Cloud Monitoring
- Más información sobre las métricas se supervisión personalizadas de Cloud
- Obtén más información para ajustar la escala de forma automática con Compute Engine
Capacitación y certificación de Google Cloud
Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.
Última actualización del manual: 7 de febrero de 2024
Prueba más reciente del lab: 7 de febrero de 2024
Copyright 2024 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.