Crea automáticamente CloudWatch paneles de Amazon basados en etiquetas - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Crea automáticamente CloudWatch paneles de Amazon basados en etiquetas

Janak Vadaria, Vinodkumar Mandalapu y RAJNEESH TYAGI, Amazon Web Services

Resumen

Crear diferentes CloudWatch paneles de Amazon de forma manual puede llevar mucho tiempo, especialmente cuando hay que crear y actualizar varios recursos para escalar automáticamente el entorno. Una solución que cree y actualice sus CloudWatch paneles automáticamente puede ahorrarle tiempo. Este patrón le ayuda a implementar un proceso totalmente automatizado que AWS Cloud Development Kit (AWS CDK) crea y actualiza CloudWatch paneles para sus AWS recursos en función de los eventos de cambio de etiquetas, para mostrar las métricas de Golden Signals.

En la ingeniería de confiabilidad del sitio (SRE), Golden Signals se refiere a un conjunto integral de métricas que ofrecen una visión amplia de un servicio desde la perspectiva del usuario o del consumidor. Estas métricas se componen de la latencia, el tráfico, los errores y la saturación. Para obtener más información, consulte ¿Qué es la ingeniería de confiabilidad de sitios (SRE)? en el AWS sitio web.

La solución que proporciona este patrón se basa en eventos. Una vez desplegado, supervisa de forma continua los eventos de cambio de etiquetas y actualiza automáticamente los CloudWatch paneles y las alarmas.

Requisitos previos y limitaciones

Requisitos previos

Limitaciones

Actualmente, esta solución crea paneles automatizados únicamente para los siguientes servicios de AWS:

Arquitectura

Pila de tecnología de destino

Arquitectura de destino

Arquitectura de destino para crear cuadros de mando basados en etiquetas CloudWatch
  1. Un evento de cambio de AWS etiqueta para las etiquetas de la aplicación configuradas o los cambios de código inicia una canalización AWS CodePipeline para crear e implementar paneles actualizados. CloudWatch

  2. AWS CodeBuild ejecuta un script de Python para buscar los recursos que tienen etiquetas configuradas y almacena el recurso IDs en un archivo local en un CodeBuild entorno.

  3. CodeBuild ejecuta cdk synth para generar CloudFormation plantillas que despliegan CloudWatch paneles y alarmas.

  4. CodePipeline despliega las CloudFormation plantillas en la región y especificadas. Cuenta de AWS

  5. Cuando la CloudFormation pila se haya desplegado correctamente, podrá ver los CloudWatch paneles y las alarmas.

Automatización y escala

Esta solución se ha automatizado mediante el uso de AWS CDK. Puedes encontrar el código en el CloudWatch repositorio de GitHub Golden Signals Dashboards en Amazon. Para un escalado adicional y para crear paneles personalizados, puede configurar varias claves y valores de etiquetas.

Tools (Herramientas)

Servicios de Amazon

  • Amazon EventBridge es un servicio de bus de eventos sin servidor que le ayuda a conectar sus aplicaciones con datos en tiempo real de diversas fuentes, incluidas AWS Lambda funciones, puntos de enlace de invocación HTTP que utilizan destinos de API o buses de eventos, entre otros. Cuentas de AWS

  • AWS CodePipeline permite diseñar y configurar rápidamente las diferentes etapas de un proceso de lanzamiento de software y automatizar los pasos necesarios para lanzar los cambios en el software de manera continua.

  • AWS CodeBuild es un servicio de compilación completamente administrado que le permite compilar código fuente, poner en marcha pruebas unitarias y producir artefactos listos para implementar.

  • AWS Command Line Interface (AWS CLI) es una herramienta de código abierto que le ayuda a interactuar con los servicios de AWS mediante comandos en su shell de línea de comandos.

  • AWS Identity and Access Management (IAM) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos.

  • Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.

Prácticas recomendadas

Como práctica recomendada, puede usar el cifrado y la autenticación para los repositorios de origen que se conectan a sus canalizaciones. Para obtener más información sobre las mejores prácticas, consulte las CodePipeline mejores prácticas y los casos de uso en la CodePipeline documentación.

Epics

TareaDescripciónHabilidades requeridas

