Blog de Amazon Web Services (AWS)

Gobierna de Forma Centralizada tus Aplicaciones con AppRegistry y Application Manager

Por Kishore Vinjam, Arquitecto de Soluciones Partner de AWS

 

Los clientes con los que trabajamos suelen manejar múltiples aplicaciones en sus entornos de nube. En general, una aplicación incluye varios recursos de AWS desplegados a través de stacks de AWS CloudFormation, API o herramientas de infraestructura como código. A menudo los clientes preguntan por mecanismos mas eficientes para administrar los recursos y gobernar las políticas de seguridad de sus recursos en el contexto de la aplicación. Además, desean definir metadatos para sus aplicaciones incluyendo información de los equipos dueños de las aplicaciones, el centro de costo al que pertenecen y aspectos de seguridad entre otros.

Esta publicación les mostrará un mecanismo para agrupar los recursos utilizando AWS Service Catalog AppRegistry con AWS Resource Groups y obtener información operacional sobre las aplicaciones a través de AWS Systems Manager Application Manager.

AppRegistry proporciona un lugar para realizar diversas tareas. En principio permite trabajar con stacks de AWS CloudFormation y asociar grupos de atributos (metadatos), los cuales ayudan a enriquecer el contexto al cual pertenecen las aplicaciones de AWS. También ayuda a automatizar la carga y modificación de los metadatos, pudiendo invocar AppRegistry desde los propios procesos de CI/CD que tengan. Aquellas areas de la organización interesadas en conocer información sobre las aplicaciones, siempre podrán obtener la información más reciente tan solo consultando los grupos de atributos.

Por otro lado Application Manager, un modulo de AWS Systems Manager, puede ayudar al equipo de DevOps a investigar y remediar sus problemas dentro del contexto de sus aplicaciones y clústeres. Application Manager integra información de operaciones provenientes de múltiples servicios de AWS tales como: Alarmas de CloudWatch, información de compliance, logs, datos los clusters EKS y ECS, entre varios otros, en una único panel de administración.

Prueba los siguientes pasos a continuación en este blog, en donde utilizaras un Stack de AWS CloudFormation para desplegar una aplicación de ejemplo, luego registraras con AppRegistry y configuraras políticas de seguridad y métricas de monitoreo. Verás cómo estas aplicaciones se descubren automáticamente en Application Manager y recibirá información adicional sobre las aplicaciones.

Aquí hay una breve descripción de algunos de los términos que usaremos:

  • Una aplicación es un grupo lógico de recursos de AWS que se desea operar como una unidad.
  • Una métrica de Amazon CloudWatch representa un conjunto ordenado de datos en el tiempo.
  • OpsCenter, un modulo de AWS Systems Manager, proporciona una ubicación central donde los ingenieros de operaciones y los profesionales de TI pueden ver datos relevantes para la operación (OpsItems), investigar y resolver problemas relacionados con los recursos de AWS.
  • AWS Config realiza un seguimiento continuo de los cambios de configuración que se producen entre sus recursos. Verifica si estos cambios violan alguna de las condiciones de sus reglas.

 

Algunos Puntos a Considerar

  • Debe tener una cuenta de AWS para implementar esta solución.
  • Habilite OpsCenter en la región de AWS donde está desplegando esta solución.
  • Habilite el servicio AWS Config en la Región en la que está operando. Si está trabajando en el entorno administrado por AWS Control Tower, entonces AWS Config ya se encuentra habilitado como parte de la inscripción de la cuenta.
  • Cree un Key Pair para EC2. Estas serán utilizadas con el LAMP Stack que usted desplegará como parte de esta solución.
  • Estará desplegando un LAMP Stack de una única instancia. Consulte el Application framework para implementar stacks altamente escalables.
  • Los umbrales de alarma en CloudWatch estarán configurados en umbrales bajos con el fin de demostrar la funcionalidad. Puede actualizar la alarma de CloudWatch para aumentar los umbrales según le parezca.

 

