
La transición a aplicaciones distribuidas está en pleno auge, impulsada principalmente por nuestra necesidad de estar “siempre activos” como consumidores y empresas dinámicas. Esa necesidad está llevando a los despliegues a tener requisitos más complejos, además de la capacidad de ser globalmente diversos e innovar con rapidez.
El cloud se está convirtiendo en la opción de despliegue de hecho para las aplicaciones actuales. Muchos despliegues en el cloud optan por hospedar sus aplicaciones en AWS por el conjunto globalmente diverso de regiones que abarca y la gran cantidad de servicios (para innovación y despliegue más rápido) disponibles, y por reducir los costos operativos y de capital. En AWS, los equipos de desarrollo encuentran valor adicional en migrar a Kubernetes en Amazon EKS, probar las opciones sin servidor más recientes y mejorar las aplicaciones tradicionales con niveles con mejores servicios.
Elastic Observability ofrece 30 integraciones listas para usar para servicios de AWS y se agregarán más próximamente.
Puedes encontrar un resumen en el que se destacan algunas de las integraciones y capacidades en una publicación anterior:
- Elastic and AWS: Seamlessly ingest logs and metrics into a unified platform with ready-to-use integrations (Elastic y AWS: Ingestar logs y métricas sin problemas en una plataforma unificada con integraciones listas para usar).
Algunas publicaciones adicionales sobre integraciones de servicios clave de AWS en Elastic:
- APM (métricas, rastreos y logs) para funciones sin servidor en AWS Lambda con Elastic
- Ingesta de logs de servicios de AWS en Elastic a través del reenviador sin servidor en Lambda
- Integración de Amazon S3 Storage Lens de Elastic: Simplificar la gestión, controlar los costos y reducir el riesgo
- Ingestar los logs de contenedor en Elastic Cloud con AWS FireLens
Puedes encontrar una lista completa de las integraciones de AWS en la documentación en línea de Elastic:
Además de nuestras integraciones de AWS nativas, Elastic Observability agrega no solo logs, sino también métricas de los servicios de AWS y las aplicaciones que se ejecutan en los servicios informáticos de AWS (EC2, Lambda, EKS/ECS/Fargate). Todos estos datos pueden analizarse visualmente y de forma más intuitiva usando las capacidades de machine learning avanzadas de Elastic, que ayudan a detectar problemas de rendimiento y revelar causas raíz antes de que los usuarios se vean afectados.
Para obtener más detalles sobre cómo Elastic Observability proporciona capacidades de monitoreo de rendimiento de aplicaciones (APM), como mapas de servicios, rastreos, dependencias y correlaciones de métricas basadas en ML:
- Correlaciones de APM en Elastic Observability: Identificación automática de causas probables de transacciones lentas o fallidas
- Elastic and AWS: Get the most value from your data sets (Elastic y AWS: Obtener el máximo valor de los sets de datos)
Así es, Elastic ofrece la ingesta, agregación y análisis de métricas para las aplicaciones y los servicios de AWS en servicios informáticos de AWS (EC2, Lambda, EKS/ECS/Fargate). Elastic es más que logs; ofrece una solución de observabilidad unificada para los entornos de AWS.
En este blog, revisaremos cómo Elastic Observability puede monitorear las métricas de una aplicación de AWS simple que se ejecuta en servicios de AWS, lo que incluye:
- AWS EC2
- AWS ELB
- AWS RDS (AuroraDB)
- AWS NAT Gateways
Como verás, una vez que la integración está instalada, las métricas llegarán de forma instantánea y puedes comenzar de inmediato a revisar las métricas.
Si tienes pensado seguir este blog, estos son algunos de los componentes y detalles que usamos para configurar esta demostración:
- Asegúrate de tener una cuenta en Elastic Cloud y un stack desplegado (consulta las instrucciones aquí).
- Asegúrate de tener una cuenta de AWS con permisos para extraer los datos necesarios de AWS. Ve los detalles en nuestra documentación.
- Usamos la app de tres niveles de AWS y la instalamos como se indica en git.
- Haremos un recorrido por la instalación de la Integración de AWS de Elastic, que abarca los cuatros servicios de los que queremos recopilar métricas.
(Lista completa de servicios que cuentan con soporte en la Integración de AWS de Elastic) - No abarcaremos el monitoreo de aplicaciones dado que hay otros blogs que abarcan el monitoreo de aplicaciones (métricas, logs y rastreos) en AWS. En cambio, nos enfocaremos en cómo se pueden monitorear con facilidad los servicios de AWS.
- A fin de ver métricas, deberás cargar la aplicación. También creamos un script de Playwright para dirigir el tráfico a la aplicación.
Antes de adentrarnos en la configuración de Elastic, repasemos qué estamos monitoreando. Si sigues las instrucciones para aws-three-tier-web-architecture-workshop, se desplegará lo siguiente.

