Criar alarmes para interromper, terminar, reinicializar ou recuperar uma instância do EC2 - Amazon CloudWatch

Criar alarmes para interromper, terminar, reinicializar ou recuperar uma instância do EC2

Usando as ações de alarme do Amazon CloudWatch, você cria alarmes que automaticamente interrompem, terminam, reinicializam ou recuperam suas instâncias do EC2. É possível usar as ações de parada ou encerramento para ajudar a economizar dinheiro quando não precisar mais que uma instância seja executada. É possível usar as ações de reinicialização e recuperação para reinicializar automaticamente essas instâncias ou recuperá-las para um novo hardware caso ocorra um problema no sistema.

Há várias situações nas quais é possível querer interromper ou encerrar sua instância automaticamente. Por exemplo, é possível ter instâncias dedicadas a trabalhos de processamento de folha de pagamento em lote ou tarefas de computação científica que são executadas por um período e, em seguida, concluem seu trabalho. Em vez de permitir que essas instâncias permaneçam ociosas (e acumulem cobranças), interrompa ou as encerre, o que ajuda a economizar. A principal diferença entre usar as ações de alarme de interrupção e encerramento é que você poderá reiniciar facilmente uma instância interrompida se precisar reexecutá-la mais tarde. Também mantenha os mesmos ID de instância e volume raiz. No entanto, não é possível reiniciar uma instância encerrada. Em vez disso, é necessário executar uma nova instância.

É possível adicionar as ações de interromper, terminar, reinicializar ou recuperar a qualquer alarme definido em uma métrica por instância do Amazon EC2, incluindo métricas de monitoramento básicas e detalhadas fornecidas pelo Amazon CloudWatch (no namespace AWS/EC2), além de todas as métricas personalizadas que incluem a dimensão “InstanceId=”, desde que o valor de InstanceId se refira a uma instância do Amazon EC2 válida em execução. Você também pode adicionar a ação de recuperar aos alarmes definidos em qualquer métrica por instância do Amazon EC2, exceto StatusCheckFailed_Instance.

Para configurar uma ação de alarme do CloudWatch que pode reinicializar, interromper ou terminar uma instância, você deve usar uma função do IAM vinculada ao serviço AWSServiceRoleForCloudWatchEvents. A função do IAM AWSServiceRoleForCloudWatchEvents permite que a AWS execute ações de alarme em seu nome.

Para criar a função vinculada ao serviço para o CloudWatch Events, use o seguinte comando:

aws iam create-service-linked-role --aws-service-name events.amazonaws.com
Suporte a consoles

Você pode criar alarmes usando o console do CloudWatch ou o console do Amazon EC2. Os procedimentos nesta documentação usam o console do CloudWatch. Para procedimentos que usam o console do Amazon EC2, consulte Criar alarmes que interrompem, terminam, reinicializam ou recuperam uma instância no Manual do usuário do Amazon CloudWatch.

Permissões

Se você estiver usando uma conta do AWS Identity and Access Management (IAM) para criar ou modificar um alarme que executa ações do EC2 ou ações do Systems Manager OpsItem, deverá ter a permissão iam:CreateServiceLinkedRole.

Adicionar ações de interromper a alarmes do Amazon CloudWatch

É possível criar um alarme que pare uma instância do Amazon EC2 quando o limite for atingido. Por exemplo, é possível executar instâncias de desenvolvimento ou teste e ocasionalmente se esquecer de desativá-las. É possível criar um alarme que seja acionado quando o percentual médio de utilização da CPU for inferior a 10% em 24 horas, sinalizando que ela está ociosa e não mais em uso. Você pode ajustar o limite, a duração e o período para atender às suas necessidades, além de poder adicionar uma notificação do SNS para receber um e-mail quando o alarme for disparado.

As instâncias do Amazon EC2 que usam um volume do Amazon Elastic Block Store como dispositivo raiz podem ser interrompidas ou terminadas, enquanto as instâncias que usam o armazenamento de instância como dispositivo raiz só podem ser terminadas.