Descripción de la Solución

 El siguiente diagrama ilustra el flujo de trabajo de cómo utilizar Application Manager para habilitar políticas de gobierno y realizar tareas operativas en el contexto creado por AppRegistry Application.

  1. Desplegar el stack de CloudFormation proporcionado en este blog. El stack despliega:
    • Un VPC para proporcionar un entorno aislado para la aplicación.
    • Un LAMP Stack para simular una aplicación web.
    • Alarmas de Amazon CloudWatch configuradas para los recursos de esta aplicación.
    • Reglas adicionales de AWS Config para vigilar el estado de cumplimiento de la aplicación.
  1. Una vez finalizado el despliegue del Stack, verá Aplicaciones en el Application Manager automáticamente.
  2. Usted deberá manualmente ejecutar acciones que dispararán alarmas de CloudWatch y OpsItems.
  3. Investigará los incumplimientos pendientes y los insights operativos mediante el uso de Application Manager.

 

 

Como Funciona

 Lanzamos el Stack que crea un nuevo VPC, desplegamos el LAMP Stack que incluye software de código abierto, utilizado para el desarrollo de aplicaciones web y que configurará métricas de CloudWatch para reportar tráfico elevado. Finalmente exploraremos los componentes de la solución y usaremos runbooks para remediar los incumplimientos reportados.

Paso 1: Desplegar Recursos y Registrarlos en AppRegistry

  • Inicie sesión en su cuenta de AWS en una pestaña separada a la de este blog.
  • Haga click en este Link: Desplegar Stack.
  • En la consola de CloudFormation haga click en “Siguiente”.
  • Seleccione los siguientes parámetros:
    • RegionAZ1name: Seleccione una zona de disponibilidad.
    • RegionAZ2name: Seleccione otra zona de disponibilidad.
    • EC2KeyPair: Seleccione el key pair de EC2 previamente creado.
    • BastionSSHCIDR: Escriba su IP para permitir el acceso exclusivo por SSH a la instancia bastión. Podrá obtener su dirección IP usando https://www.whatsmyip.org/. Agregue ‘/32’ al final. Ejemplo: xxx.yyy.zzz.aaa/32.
    • SupportContact: Escriba una dirección de correo electrónico, el mismo correo electrónico también será utilizado para la suscripción del servicio AWS Simple Notification Service.
    • Puede dejar el resto de los parámetros en sus valores predeterminados.
  • Haga click en “Siguiente” hasta llegar a la pantalla de “Revisión”.
  • Una vez en la sección de “Revisión”, al final de la página, dentro de la sección “Capacidades” marcar las casillas:
    • Confirmo que AWS CloudFormation podría crear recursos de IAM con nombres personalizados.
    • Confirmo que AWS CloudFormation podría requerir la siguiente capacidad: CAPABILITY_AUTO_EXPAND
  • Haga click en “Crear Pila” (stack).
  • Deberá esperar a que el despliegue del Stack cambie a CREATE_COMPLETE. Esto puede tardar de 5 a 10 minutos.
  • Mientras espera el cambio de estado del Stack, recibirá un correo electrónico de suscripción SNS. Confirme la suscripción.

Paso 2: Verificar la Nueva Aplicación en AppRegistry

  • En la consola de CloudFormation, elija el Stack desplegado en pasos anteriores y seleccione la pestaña “Salidas”
  • Seleccione el valor de “ApplicationSCURL” para poder abrir la nueva Aplicación que se acaba de crear.
  • También puede acceder a la aplicación que se acaba de crear ingresando al servicio Service Catalog”, luego haga click en AppRegistry”, “Applications”, y el haga click sobre <NOMBRE APP> para acceder a la aplicación.
  • En la pestaña “Resources”, deberá ver 4 recursos.
  • En la pestaña “Attribute Groups”, deberá ver 2 recursos.
  • Debajo de la pestaña “Tags”, deberá ver 3 pares clave:valor.

 

 