Qué se despliega:
- 1 VPC con 6 subredes
- 2 AZ
- 2 servidores web por AZ
- 2 servidores de aplicaciones por AZ
- 1 balanceador de carga de aplicaciones orientado al exterior
- 1 balanceador de carga de aplicaciones orientado al interior
- 2 puertas de enlaces de NAT para gestionar el tráfico a la capa de aplicaciones
- 1 puerta de enlace de internet
- 1 RDS Aurora DB con una réplica de lectura
Al final de este blog, también proporcionaremos un script de Playwright para implementar a fin de cargar esta app. Esto ayudará que las métricas "iluminen" los dashboards.
Sigue las instrucciones incluidas en la app de tres niveles de AWS y las instrucciones en el enlace del taller en git. El taller se incluye aquí.
Una vez instalada la app, obtén las credenciales de AWS. Las necesitarás para la integración de AWS de Elastic.
Existen varias opciones para las credenciales:
- Usar directamente claves de acceso
- Usar credenciales de seguridad temporales
- Usar un archivo de credenciales compartido
- Usar un nombre de recurso de Amazon (ARN) de rol de IAM
Obtén más detalles sobre cuestiones específicas de las credenciales y permisos necesarios.
Sigue las instrucciones para dar los primeros pasos en Elastic Cloud.


Selecciona la integración Add AWS (Agregar AWS).

Aquí es donde agregarás tus credenciales, y se almacenarán como política en Elastic. Esta política se usará como parte de la instalación para el agente en el paso siguiente.
Como puedes ver, la Integración de AWS de Elastic general recopilará una gran cantidad de datos de 30 servicios de AWS. Si no deseas instalar esta Integración de AWS de Elastic, puedes seleccionar integraciones individuales para instalar.

Selecciona el nombre de la política que creaste en el último paso.

Sigue el paso 3 en las instrucciones en la ventana Add agent (Agregar agente). Para esto, deberás:
1: Activar una instancia de EC2
- t2.medium es mínimo
- Linux - tú eliges cuál
- Asegúrate de permitir la reservación abierta en la instancia de EC2 cuando la inicies
2: Iniciar sesión en la instancia y ejecutar los comandos en la pestaña Linux Tar (a continuación se muestra un ejemplo)
curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.5.0-linux-x86_64.tar.gz
tar xzvf elastic-agent-8.5.0-linux-x86_64.tar.gz
cd elastic-agent-8.5.0-linux-x86_64
sudo ./elastic-agent install --url=https://37845638732625692c8ee914d88951dd96.fleet.us-central1.gcp.cloud.es.io:443 --enrollment-token=jkhfglkuwyvrquevuytqoeiyri
Este es un script simple que también puedes ejecutar con Playwright a fin de agregar tráfico al sitio web para la aplicación de tres niveles de AWS:
import { test, expect } from '@playwright/test';
test('homepage for AWS Threetierapp', async ({ page }) => {
await page.goto('http://web-tier-external-lb-1897463036.us-west-1.elb.amazonaws.com/#/db');
await page.fill('#transactions > tbody > tr > td:nth-child(2) > input', (Math.random()*100).toString())
await page.fill('#transactions > tbody > tr > td:nth-child(3) > input', (Math.random()*100).toString())
await page.waitForTimeout(1000)
await page.click('#transactions > tbody > tr:nth-child(2) > td:nth-child(1) > input[type=button]')
await page.waitForTimeout(4000)
});
Este script iniciará tres navegadores, pero puedes limitar esta carga a un navegador en el archivo playwright.config.ts.
Para este ejercicio, ejecutamos este tráfico durante aproximadamente cinco horas con un intervalo de cinco minutos mientras probamos el sitio web.
Ahora que tu Elastic Agent se está ejecutando, puedes ir a los dashboards de AWS relacionados para ver qué se está ingestando.
Para buscar los dashboards de Integración de AWS, simplemente búscalos en la barra de búsqueda de Elastic. Los relevantes para este blog son los siguientes:
- [Metrics AWS] EC2 Overview
- [Metrics AWS] ELB Overview
- [Metrics AWS] RDS Overview
- [Metrics AWS] NAT Gateway

Veamos qué aparece.
Todos estos dashboards vienen listos para usar y aplican a todas las imágenes siguientes, acotamos las vistas a solo los elementos relevantes de nuestra app.
En todos los dashboards, limitamos el plazo al momento en que ejecutamos el generador de tráfico.

Una vez que filtramos nuestras 4 instancias de EC2 (2 servidores web y 2 servidores de aplicaciones), podemos ver lo siguiente:
1: las 4 instancias están en marcha sin errores en las comprobaciones de estado.
2: vemos el uso de CPU promedio en todo el plazo, y nada parece inusual.
3: vemos el flujo de bytes de la red, de entrada y salida, que se agregan con el tiempo a medida que se cargan filas en la base de datos.
Si bien este ejercicio muestra una pequeña porción de las métricas que pueden visualizarse, hay más disponibles de AWS EC2. Las métricas enumeradas en la documentación de AWS están todas disponibles, incluidas las dimensiones para ayudar a acotar la búsqueda a instancias específicas, etc.

