O pior de um servidor em baixo não é a queda: é saber dela por um cliente duas horas depois. A AWS pode avisá-lo assim que algo corre mal, mas de origem não avisa de nada: há que pedir-lho máquina a máquina. Este guia configura os dois avisos que mais valem a pena, "a máquina não responde" e "o processador está há muito tempo no máximo", de forma que cheguem ao seu e-mail.
O Lightsail e o EC2 fazem-no de forma diferente. O Lightsail traz isto integrado e é mais simples; o EC2 usa dois serviços da AWS com nome próprio, CloudWatch e SNS, que explicamos abaixo.
Antes de começar: o que significa cada coisa
- Métrica
- Um dado que a AWS mede da sua máquina de poucos em poucos minutos: uso do processador, tráfego de rede, se responde às verificações de estado...
- Alarme
- Uma regra do tipo "se esta métrica ultrapassar tal valor durante tanto tempo, avisa-me".
- CPU
- O processador. Se está a 100 % durante muito tempo, o site fica lento ou algo ficou pendurado.
- Verificação de estado (status check)
- No EC2, um teste automático que a AWS faz a cada minuto para ver se a máquina responde. Se falhar, a máquina está em baixo ou pendurada.
- CloudWatch
- O serviço da AWS que guarda as métricas e gere os alarmes do EC2 e dos restantes serviços.
- SNS
- Simple Notification Service, o serviço de avisos da Amazon: recebe uma mensagem de um alarme e envia-a a quem estiver subscrito, por exemplo ao seu e-mail.
- Tópico SNS
- O "canal" para onde se enviam os avisos e que subscreve com o seu endereço de e-mail.
Passo a passo
Lightsail: abra as métricas da máquina
Na consola do Lightsail, clique na máquina e depois no separador Metrics. Verá gráficos de CPU, rede e verificações de estado. Por baixo de cada gráfico há uma ligação Add alarm.
Lightsail: crie o alarme de "não responde"
No gráfico Status check failures, clique em Add alarm. Condição: que seja maior ou igual a 1 durante 2 períodos de 5 minutos (assim evita um aviso por uma falha de um minuto). Em Notifications, marque Email e escreva o seu endereço; da primeira vez o Lightsail envia-lhe um e-mail de confirmação que tem de aceitar. Se preferir, em algumas regiões também admite SMS. Guarde.
Lightsail: crie o alarme de CPU
No gráfico CPU utilization, Add alarm. Condição: maior que 90 % durante 3 períodos de 5 minutos, isto é, um quarto de hora no limite. O mesmo e-mail. Se a sua máquina é das pequenas, no próprio gráfico verá também a zona "burstable": as máquinas pequenas podem ir a 100 % durante um bocado, mas não de forma sustentada.
Opcional e muito útil: no mesmo separador, o alarme de tráfego de rede de saída alto avisa de que o site está a receber muito mais visitas do que o normal ou de que algo está a enviar dados que não devia.
EC2: crie o canal de avisos (tópico SNS)
Para o EC2 é preciso primeiro o "canal". Abra o serviço SNS, Topics, Create topic, tipo Standard, nome
avisos-servidores. Dentro do tópico, Create subscription, protocolo Email, o seu endereço. Chega-lhe um e-mail com uma ligação de confirmação: clique nela. Enquanto não estiver "Confirmed", não receberá nada. Pode adicionar vários endereços.EC2: crie os dois alarmes a partir da máquina
Na consola do EC2, selecione a máquina, separador Monitoring, botão Create alarm (ou então Actions, Monitor and troubleshoot, Manage CloudWatch alarms). Primeiro alarme: métrica Status check failed, condição maior ou igual a 1 durante 2 períodos de 5 minutos, notificação para o tópico
avisos-servidores. Se quiser que a AWS reinicie a máquina sozinha quando a verificação de estado falhar, marque a ação "Reboot": para um site, costuma ser o que quereria de qualquer forma.Segundo alarme: métrica CPUUtilization, maior que 90 % durante 3 períodos de 5 minutos, a mesma notificação. Repita em cada máquina que lhe importe.
Teste que chega
Não espere pelo dia do problema. No CloudWatch, abra o alarme e use Actions, Set alarm state para o forçar por um momento: deve chegar-lhe o e-mail. No Lightsail, pare a máquina a partir da consola durante uns minutos (se puder permitir-se isso) e confirme que avisa. Volte a deixar tudo como estava.
O que pode correr mal
Não chega nenhum e-mail
A subscrição está por confirmar ou o e-mail de confirmação foi para o spam. No SNS, a subscrição deve dizer "Confirmed". No Lightsail, o contacto de e-mail deve aparecer como verificado no separador Metrics.
Avisa-me a toda a hora
Os limiares estão demasiado apertados. Suba a percentagem ou alargue o tempo (por exemplo 90 % durante 30 minutos). Um aviso que se ignora é pior do que nenhum: afine até cada aviso significar algo.
A máquina caiu e não avisou
Se a máquina foi parada a partir da consola (alguém clicou em Stop), a verificação de estado não conta como falha: a máquina está parada, não avariada. Para isso é precisa uma vigilância à parte que compare o estado real com o que devia ter.
Quero o aviso no telemóvel, não por e-mail
No SNS, além do e-mail, pode subscrever um número de telefone (SMS, com custo e não em todas as regiões) ou uma aplicação sua. E há serviços de escala de prevenção que se ligam ao SNS. Para começar, o e-mail no telemóvel cumpre.
No Simplio
No Simplio não há que criar alarmes um a um: marca em cada máquina o que quer vigiar (paragem inesperada, processador no limite, disco cheio, cópia não feita) e o Simplio verifica todas as suas contas da AWS de poucos em poucos minutos e avisa-o por e-mail e na aplicação, um aviso quando aparece e outro quando se resolve. Cada pessoa da sua equipa escolhe que avisos recebe. E como o Simplio sabe se uma máquina devia estar ligada, avisa também quando alguém a para a partir da consola.
O mesmo, na AWS e no Simplio
| Na consola da AWS | No Simplio | |
|---|---|---|
| Aviso de máquina em baixo ou CPU alta | Lightsail: 2 alarmes por máquina. EC2: tópico SNS, subscrição, confirmação, 2 alarmes por máquina: 6 passos, 15 minutos por máquina | Marcar o que vigiar em cada máquina: 2 caixas |
| Se alguém para a máquina a partir da consola | Os alarmes não o detetam | O Simplio sabe se devia estar ligada e avisa |
| Várias contas e regiões | Repetir em cada uma | Todas as contas vigiadas a partir do mesmo sítio, cada pessoa escolhe os seus avisos |