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.
Mejore el rendimiento operativo habilitando Amazon DevOps Guru en varias regiones y cuentas de AWS y OUs con la CDK de AWS
Creado por el Dr. Rahul Sharad Gaikwad (AWS)
Resumen
Este patrón muestra los pasos para habilitar el servicio Amazon DevOps Guru en varias regiones, cuentas y unidades organizativas () de Amazon Web Services (AWSOUs) mediante el kit de desarrollo en la nube de AWS (AWS CDK) en TypeScript. Puede usar las pilas de CDK de AWS para implementar AWS CloudFormation StackSets desde la cuenta de administrador (principal) de AWS para habilitar Amazon DevOps Guru en varias cuentas, en lugar de iniciar sesión en cada cuenta y habilitar DevOps Guru individualmente para cada una de ellas.
Amazon DevOps Guru ofrece funciones de operaciones de inteligencia artificial (AIOps) para ayudarlo a mejorar la disponibilidad de sus aplicaciones y resolver los problemas operativos con mayor rapidez. DevOps Guru reduce el esfuerzo manual al aplicar recomendaciones basadas en el aprendizaje automático (ML), sin necesidad de conocimientos de aprendizaje automático. DevOps Guru analiza sus recursos y datos operativos. Si detecta alguna anomalía, proporciona métricas, eventos y recomendaciones para ayudarle a solucionar el problema.
Este patrón describe tres opciones de implementación para habilitar Amazon DevOps Guru:
Para todos, apile recursos en varias cuentas y regiones
Para todos, apile los recursos en todas partes OUs
Para recursos de pila específicos en varias cuentas y regiones
Requisitos previos y limitaciones
Requisitos previos
Una cuenta de AWS activa.
Interfaz de la línea de comandos de AWS (AWS CLI) instalada y configurada. (Consulte Instalación, actualización y desinstalación de la CLI de AWS en la documentación de la CLI de AWS).
Kit de herramientas de AWS CDK, instalado y configurado. (Consulte el kit de herramientas de AWS CDK en la documentación de AWS CDK).
Node Package Manager (npm), instalado y configurado para la AWS CDK en. TypeScript (Consulte Descarga e instalación de Node.js y npm en la documentación de npm
). Python3 instalado y configurado para ejecutar un script de Python para inyectar tráfico en la aplicación sin servidor de muestra. (Consulte Configuración y uso de Python
en la documentación de Python). Pip, instalado y configurado para instalar la biblioteca de solicitudes de Python. (Consulte las instrucciones de instalación de pip
en el PyPl sitio web).
Versiones de producto
Kit de herramientas de AWS CDK, versión 1.107.0 o posterior
npm versión 7.9.0 o posterior
Node.js: versión 15.3.0 o posterior
Arquitectura
Tecnologías
La arquitectura de este patrón incluye los siguientes servicios:
Pilas de CDK de AWS
El patrón utiliza las siguientes pilas de CDK de AWS:
CdkStackSetAdminRole
: crea un rol de administrador de AWS Identity and Access Management (IAM) para establecer una relación de confianza entre las cuentas de administrador y de destino.CdkStackSetExecRole
: crea un rol de IAM para confiar en la cuenta de administrador.CdkDevopsGuruStackMultiAccReg
— Permite que DevOps Guru funcione en varias regiones y cuentas de AWS para todas las pilas, y configura las notificaciones del Amazon Simple Notification Service (Amazon SNS).CdkDevopsGuruStackMultiAccRegSpecStacks
— Permite que DevOps Guru funcione en varias regiones y cuentas de AWS para pilas específicas, y configura las notificaciones de Amazon SNS.CdkDevopsguruStackOrgUnit
— Permite el cruce OUs de DevOps Guru y configura las notificaciones de Amazon SNS.CdkInfrastructureStack
: implementa ejemplos de componentes de aplicaciones sin servidor, como API Gateway, Lambda y DynamoDB, en la cuenta de administrador para demostrar la inyección de errores y la generación de información.
Arquitectura de aplicación de muestra
El siguiente diagrama ilustra la arquitectura de un ejemplo de aplicación sin servidor que se ha implementado en varias cuentas y regiones. El patrón utiliza la cuenta de administrador para implementar todas las pilas de CDK de AWS. También utiliza la cuenta de administrador como una de las cuentas de destino para configurar DevOps Guru.
Cuando DevOps Guru está activado, primero toma como base el comportamiento de cada recurso y, a continuación, ingiere los datos operativos de CloudWatch las métricas vendidas.
Si detecta una anomalía, la correlaciona con los eventos de origen y genera información. CloudTrail
La información proporciona una secuencia correlacionada de eventos junto con recomendaciones prescritas para que el operador pueda identificar el recurso responsable.
Amazon SNS envía mensajes de notificación al operador.

