DEV Community

Cover image for Automatização de Reboots de Instâncias EC2 com CloudWatch, EventBridge e Lambda
Edgar Jose
Edgar Jose

Posted on

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.

Billboard image

Monitoring as code

With Checkly, you can use Playwright tests and Javascript to monitor end-to-end scenarios in your NextJS, Astro, Remix, or other application.

Get started now!

Top comments (0)

Image of Timescale

Timescale – the developer's data platform for modern apps, built on PostgreSQL

Timescale Cloud is PostgreSQL optimized for speed, scale, and performance. Over 3 million IoT, AI, crypto, and dev tool apps are powered by Timescale. Try it free today! No credit card required.

Try free

👋 Kindness is contagious

Explore a sea of insights with this enlightening post, highly esteemed within the nurturing DEV Community. Coders of all stripes are invited to participate and contribute to our shared knowledge.

Expressing gratitude with a simple "thank you" can make a big impact. Leave your thanks in the comments!

On DEV, exchanging ideas smooths our way and strengthens our community bonds. Found this useful? A quick note of thanks to the author can mean a lot.

Okay