Lo peor de un servidor caído no es la caída: es enterarte por un cliente dos horas después. AWS puede avisarte en cuanto algo va mal, pero de serie no avisa de nada: hay que pedírselo máquina por máquina. Esta guía configura los dos avisos que más valen la pena, "la máquina no responde" y "el procesador lleva mucho rato al máximo", de forma que lleguen a tu correo.
Lightsail y EC2 lo hacen de forma distinta. Lightsail lo trae integrado y es más sencillo; EC2 usa dos servicios de AWS con nombre propio, CloudWatch y SNS, que explicamos abajo.
Antes de empezar: qué significa cada cosa
- Métrica
- Un dato que AWS mide de tu máquina cada pocos minutos: uso del procesador, tráfico de red, si responde a las comprobaciones de estado...
- Alarma
- Una regla del tipo "si esta métrica supera tal valor durante tanto tiempo, avísame".
- CPU
- El procesador. Si está al 100 % mucho rato, la web va lenta o algo se ha quedado colgado.
- Comprobación de estado (status check)
- En EC2, una prueba automática que hace AWS cada minuto para ver si la máquina responde. Si falla, la máquina está caída o colgada.
- CloudWatch
- El servicio de AWS que guarda las métricas y gestiona las alarmas de EC2 y del resto de servicios.
- SNS
- Simple Notification Service, el servicio de avisos de Amazon: recibe un mensaje de una alarma y lo envía a quien esté suscrito, por ejemplo a tu correo.
- Tema SNS
- El "canal" al que se envían los avisos y al que te suscribes con tu dirección de correo.
Paso a paso
Lightsail: abre las métricas de la máquina
En la consola de Lightsail, pulsa la máquina y luego la pestaña Métricas. Verás gráficas de CPU, red y comprobaciones de estado. Debajo de cada gráfica hay un enlace Añadir alarma.
Lightsail: crea la alarma de "no responde"
En la gráfica Fallos de comprobación de estado, pulsa Añadir alarma. Condición: que sea mayor o igual que 1 durante 2 periodos de 5 minutos (así evitas un aviso por un parpadeo de un minuto). En Notificaciones, marca Correo electrónico y escribe tu dirección; la primera vez Lightsail te envía un correo de confirmación que tienes que aceptar. Si lo prefieres, en algunas regiones también admite SMS. Guarda.
Lightsail: crea la alarma de CPU
En la gráfica Utilización de la CPU, Añadir alarma. Condición: mayor que 90 % durante 3 periodos de 5 minutos, es decir, un cuarto de hora al límite. Mismo correo. Si tu máquina es de las pequeñas, en la propia gráfica verás también la zona "ampliable": las máquinas pequeñas pueden ir al 100 % un rato, pero no de forma sostenida.
Opcional y muy útil: en la misma pestaña, la alarma de tráfico de red saliente alto avisa de que la web recibe mucha más visita de lo normal o de que algo está enviando datos que no debería.
EC2: crea el canal de avisos (tema SNS)
Para EC2 hace falta primero el "canal". Abre el servicio SNS, Temas, Crear tema, tipo Estándar, nombre
avisos-servidores. Dentro del tema, Crear suscripción, protocolo Correo electrónico, tu dirección. Te llega un correo con un enlace de confirmación: púlsalo. Hasta que no esté "Confirmada", no recibirás nada. Puedes añadir varias direcciones.EC2: crea las dos alarmas desde la máquina
En la consola de EC2, selecciona la máquina, pestaña Monitorización, botón Crear alarma (o bien Acciones, Monitorizar y solucionar problemas, Administrar alarmas de CloudWatch). Primera alarma: métrica Status check failed, condición mayor o igual que 1 durante 2 periodos de 5 minutos, notificación al tema
avisos-servidores. Si quieres que AWS reinicie la máquina sola cuando falle la comprobación de estado, marca la acción "Reiniciar": para una web, suele ser lo que querrías de todas formas.Segunda alarma: métrica CPUUtilization, mayor que 90 % durante 3 periodos de 5 minutos, misma notificación. Repite en cada máquina que te importe.
Prueba que llega
No esperes al día del problema. En CloudWatch, abre la alarma y usa Acciones, Establecer estado de alarma para forzarla un momento: te debe llegar el correo. En Lightsail, para la máquina desde la consola unos minutos (si puedes permitírtelo) y comprueba que avisa. Vuelve a dejarlo todo como estaba.
Qué puede salir mal
No llega ningún correo
La suscripción está sin confirmar o el correo de confirmación fue al spam. En SNS, la suscripción debe decir "Confirmada". En Lightsail, el contacto de correo debe aparecer como verificado en la pestaña Métricas.
Me avisa cada dos por tres
Los umbrales están demasiado ajustados. Sube el porcentaje o alarga el tiempo (por ejemplo 90 % durante 30 minutos). Un aviso que se ignora es peor que ninguno: afina hasta que cada aviso signifique algo.
La máquina se cayó y no avisó
Si la máquina se paró desde la consola (alguien pulsó Detener), la comprobación de estado no cuenta como fallo: la máquina está parada, no rota. Para eso hace falta una vigilancia aparte que compare el estado real con el que debería tener.
Quiero el aviso en el móvil, no por correo
En SNS, además del correo, puedes suscribir un número de teléfono (SMS, con coste y no en todas las regiones) o una aplicación tuya. Y hay servicios de guardia que se conectan a SNS. Para empezar, el correo en el móvil cumple.
En Simplio
En Simplio no hay que crear alarmas una a una: marcas en cada máquina qué quieres vigilar (parada inesperada, procesador al límite, disco lleno, copia no hecha) y Simplio comprueba todas tus cuentas de AWS cada pocos minutos y te avisa por correo y en la aplicación, un aviso cuando aparece y otro cuando se resuelve. Cada persona de tu equipo elige qué avisos recibe. Y como Simplio sabe si una máquina debería estar encendida, avisa también cuando alguien la para desde la consola.
Lo mismo, en AWS y en Simplio
| En la consola de AWS | En Simplio | |
|---|---|---|
| Aviso de máquina caída o CPU alta | Lightsail: 2 alarmas por máquina. EC2: tema SNS, suscripción, confirmación, 2 alarmas por máquina: 6 pasos, 15 minutos por máquina | Marcar qué vigilar en cada máquina: 2 casillas |
| Si alguien para la máquina desde la consola | Las alarmas no lo detectan | Simplio sabe si debería estar encendida y avisa |
| Varias cuentas y regiones | Repetir en cada una | Todas las cuentas vigiladas desde el mismo sitio, cada persona elige sus avisos |