Cómo crear una alarma para una instancia EC2 con Cloudwatch
Cloudwatch pertenece al servicio «Gestión y Gobernanza» de AWS (Amazon Web Services). Cloudwatch es un servicio de monitorización y gestión que puede utilizarse para monitorizar servicios en AWS y gestionarlos cuando se cumpla una condición determinada. Cloudwatch puede utilizarse para recopilar datos de rendimiento y funcionamiento (CPU, RAM, Network_IN, Network_Out, etc) de los servicios disponibles en AWS .
En cuanto a la facturación, Cloudwartch ofrece 2 opciones diferentes, la capa gratuita y la capa de pago. La capa gratuita incluye métricas de monitorización básicas con una frecuencia de 5 minutos y la capa de pago te permite monitorizar con una frecuencia de 1 minuto. Esta es sólo una pequeña diferencia entre la Categoría Gratuita y la Categoría de Pago. Para saber más sobre la facturación, haz clic aquí.
Antes de continuar, vamos a entender algunos términos que veremos más adelante en este artículo.
Alarma: La alarma se utiliza para realizar una acción más en función del valor de la métrica o expresión en relación con un umbral a lo largo de una serie de periodos de tiempo
- ACEPTAR: Cuando la métrica está dentro del rango que hemos especificado, la alarma está en estado OK
- EN ALARMA: Cuando la métrica cruza el valor del umbral, la alarma pasa al estado «EN ALARMA».
- DATOS_INFICIENTES: Si faltan o están incompletos los datos necesarios para tomar la decisión, la alarma pasa al estado «DATOS_INFICIENTES».
Tema SNS: Es un canal de comunicación lógico en AWS donde se envían las notificaciones. Aquí, utilizaremos el correo electrónico como nuestro Tema SNS(Simple Notification Service)
Acción EC2: Las alarmas de Cloudwatch se pueden utilizar para realizar una acción determinada. Aquí detendremos una instancia EC2 cuando la alarma pase al estado «En Alarma».
En este artículo, veremos cómo monitorizar una instancia EC2 para conocer su Carga de CPU. Crearemos una alarma y veremos cómo puede activarse cuando la Carga de CPU supere el límite especificado. Cuando se alcance este límite, apagaremos la instancia EC2 para entender cómo actuar cuando se dispare la alarma.
Requisitos previos
- Cuenta AWS(Créala si no tienes una)
- Instancia EC2 (Haz clic aquí para aprender a crear una instancia EC2 si no tienes una o si quieres aprender )
¿Qué vamos a hacer?
- Iniciar sesión en AWS.
- Crea un Tema SNS.
- Crea una Alarma.
- Aumenta la Carga de CPU en la instancia EC2.
Iniciar sesión en AWS
- Haz clic en aquí para ir a la página de inicio de sesión de AWS.
Cuando pulsemos el enlace anterior, veremos una página web como la siguiente en la que se nos pide que iniciemos sesión utilizando nuestros datos de acceso.
Una vez que iniciemos sesión en AWS con éxito, veremos la consola principal con todos los servicios enumerados a continuación.
Crear un Tema SNS
Para crear un tema SNS al que enviaremos notificaciones, haz clic en «Servicios» y busca SNS. Haz clic en «Servicio de Notificación Simple». Aquí crearemos un tema SNS y añadiremos el Email al que se enviarán las notificaciones. Recuerda el nombre del tema que le vamos a dar, será necesario en el siguiente paso.
Haz clic en «Crear tema» para crear un tema «Servicio simple de notificación».
Da un nombre al tema a crear, aquí es «mi-sns-tema» sobre el que se enviarán las notificaciones. El nombre para mostrar es opcional y puedes dejarlo como está. Otros ajustes como Cifrado, Política de Acceso, etc son avanzados y no los veremos en este artículo y pueden ignorarse para crear una simple Alarma. Desplázate hacia abajo en la página y haz clic en «Crear Tema». Esto sólo creará un tema. Nos queda añadir el canal de comunicación.
Acabamos de crear un tema y aún no hemos especificado el medio de comunicación . Añadiremos el correo electrónico como medio de comunicación, para ello necesitamos crear una suscripción.
Para crear una suscripción, haz clic en «Crear suscripción».
Selecciona un ARN del tema que hemos creado en el paso anterior y elige el protocolo como correo electrónico (medio) en el menú desplegable. Especifica la dirección de correo electrónico a la que deben enviarse las notificaciones. Haz clic en «Crear suscripción» para finalizar este paso. Una vez creada la suscripción, recibirás un correo electrónico de AWS para suscribir el tema. Si no nos suscribimos, no recibiremos notificaciones en nuestro correo electrónico. Así que no olvides suscribirte al tema.
Para suscribirte al tema que acabas de crear, abre tu buzón de correo electrónico y haz clic en confirmar suscripción. Aquí termina el proceso de creación de un tema y de suscripción.
Crear una alarma
Ahora, para crear una alarma haz clic en «Servicios» y busca «Cloudwatch», haz clic sobre ella para seleccionarla.
Verás una pantalla como la siguiente. Ahora haz clic en «Alarmas» en el panel izquierdo.
Haz clic en «Crear alarma».
Haz clic en «Seleccionar métricas».
En «Todas las métricas», selecciona EC2.
Haz clic en «Métricas previas a la instancia».
Selecciona «CPUUtilization» y haz clic en «Seleccionar métrica».
Ahora, selecciona el ID de la Instancia en la que se debe establecer la alarma y cambia el periodo a 1 minuto para que podamos probar la alarma sin perder mucho tiempo.
Puedes probar diferentes métricas y configuraciones una vez que te familiarices con este proceso.
Aquí viene la parte que nos permite establecer la condición, aquí definiremos el valor umbral como «10». Esto significa que si la Utilización de la CPU supera el 10% durante 1 minuto, se activará la alarma.
Una vez activada la alarma, necesitamos enviar una notificación cuando la alarma pase al estado «En Alarma» en el tema que creamos en el estado anterior, así que selecciona ese nombre de tema.
Además de enviar una notificación, también realizaremos una acción determinada en esa instancia EC2, aquí detendremos la instancia cuando la alarma pase al estado «En Alarma». Puedes seleccionar cualquier acción de tu elección. Haz clic en «Siguiente».
Añade el nombre de la Alarma que se enviará como asunto del correo electrónico, adicionalmente también se puede enviar más información. Haz clic en «Siguiente».
Revisa la configuración y pulsa en «Crear alarma» .
Y aquí termina la configuración completa de establecer la alarma que enviará una notificación a un tema del SNS cuando se cumpla la condición. Espera un poco y la alarma estará lista para monitorizar la instancia EC2.
Probando: Aumento de la carga de la CPU en la instancia EC2
Para activar la alarma manualmente, aumentaremos la carga de la instancia EC2.
Para ello, primero necesitamos instalar un paquete necesario, stress. Sigue los siguientes pasos para instalar ‘stress’ en ubuntu 18.04.
sudo apt-get update
apt-get install stress
Ahora aumentaremos la carga al 50% durante 60 segundos consecutivos. Esto activará la alarma y hará caer la instancia EC2.
stress --cpu 50 --timeout 120
En cuanto se cumpla la condición, recibirás una notificación y la instancia se desactivará.
Ahora puedes ver en Alarmas que el estado de la alarma que habíamos creado en los pasos anteriores es «En Alarma» y con esto finaliza el artículo.
Como resultado de esto y debido a la acción que especificamos en los pasos anteriores, la instancia EC2 se da de baja.
Conclusión
En este artículo hemos aprendido a crear un Tema SNS, una suscripción y una alarma. También vimos cómo se puede aumentar manualmente la carga de la CPU para activar la alarma que, a su vez, envía una notificación en el canal de correo electrónico.