BK cloud / sistemas Artigos
PT-BR
English ENDeutsch DEEspañol ES中文 ZHFrançais FRPortuguês (Brasil) PT-BR日本語 JA
Vamos conversar ↗
← Voltar aos artigos

AWS: reiniciar uma instância EC2 em caso de falha

Nota de arquivo: este artigo de 2019 contém orientações históricas, incluindo uma versão de Python sem suporte atual.

Este blog rodava em uma instância EC2. Para economizar, não usava balanceador; havia um grupo de Auto Scaling com capacidade desejada de uma instância. Às vezes, a conexão com o banco ficava instável, e a solução automática mais simples era reiniciar a instância. Sem balanceador, isso não era tão direto, então registrei o processo aqui.

  • Crie um health check no Route 53.
  • Selecione o alarme correspondente no CloudWatch e vincule um tópico SNS.
  • Configure o tópico para enviar um e-mail e chamar uma função Lambda.
  • Confira se a role IAM da função Lambda permite reiniciar a instância EC2.

Encontrei o código Lambda abaixo na internet. Quando escrevi este artigo, ele precisava de Python 2.7, não de Python 3.x.

import boto3

region = ‘us-west-1’

instances = [‘i-12345cb6de4f78g9h’, ‘i-08ce9b2d7eccf6d26’]

def lambda_handler(event, context):

    ec2 = boto3.client(‘ec2’, region_name=region)

    ec2.stop_instances(InstanceIds=instances)

    print ‘stopped your instances: ‘ + str(instances)