Automatizar y escalar
El GitHub repositorio
Herramientas
Servicios de AWS
AWS CDK: el Kit de desarrollo en la nube de AWS (AWS CDK) le ayuda a definir su infraestructura de nube como código en uno de los cinco lenguajes de programación compatibles: JavaScript Python TypeScript, Java y C#.
AWS CLI: Interfaz de la línea de comandos de AWS (AWS CLI) es una herramienta unificada que proporciona una interfaz de la línea de comandos coherente para interactuar con los servicios y recursos de AWS.
Código
El código fuente de este patrón está disponible en el GitHub repositorio Amazon DevOps Guru CDK Samples
importante
Algunas de las historias de este patrón incluyen ejemplos de comandos de AWS CDK y AWS CLI formateados para Unix, Linux y macOS. Para Windows, sustituya la barra diagonal invertida (\) utilizada como carácter de continuación de Unix al final de cada línea por el signo de intercalación (^).
Epics
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Configure los perfiles con nombre de AWS. | Configure sus perfiles con nombre de AWS de la siguiente manera para implementar pilas en un entorno de varias cuentas. Para la cuenta de administrador:
Para la cuenta de destino:
Para obtener más información, consulte Uso de perfiles con nombre en la documentación de la CLI de AWS. | DevOps ingeniero |
Compruebe las configuraciones de los perfiles de AWS. | (Opcional) Puede verificar las configuraciones de su perfil de AWS en los archivos | DevOps ingeniero |
Verifique la versión de AWS CDK. | Compruebe la versión del kit de herramientas de AWS CDK mediante el siguiente comando:
Este patrón requiere la versión 1.107.0 o posterior. Si tiene una versión anterior de AWS CDK siga las instrucciones de la documentación de AWS CDK para actualizarla. | DevOps ingeniero |
Clonar el código del proyecto. | Clona el GitHub repositorio de este patrón mediante el comando:
| DevOps ingeniero |
Instale las dependencias de los paquetes y compile los TypeScript archivos. | Instale las dependencias del paquete y compile los TypeScript archivos ejecutando los siguientes comandos:
Estos comandos instalan todos los paquetes del repositorio de muestra. importanteSi aparece algún error relacionado con la falta de paquetes, utilice uno de los siguientes comandos:
—o—
Puede encontrar la lista de nombres y versiones de los paquetes en la sección | DevOps ingeniero |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Configure una dirección de correo electrónico para las notificaciones de Amazon SNS. | Siga estos pasos para proporcionar una dirección de correo electrónico para las notificaciones de Amazon SNS:
| DevOps ingeniero |
Construya el código del proyecto. | Cree el código del proyecto y sintetice las pilas ejecutando el comando:
Debería ver una salida similar a esta:
Para obtener más información y conocer los pasos, consulte Su primera aplicación de AWS CDK en la documentación de AWS CDK. | DevOps ingeniero |
Enumere las pilas de CDK de AWS. | Ejecute el siguiente comando para enumerar todas las pilas de AWS CDK:
El comando muestra la lista siguiente:
| DevOps ingeniero |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Implemente las pilas de CDK de AWS para crear roles de IAM. | Este patrón utiliza AWS CloudFormation StackSets para realizar operaciones de apilamiento en varias cuentas. Si va a crear su primer conjunto de pilas, debe crear las siguientes funciones de IAM para configurar los permisos necesarios en sus cuentas de AWS:
notaLos roles deben tener estos nombres exactos.
Para obtener más información, consulte Otorgar permisos autogestionados en la CloudFormation documentación de AWS. | DevOps ingeniero |
Implemente la pila de CDK de AWS para habilitar DevOps Guru en varias cuentas. | La pila
Actualmente, Amazon DevOps Guru está disponible en las regiones de AWS que figuran en las preguntas frecuentes de DevOps Guru | DevOps ingeniero |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Extrae OU IDs. | En la consola de AWS | DevOps ingeniero |
Habilite los permisos administrados por el servicio para. OUs | Si utiliza AWS Organizations para la administración de cuentas, debe conceder permisos gestionados por el servicio para activar DevOps Guru. En lugar de crear las funciones de IAM manualmente, utilice funciones de acceso confiable basadas en la organización y vinculadas a servicios (). SLRs | DevOps ingeniero |
Implemente la pila de CDK de AWS para permitir que DevOps Guru OUs atraviese. | La
| DevOps ingeniero |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Implemente las pilas de CDK de AWS para crear roles de IAM. | Si aún no ha creado las funciones de IAM requeridas que se muestran en la primera opción, hágalo primero:
Para obtener más información, consulte Otorgar permisos autogestionados en la CloudFormation documentación de AWS. | DevOps ingeniero |
Eliminar las pilas existentes. | Si ya utilizaste la primera opción para habilitar DevOps Guru para todos los recursos de la pila, puedes eliminar la pila anterior mediante el siguiente comando:
O bien, puede cambiar el parámetro | DevOps ingeniero |
Actualizar la pila de CDK de AWS con una lista de pilas. |
| Ingeniero de datos |
Implemente la pila de CDK de AWS para habilitar a DevOps Guru para disponer de recursos de pila específicos en varias cuentas. | La
notaSi ya implementó esta pila para la opción 1, cambie el | DevOps ingeniero |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Implemente el ejemplo del paquete de infraestructura sin servidor. | La
| DevOps ingeniero |
Introducir registros de ejemplo en DynamoDB. | Ejecute el siguiente comando para rellenar la tabla de DynamoDB con registros de ejemplo. Proporcione la ruta correcta para el script
El comando muestra el resultado siguiente:
| DevOps ingeniero |
Compruebe los registros introducidos en DynamoDB. | Para comprobar que la tabla de DynamoDB incluye los registros de muestra del archivo
| DevOps ingeniero |
Espere a que los recursos completen la línea de base. | Esta pila sin servidor tiene algunos recursos. Le recomendamos que espere 2 horas antes de realizar los siguientes pasos. Si implementó esta pila en un entorno de producción, es posible que se tarden hasta 24 horas en completar la línea base, según la cantidad de recursos que haya seleccionado para monitorear en DevOps Guru. | DevOps ingeniero |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Actualizar la pila de infraestructuras CDK de AWS. | Para probar DevOps Guru Insights, puede realizar algunos cambios de configuración para reproducir un problema operativo típico.
| DevOps ingeniero |
Introduzca solicitudes HTTP en la API. | Inyecta tráfico de entrada en forma de solicitudes HTTP en la API
| DevOps ingeniero |
Revise las ideas de DevOps Guru. | En condiciones estándar, el panel de control de DevOps Guru muestra cero en el contador de información continua. Si detecta una anomalía, emite una alerta en forma de información. En el panel de navegación, selecciona Insights para ver los detalles de la anomalía, incluidos un resumen, métricas agregadas, eventos relevantes y recomendaciones. Para obtener más información sobre la revisión de información, consulte la entrada del blog Cómo obtener información operativa AIOps con Amazon DevOps Guru | DevOps ingeniero |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Limpie y elimine recursos. | Después de seguir este patrón, debe eliminar los recursos que ha creado para evitar incurrir en cargos adicionales. Ejecute estos comandos:
| DevOps ingeniero |