Para criar um alarme para interromper uma instância ociosa usando o console do Amazon CloudWatch
  1. Abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/.

  2. No painel de navegação, escolha Alarms (Alarmes), All alarms (Todos os alarmes).

  3. Selecione Create alarm (Criar alarme).

  4. Escolha Select metric (Selecionar métrica).

  5. Para namespaces da AWS, escolha EC2.

  6. Faça o seguinte:

    1. Escolha Per-Instance Metrics (Métricas por instância).

    2. Selecione a caixa de seleção na linha com a instância correta e a métrica CPUUtilization.

    3. Escolha Graphed metrics (Métricas em gráfico).

    4. Para a estatística, escolha Média.

    5. Escolha um período (por exemplo, 1 Hour).

    6. Escolha Select metric (Selecionar métrica).

  7. Na etapa Definir alarme, faça o seguinte:

    1. Em Conditions (Condições), escolha Static (Estático).

    2. Em Whenever CPUUtilization is (Sempre que a CPUUtilization for), escolha Lower (Mais baixo).

    3. Para than (do que), digite 10.

    4. Escolha Next (Próximo).

    5. Em Notification (Notificação), para Send notification to (Enviar notificação para), escolha um tópico do SNS existente ou crie um novo.

      Para criar um tópico do SNS, escolha New list (Nova lista). Em Send notification to (Enviar notificação para), digite um nome para o tópico do SNS (por exemplo, Stop_EC2_Instance). Para Email list (Lista de e-mails), digite uma lista de endereços de e-mail separados por vírgulas a serem notificados quando o alarme mudar para o estado ALARM. Para cada endereço de e-mail será enviado um e-mail de confirmação da inscrição no tópico. Você deve confirmar a assinatura para que as notificações sejam enviadas para um endereço de e-mail.

    6. Escolha Add EC2 Action (Adicionar ação do EC2).

    7. Em Alarm state trigger (Gatilho do estado do alarme), escolha In alarm (Em alarme). Em Take the following action (Executar a ação a seguir), escolha Stop this instance (Interromper a instância).

    8. Escolha Next (Próximo).

    9. Digite um nome e uma descrição para o alarme. O nome deve conter somente caracteres ASCII. Em seguida, escolha Next (Próximo).

    10. Em Preview and create (Visualizar e criar), confirme se as informações e condições são o que você deseja e escolha Create alarm (Criar alarme).

Adicionar ações de terminar a alarmes do Amazon CloudWatch

É possível criar um alarme que encerre uma instância do EC2 automaticamente quando um certo limite for atingido (desde que a proteção contra encerramento não esteja ativada para a instância). Por exemplo, você pode encerrar uma instância quando ela tiver concluído seu trabalho e não precisar mais dela. Se você quiser usar a instância posteriormente, pare-a em vez de encerrá-la. Para obter informações sobre habilitar e desabilitar a proteção contra término de uma instância, consulte Habilitar a proteção contra término de uma instância no Manual do usuário do Amazon EC2 para instâncias do Linux.

Para criar um alarme para terminar uma instância ociosa usando o console do Amazon CloudWatch
  1. Abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/.

  2. No painel de navegação, escolha Alarms, Create Alarm.

  3. Na etapa Selecionar métrica, faça o seguinte:

    1. Em Métricas do EC2, escolha Métricas por instância.

    2. Selecione a linha com a instância e a métrica CPUUtilization.

    3. Para a estatística, escolha Média.

    4. Escolha um período (por exemplo, 1 Hour).

    5. Escolha Next (Próximo).

  4. Na etapa Definir alarme, faça o seguinte:

    1. Em Limite de alarme, digite um nome exclusivo para o alarme (por exemplo, Encerrar instância do EC2) e uma descrição do alarme (por exemplo, Encerrar instância do EC2 quando a CPU estiver ociosa por muito tempo). Os nomes de alarme devem conter somente caracteres ASCII.

    2. Em Whenever (Sempre), em is (é), escolha < e digite 10. Em for (para), digite 24 períodos consecutivos.

      Uma representação gráfica do limite será exibida em Alarm Preview (Visualização do alarme).

    3. Em Notification (Notificação), para Send notification to (Enviar notificação para), escolha um tópico do SNS existente ou crie um novo.

      Para criar um tópico do SNS, escolha New list (Nova lista). Em Send notification to (Enviar notificação para), digite um nome para o tópico do SNS (por exemplo, Terminate_EC2_Instance) Para Email list (Lista de e-mails), digite uma lista de endereços de e-mail separados por vírgulas a serem notificados quando o alarme mudar para o estado ALARM. Para cada endereço de e-mail será enviado um e-mail de confirmação da inscrição no tópico. Você deve confirmar a assinatura para que as notificações sejam enviadas para um endereço de e-mail.

    4. Escolha Ação do EC2.

    5. Em Sempre que este alarme, escolha Estado é ALARME. Em Tomar esta medida, escolha Encerrar esta instância.

    6. Escolha Create Alarm.

