Automatização de Reboots de Instâncias EC2 com CloudWatch, EventBridge e Lambda

edgar_jose_412cdf41fb30a0

Edgar Jose

Posted on November 16, 2024

Automatização de Reboots de Instâncias EC2 com CloudWatch, EventBridge e Lambda

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.

Image description

Selecione a Métrica

Clique em Selecionar métrica.

Image description

Navegue para EC2 > Métricas por Instância.

Escolha a instância que pretende monitorizar e selecione a métrica CPUUtilization.

Image description

Configure as Condições do Alarme

Alarme conditions

Image description

Clique em Seguinte e forneça um nome para o alarme (por exemplo, AlarmeDeAltaUtilizaçãoDeCPU).

Image description

Reveja as suas configurações e clique em Criar alarme.

Image description

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.

Image description

Configure os Detalhes da Regra

Forneça um nome para a regra (por exemplo, HighCPUAlarmRule).

Image description

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.

Image description

Image description

Defina o Alvo:
Na secção Alvo, escolha Função Lambda.

Image description

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).

Image description

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": "*"
}

Image description

Implementar o Código Lambda

Image description

Volte à regra de EventBridge e selecione a função Lambda criada no passo anterior.

Clique em Criar regra.

Image description

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.

Image description

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.

💖 💪 🙅 🚩
edgar_jose_412cdf41fb30a0
Edgar Jose

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