Automatização de Reboots de Instâncias EC2 com CloudWatch, EventBridge e Lambda
Edgar Jose
Posted on November 16, 2024
Neste post, vou mostrar como configurar o Amazon CloudWatch para monitorizar a utilização de CPU em instâncias EC2 e reiniciá-las automaticamente quando a utilização ultrapassar um limite especificado. Esta automação melhora a fiabilidade das suas aplicações, garantindo que as instâncias permaneçam responsivas e com bom desempenho.
Passo 1: Configurar o Alarme do CloudWatch para Utilização de CPU em EC2
Abra o Console do CloudWatch
Aceda ao CloudWatch: Entre no Console de Gestão da AWS e abra o serviço CloudWatch.
Crie um Novo Alarme:
No menu à esquerda, clique em Alarmes e depois em Criar alarme.
Selecione a Métrica
Clique em Selecionar métrica.
Navegue para EC2 > Métricas por Instância.
Escolha a instância que pretende monitorizar e selecione a métrica CPUUtilization.
Configure as Condições do Alarme
Clique em Seguinte e forneça um nome para o alarme (por exemplo, AlarmeDeAltaUtilizaçãoDeCPU).
Reveja as suas configurações e clique em Criar alarme.
Passo 2: Criar uma Regra no EventBridge
Abra o Console do EventBridge
Aceda ao Amazon EventBridge.
Crie uma Nova Regra:
Clique em Regras no menu à esquerda e depois em Criar regra.
Configure os Detalhes da Regra
Forneça um nome para a regra (por exemplo, HighCPUAlarmRule).
Defina o padrão do evento:
Escolha AWS Services como fonte de Evento.
Selecione Cloudwatch como serviço.
Selecione Cloudwatch Alarm State Change como o tipo de evento.
Defina o Alvo:
Na secção Alvo, escolha Função Lambda.
Passo 3: Criar a Função Lambda
Crie uma Nova Função Lambda:
Clique em Criar função e escolha Autor do zero.
Dê um nome à função (por exemplo, GerirAltaUtilizacaoDeCPU).
Escolha um ambiente de execução (por exemplo, Python 3.x).
Configurar a Função de Execução
Crie uma nova função de execução com permissões básicas do Lambda e adicione permissões para ec2 e CloudWatch:
{
"Effect": "Allow",
"Action": [
"ec2:RebootInstances",
"cloudwatch:DescribeAlarms",
"cloudwatch:GetMetricData",
"cloudwatch:GetMetricStatistics"
],
"Resource": "*"
}
Implementar o Código Lambda
Volte à regra de EventBridge e selecione a função Lambda criada no passo anterior.
Clique em Criar regra.
Testar a Função Lambda
Instale o dispositivo de stress na instância EC2:
sudo amazon-linux-extras install epel -y
sudo yum install stress -y
Execute o comando stress --cpu 4 --timeout 600, que deve simular alta utilização de CPU por 5 minutos.
Conclusão
Seguindo estes passos, configurou com sucesso um fluxo de trabalho automatizado para monitorizar a utilização de CPU nas suas instâncias EC2 e reiniciá-las sempre que necessário.
Posted on November 16, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
November 16, 2024