Configure implemente la aplicación de ejemplo.

  1. Clona el repositorio de código de GitHub muestra mediante el comando:

    git clone https://github.com/aws-samples/golden-signals-dashboards-sample-app
  2. Navegue hasta el repositorio clonado de su equipo y abra el archivo src/project-settings.ts con el editor que elija.

  3. Cambie el valor projectSettings constante de acuerdo con las etiquetas de sus AWS recursos y las asignaciones de aplicaciones.

  4. Establezca las variables de entorno AWS_ACCOUNT, AWS_REGION y GS_DASHBOARD_INSTANCE.

    • AWS_ACCOUNTEstablézcalo en el ID de cuenta de tu AWS cuenta.

    • Establezca AWS_REGION en la región en donde desea implementar la aplicación de ejemplo.

    • Configure GS_DASHBOARD_INSTANCE en dev, test o prod, en función de su entorno de desarrollo. (Se recomienda test para el procedimiento de prueba descrito en este patrón).

  5. AWS CLI Configúrala con tus AWS credenciales. Para obtener más información, consulte Establecer y ver los valores de configuración mediante los comandos de la AWS CLI documentación.

  6. Ejecute el siguiente comando para implementar la aplicación de ejemplo de panel de Golden Signals:

    sh deploy.sh
AWS DevOps

Cree paneles y alarmas de forma automática.

Tras implementar la aplicación de ejemplo, puede crear cualquiera de los recursos compatibles con esta solución con los valores de etiqueta esperados, lo que creará automáticamente los paneles y las alarmas especificados.

Para probar esta solución, cree una AWS Lambda función:

  1. Inicie sesión Consola de administración de AWS en el Región de AWS lugar donde implementó la aplicación de muestra.

  2. Abra la consola Lambda en. https://console.aws.amazon.com/lambda/

  3. Elija Crear una función y luego introduzca un nombre de función.

  4. En el panel Configuración avanzada, seleccione Habilitar etiquetas y, a continuación, Añadir nueva etiqueta. Introduzca la clave y el valor siguientes:

    • Clave: AutoDashboard

    • Valor: True

  5. Elija Crear función.

    La función de Lambda inicia inmediatamente una canalización de código, que crea automáticamente los paneles y las alarmas para esa función de Lambda concreta.

  6. Para ver los paneles y las alarmas automatizados, abra la CloudWatch consola en. https://console.aws.amazon.com/cloudwatch/ Puede ver los paneles y las alarmas personalizados de la función que especificó en la projectSettings constante (APP1-lambda de forma predeterminada).

  7. Seleccione el panel de la función de Lambda para ver los paneles automatizados adicionales que se crearon como parte de esta solución.

  8. Repita estos pasos para otros servicios, como Amazon RDS, Amazon SNS y DynamoDB AWS Auto Scaling, para generar los paneles asociados. Para obtener un ejemplo de Amazon RDS, consulte la sección Información adicional.

AWS DevOps
TareaDescripciónHabilidades requeridas

Elimine el constructo golden-signals-dashboard.

  1. Para eliminar todas las CloudFormation pilas creadas por la aplicación de muestra, debe volver a configurar las variables AWS_ACCOUNT de GS_DASHBOARD_INSTANCE entorno y. AWS_REGION El comando destroy.sh requiere estas configuraciones.

    • AWS_ACCOUNTes el identificador de su AWS cuenta.

    • AWS_REGION es la región en la que implementó la aplicación de ejemplo.

    • GS_DASHBOARD_INSTANCE es dev, test o prod, en función de su configuración anterior.

  2. AWS CLI Configúrala con tus AWS credenciales.

  3. Ejecute el siguiente comando para eliminar la aplicación de muestra y todas las CloudFormation pilas asociadas:

    sh destroy.sh
AWS DevOps

Resolución de problemas

ProblemaSolución

No se encontró el comando de Python (en referencia a findresources.sh, línea 8).

Compruebe la versión de la instalación de Python. Si ha instalado la versión 3 de Python, sustituya python por python3 en la línea 8 del archivo resources.sh y vuelva a ejecutar el comando sh deploy.sh para implementar la solución.

Recursos relacionados

Información adicional

En la siguiente ilustración se muestra un panel de ejemplo para Amazon RDS que se crea como parte de esta solución.

Ejemplo de panel para Amazon RDS