arrow_back

Cómo aplicar un ajuste de escala automático a un grupo de instancias con métricas personalizadas de Cloud Monitoring

Unirse Acceder
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Cómo aplicar un ajuste de escala automático a un grupo de instancias con métricas personalizadas de Cloud Monitoring

Lab 1 hora universal_currency_alt 5 créditos show_chart Intermedio
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP087

Labs de autoaprendizaje de Google Cloud

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:

  1. Plantilla de instancias de Compute Engine: Es una plantilla que se usa para crear cada instancia en el grupo de instancias.
  2. Cloud Storage: Es un bucket que se usa para alojar la secuencia de comandos de inicio y otros archivos de secuencia de comandos.
  3. 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.
  4. 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.
  5. Instancias de Compute Engine: Es un número variable de instancias de Compute Engine.
  6. 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.

Diagrama de la arquitectura del lab

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)
Nota: Usa una ventana de navegador privada o de Incógnito para ejecutar este lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses en este lab para evitar cargos adicionales en tu cuenta.

Cómo iniciar su lab y acceder a la consola de Google Cloud

  1. 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
    • Tiempo restante
    • Las credenciales temporales que debe usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haga clic en Abrir la consola de Google. 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 ve el diálogo Elegir una cuenta, haga clic en Usar otra cuenta.
  3. Si es necesario, copie el nombre de usuario del panel Detalles del lab y péguelo en el cuadro de diálogo Acceder. Haga clic en Siguiente.

  4. Copie la contraseña del panel Detalles del lab y péguela en el cuadro de diálogo de bienvenida. Haga clic en Siguiente.

    Importante: Debe usar las credenciales del panel de la izquierda. No use sus credenciales de Google Cloud Skills Boost. Nota: Usar su propia Cuenta de Google podría generar cargos adicionales.
  5. Haga clic para avanzar por las páginas siguientes:

    • Acepte los términos y condiciones.
    • No agregue opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No se registre para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Cloud en esta pestaña.

Nota: Para ver el menú con una lista de los productos y servicios de Google Cloud, haga clic en el Menú de navegación que se encuentra en la parte superior izquierda de la pantalla. Ícono del menú de navegación

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.

  1. Haz clic en Activar Cloud Shell Ícono de 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:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

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.

  1. Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
  1. Haz clic en Autorizar.

  2. Ahora, el resultado debería verse de la siguiente manera:

Resultado:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project

Resultado:

[core] project = <project_ID>

Resultado de ejemplo:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: Para obtener toda la documentación de 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.

Nota: Hay un grupo y una plantilla de instancias preexistentes que creó automáticamente el lab en ejecución. El ajuste de escala automático requiere, al menos, 30 minutos para demostrar comportamientos de aumento o reducción vertical de la escala. Examinarás este grupo más adelante para ver cómo se controla el escalamiento con las variaciones en los valores de la métrica personalizada generados por la secuencia de comandos de esa métrica.

Tarea 2: Crea un bucket

  1. En la consola de Cloud, en el Menú de navegación, selecciona Cloud Storage > Buckets y, luego, haz clic en Crear.

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

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

Crea un bucket de Cloud Storage
  1. 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:
gsutil cp -r gs://spls/gsp087/* gs://<YOUR BUCKET>
  1. 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 en writeToCustomMetric.js.
  • Package.json: Es un archivo de paquete de Node.js que especifica la instalación estándar y las dependencias para writeToCustomMetric.js.
  • writeToCustomMetric.sh: Es una secuencia de comandos de shell que ejecuta de manera continua el programa writeToCustomMetric.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.

  1. En la consola de Cloud, haz clic en Menú de navegación > Compute Engine > Plantillas de instancia.

  2. Haz clic en Crear plantilla de instancias en la parte superior de la página.

  3. Asigna el nombre autoscaling-instance01 a la plantilla de instancia.

  4. Desplázate hacia abajo y haz clic en Opciones avanzadas.

  5. 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]

Página de metadatos

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

Crea una plantilla de instancias

Tarea 4. Crea el grupo de instancias

  1. En el panel izquierdo, haz clic en Grupos de instancias.

  2. Haz clic en Crear grupo de instancias en la parte superior de la página.

  3. Nombre: autoscaling-instance-group-1.

  4. Para la Plantilla de instancias, selecciona la plantilla de instancias que acabas de crear.

  5. Para la Ubicación, selecciona Zona única y, luego, usa y para la región y la zona, respectivamente.

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

  1. Haz clic en Crear.
Nota: Puedes ignorar la advertencia de “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.

Crea un grupo de instancias

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.

Nota: Si ves un ícono rojo junto al otro grupo de instancias que el lab creó con anterioridad, puedes ignorar esta advertencia. Este grupo muestra una advertencia hasta por 10 o 15 minutos mientras se inicializa. Este es el comportamiento esperado.

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.

  1. En la ventana Grupos de instancias de Compute Engine, haz clic en autoscaling-instance-group-1 para mostrar las instancias activas del grupo.

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

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

  4. 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 y resource.labels.instance_id en el cuadro de vista previa Consulta.

 Cuadro de vista previa Consulta

  1. Agrega nodeapp como la línea 3 para que el código se vea similar al siguiente:

Línea 1: resource.type=&quot;gce.instance&quot; Línea 2: resource.labels.instance_id=&quot;4519089149916136834&quot; Línea 3: &quot;nodeapp&quot;

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

Nota: Si no ves esta entrada de registro, la secuencia de comandos de Node.js no está informando los valores de la métrica personalizada. Comprueba si los metadatos se ingresaron de forma correcta. Si los metadatos son incorrectos, tal vez sea más fácil reiniciar el lab. Es posible que la app demore unos 10 minutos en iniciarse.

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.

  1. En la consola de Cloud, ve a Compute Engine > Grupos de instancias.

  2. Haz clic en el grupo autoscaling-instance-group-1.

  3. Haz clic en Editar.

  4. En Ajuste de escala automático, establece el Modo de ajuste de escala automático en Activado: agrega y quita instancias del grupo.

  5. Establece Número mínimo de instancias: 1 y Número máximo de instancias: 3.

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

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

Configura el ajuste de escala automático para el grupo de instancias

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.

  1. En el panel izquierdo, haz clic en Grupos de instancias.
  2. Haz clic en el grupo de instancias builtin-igm de la lista.
  3. Haz clic en la pestaña Monitoring.
  4. 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.

Página con pestañas de supervisión que muestra dos gráficos de supervisión

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á:

Página con pestañas de miembros que muestra un gráfico con varios datos

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

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.