Paso 3: Acceder a la aplicación registrada en AppRegistry desde System Manager Application Manager

  • En la página de AWS Service Catalog, elija “View in Application Manager” en la esquina superior derecha.

 

 

  • La solapa de “Overview” brinda detalles relacionados con alarmas activas de CloudWatch y diferentes datos relevantes de operación (OpsItems)

 

 

  • Seleccione la solapa de “Resources” para ver la lista de todos los recursos asociados a la aplicación.

 

 

  • Seleccione la solapa de “Compliance” para ver el estado de cumplimiento de los recursos de la aplicación usando AWS Config. De forma opcional seleccione algún Resource ID y haga click en “Resource timeline” para poder ver el histórico relacionado a dicho recurso.
  • Al desplazarse hacia abajo podrá observar la sección de “AWS Config Rules compliance” en donde encontrará las reglas que aplican a la aplicación.

 

 

  • Elija la solapa de “Monitoring” y en el panel izquierdo seleccione el componente que comienza con: AppRegistry-Stack-BumbleBeeApplication-LaunchLampStack.

 

 

Paso 4: Genere trafico de red y obtenga datos de operación (OpsItems)

<NOMBRE-STACK>-LaunchLampStack-

  • Seleccione la solapa de “Outputs” y busque el valor “WebsiteURL” y haga click para abrir el sitio PHP que se creó con el Stack LAMP.

 

 

  • Esto abrirá una pagina web, como se muestra abajo. Refresque la pagina 3 o 4 veces para generar trafico y provocar que se active la alarma de CloudWatch.

 

 

  • Diríjase al servicio de “System Manager”, en el panel izquierdo haga click en “Application Manager” y luego en la sección de “Applications” haga click en “AppRegistry Applications” y luego seleccione:

<NOMBRE-APP>

  • A continuación podrá ver los datos de operación (OpsItems) registrados por la aplicación en la solapa de “Overview”.

 

 

  • Ahora seleccione la solapa de “OpsItems” para ver todos los datos de operación reportados por la aplicación.

 

 

Paso 5: Verifique la línea temporal de los recursos que no se encuentran en cumplimiento.

  • En la misma interfaz del punto anterior, seleccione la solapa de “Compliance”.
  • Debajo de “Config Resource compliance”, busque por “Subnet” con el propósito de listar las subnets asociadas a la aplicación.
  • Seleccione cualquier “Resource ID” identificado como “Noncompliant” y haga click en “Resource timeline”.

 

 

  • Será re direccionado a la vista de línea temporal perteneciente a AWS Config.

 

 

¡Felicitaciones! Creó e implementó con éxito una aplicación en AWS Service Catalog AppRegistry desplegando un stack comprendido por múltiples recursos de AWS. También extendió la visibilidad de la aplicación al AWS System Manager Application Registry con el objetivo de visualizar y gobernar de forma centralizada los recursos de la aplicación, mediante la obtención de información adicional sobre el estado de cumplimiento y operación.

 

Limpieza

La solución desplegada como parte de este blog fue a modo de demostración. Le recomendamos desinstalar esta solución y contemplar la posibilidad de actualizarla o adaptarla según las necesidades de tu negocio. Dejar el stack instalado podría resultar en notificaciones adicionales y en acumulación de costo asociado a EC2, una instancia de base de datos y otros componentes desplegados como parte de esta solución. Para desinstalar la solución puede seguir los pasos que se indican a continuación.

 

Conclusión

 Esta publicación le mostró cómo agrupar varios recursos de AWS como una aplicación utilizando AWS Service Catalog AppRegistry y a administrar de forma centralizada los recursos, así como también gobernar las políticas de seguridad en el contexto de una aplicación que utiliza la integración con AWS Systems Manager Application Manager.

 

Este artículo fue traducido del Blog de AWS en Inglés.

 


Sobre el Autor

Kishore Vinjam es un Partner Solutions Architect enfocado en AWS Service Catalog, AWS Control Tower y AWS Marketplace.