Adicionar ações de reinicializar a alarmes do Amazon CloudWatch

É possível criar um alarme do Amazon CloudWatch que monitore uma instância do Amazon EC2 e reinicialize automaticamente a instância. A ação de alarme de reinicialização é recomendada para falhas de verificação de integridade da instância (ao contrário da ação de alarme de recuperação, que é adequado para falhas de verificação de integridade do sistema). Reinicializar a instância equivale a reinicializar o sistema operacional. Na maioria dos casos, leva apenas alguns minutos para reinicializar sua instância. Quando você reinicializa uma instância, ela permanece no mesmo host físico, para que sua instância mantenha seu nome DNS público, o endereço IP privado e os dados em seus volumes de armazenamento de instância.

A reinicialização de uma instância não inicia uma nova hora de faturamento de instância, ao contrário de pará-la e reiniciá-la. Para obter mais informações sobre como reiniciar uma instância, consulte Reiniciar a instância no Manual do usuário do Amazon EC2 para instâncias do Linux.

Importante

Para evitar um comportamento de disputa entre as ações de reinicialização e recuperação, evite configurar o mesmo período de avaliação para um alarme de reinicialização e um alarme de recuperação. Recomendamos que você defina alarmes de reinicialização para três períodos de avaliação de um minuto cada.

Para criar um alarme para reinicializar uma instância usando o console do Amazon CloudWatch
  1. Abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/.

  2. No painel de navegação, escolha Alarms, Create Alarm.

  3. Na etapa Selecionar métrica, faça o seguinte:

    1. Em Métricas do EC2, escolha Métricas por instância.

    2. Selecione a linha com a instância e a métrica StatusCheckFailed_Instance.

    3. Para a estatística, escolha Mínima.

    4. Escolha um período (por exemplo, 1 Minute) e escolha Next (Próximo).

  4. Na etapa Definir alarme, faça o seguinte:

    1. Em Limite de alarme, digite um nome exclusivo para o alarme (por exemplo, Reinicializar instância do EC2) e uma descrição do alarme (por exemplo, Reinicializar instância do EC2 quando a verificação de integridade falhar). Os nomes de alarme devem conter somente caracteres ASCII.

    2. Em Whenever (Sempre), em is (é), escolha > e digite 0. Em for (para), digite 3 períodos consecutivos.

      Uma representação gráfica do limite será exibida em Alarm Preview (Visualização do alarme).

    3. Em Notification (Notificação), para Send notification to (Enviar notificação para), escolha um tópico do SNS existente ou crie um novo.

      Para criar um tópico do SNS, escolha New list (Nova lista). Em Send notification to (Enviar notificação para), digite um nome para o tópico do SNS (por exemplo, Reboot_EC2_Instance). Para Email list (Lista de e-mails), digite uma lista de endereços de e-mail separados por vírgulas a serem notificados quando o alarme mudar para o estado ALARM. Para cada endereço de e-mail será enviado um e-mail de confirmação da inscrição no tópico. Você deve confirmar a assinatura para que as notificações sejam enviadas para um endereço de e-mail.

    4. Escolha Ação do EC2.

    5. Em Sempre que este alarme, escolha Estado é ALARME. Para Tomar esta medida, escolha Reinicializar esta instância.

    6. Escolha Create Alarm.

Adicionar ações de recuperar a alarmes do Amazon CloudWatch

É possível criar um alarme do Amazon CloudWatch que monitore uma instância do Amazon EC2 e recupere-a automaticamente se ocorrer um problema devido a uma falha de hardware subjacente ou um problema que exija o envolvimento da AWS para repará-lo. Instâncias encerradas não podem ser recuperadas. Uma instância recuperada é idêntica à instância original, incluindo o ID da instância, endereços IP privados, endereços IP elásticos e todos os metadados de instância.