En el dashboard de ELB, filtramos nuestros 2 balanceadores de carga (balanceador de carga web externo y balanceador de carga de aplicaciones interno).
Con el dashboard listo para usar, puedes ver las métricas específicas de ELB de las aplicaciones. Una buena parte de las métricas específicas de ELB de las aplicaciones incluidas en la documentación de AWS están disponibles para agregar grafos.
Para nuestros dos balanceadores de carga, podemos ver lo siguiente:
1: ambos hosts (instancias de EC2 conectadas a ELB) están en buen estado.
2: las unidades de capacidad del balanceador de cargas (cuánto usas) y los recuentos de solicitudes aumentaron conforme a lo esperado durante el plazo de generación de tráfico.
3: elegimos mostrar los recuentos 4XX y 2XX. 4XX ayudará a identificar problemas con la aplicación o conectividad con los servidores de aplicaciones.

Para AuroraDB, que se despliega en RDS, filtramos solo las instancias primarias y secundarias de Aurora en el dashboard.
Al igual que con EC2 y ELB, la mayoría de las métricas de Cloudwatch también están disponibles para crear nuevos gráficos y grafos. Acotamos este dashboard para mostrar lo siguiente:
1: rendimiento de insertar y rendimiento de seleccionar
2: latencia de escritura
3: uso de CPU
4: cantidad general de conexiones durante el plazo

Aplicamos filtros para ver solo nuestras 2 instancias de NAT, al frente de los servidores de aplicaciones. Tal como con los otros dashboards, hay otras métricas disponibles para crear grafos y gráficos según sea necesario.
Para el dashboard de NAT podemos ver lo siguiente:
1: las NAT Gateways están bien debido a que no se perdieron paquetes
2: una cantidad esperada de conexiones activas desde el servidor web
3: un conjunto bastante normal de métricas para bytes de entrada y salida
¡Felicitaciones! Comenzaste a monitorear métricas de servicios de AWS clave para tu aplicación.
Ahora que las métricas se están monitoreando, también puedes agregar logging. Existen varias opciones para ingestar logs.
1. La Integración de AWS en Elastic Agent tiene configuraciones de logs. Solo asegúrate de activar lo que deseas recibir. Ingestemos los logs de Aurora de RDS. En la política de Elastic Agent, simplemente activamos Collect logs from CloudWatch (Recopilar logs de CloudWatch) (consulta a continuación). Luego, actualiza el agente a través de la UI de gestión de Fleet.

2. Puedes instalar el reenviador de logs de Lambda. Esta opción extraerá logs de varias ubicaciones. Ve el diagrama de la arquitectura a continuación.

También puedes encontrar una revisión de esta opción en este blog.
Una vez que las métricas y los logs (o uno de ellos) se encuentren en Elastic, comienza a analizar tus datos a través de las capacidades de ML de Elastic. Puedes encontrar una buena revisión de estas características aquí:
- Cómo correlacionar la telemetría de APM para determinar las causas raíz en transacciones
- Introducción a Elastic Machine Learning
Y hay muchos más videos y blogs en el blog de Elastic.
Espero que hayas podido apreciar cómo Elastic Observability puede ayudarte a monitorear las métricas de servicios de AWS, aquí hay un breve resumen de las lecciones y lo que aprendiste:
- Elastic Observability ofrece soporte para la ingesta y el análisis de las métricas de servicios de AWS.
- Es fácil configurar la ingesta de los servicios de AWS a través de Elastic Agent.
- Elastic Observability tiene varios dashboards de servicios de AWS listos para usar (OOTB) que puedes utilizar para revisar de forma preliminar la información y, luego, modificar conforme a tus necesidades.
- Se brinda soporte para más de 30 servicios de AWS como parte de la Integración de AWS en Elastic Observability, y más servicios se agregan con regularidad.
- Como se menciona en los blogs relacionados, puedes analizar las métricas de servicios de AWS con las capacidades de machine learning de Elastic.
comienza tu propia prueba gratuita de 7 días registrándote a través de AWS Marketplace y activa rápidamente un despliegue en minutos en cualquiera de las regiones de Elastic Cloud en AWS en todo el mundo. Tu compra en AWS Marketplace de Elastic se incluirá en tu facturación consolidada mensual y se tendrá en cuenta para el gasto acordado con AWS.
El lanzamiento y la sincronización de cualquier característica o funcionalidad descrita en este blog quedan a la entera discreción de Elastic. Cualquier característica o funcionalidad que no esté disponible actualmente puede no entregarse a tiempo o no entregarse en absoluto.