Quando o alarme StatusCheckFailed_System for acionado e a ação de recuperação for iniciada, você será notificado pelo tópico do Amazon SNS que escolheu ao criar o alarme e a ação de recuperação associada. Durante a recuperação da instância, a instância será migrada durante uma reinicialização da instância e todos os dados na memória serão perdidos. Quando o processo é concluído, as informações serão publicadas no tópico do SNS que você tiver configurado para o alarme. Qualquer pessoa que estiver inscrita neste tópico do SNS receberá uma notificação por e-mail com o status da tentativa de recuperação e mais instruções. Você perceberá uma reinicialização da instância na instância recuperada.

A ação de recuperação pode ser usada somente com StatusCheckFailed_System, não com StatusCheckFailed_Instance.

Exemplos de problemas que causam falha nas verificações de status do sistema incluem:

  • Perda de conectividade de rede

  • Perda de energia do sistema

  • Problemas de software no host físico

  • Problemas de hardware de host físico que afetam a acessibilidade de rede

A ação de recuperar só é compatível com alguns tipos de instâncias. Para obter mais informações sobre os tipos de instância compatíveis e outros requisitos, consulte Recuperar sua instância e Requisitos.

Importante

Para evitar um comportamento de disputa entre as ações de reinicialização e recuperação, evite configurar o mesmo período de avaliação para um alarme de reinicialização e um alarme de recuperação. Recomendamos que você defina alarmes de recuperação para dois períodos de avaliação de um minuto cada e alarmes de reinicialização para três períodos de avaliação de um minuto cada.

Para criar um alarme para recuperar uma instância usando o console do Amazon CloudWatch
  1. Abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/.

  2. No painel de navegação, escolha Alarms, Create Alarm.

  3. Na etapa Selecionar métrica, faça o seguinte:

    1. Em Métricas do EC2, escolha Métricas por instância.

    2. Selecione a linha com a instância e a métrica StatusCheckFailed_System.

    3. Para a estatística, escolha Mínima.

    4. Escolha um período (por exemplo, 1 Minute).

      Importante

      Para evitar um comportamento de disputa entre as ações de reinicialização e recuperação, evite configurar o mesmo período de avaliação para um alarme de reinicialização e um alarme de recuperação. É recomendável que você defina os alarmes de recuperação para dois períodos de avaliação de um minuto cada.

    5. Escolha Next (Próximo).

  4. Na etapa Definir alarme, faça o seguinte:

    1. Em Limite de alarme, digite um nome exclusivo para o alarme (por exemplo, Recuperar instância do EC2) e uma descrição do alarme (por exemplo, Recuperar instância do EC2 quando a verificação de integridade falhar). Os nomes de alarme devem conter somente caracteres ASCII.

    2. Em Whenever (Sempre), em is (é), escolha > e digite 0. Em for (para), digite 2 períodos consecutivos.

    3. Em Notification (Notificação), para Send notification to (Enviar notificação para), escolha um tópico do SNS existente ou crie um novo.

      Para criar um tópico do SNS, escolha New list (Nova lista). Em Send notification to (Enviar notificação para), digite um nome para o tópico do SNS (por exemplo, Recover_EC2_Instance). Para Email list (Lista de e-mails), digite uma lista de endereços de e-mail separados por vírgulas a serem notificados quando o alarme mudar para o estado ALARM. Para cada endereço de e-mail será enviado um e-mail de confirmação da inscrição no tópico. Você deve confirmar a assinatura para que as notificações sejam enviadas para um endereço de e-mail.

    4. Escolha Ação do EC2.

    5. Em Sempre que este alarme, escolha Estado é ALARME. Para Tomar esta medida, escolha Recuperar esta instância.

    6. Escolha Create Alarm.

Visualizar o histórico de alarmes disparados e ações

É possível visualizar o histórico de alarmes e ações no console do Amazon CloudWatch. O Amazon CloudWatch mantém as últimas duas semanas de histórico de alarmes e ações.

Para visualizar o histórico de alarmes e ações disparados
  1. Abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/.

  2. No painel de navegação, escolha Alarms (Alarmes) e selecione um alarme.

  3. Para visualizar a transição de estado mais recente com os valores de tempo e métrica, escolha a guia Detalhes.

  4. Para visualizar as entradas mais recentes do histórico, escolha a guia History (Histórico).