Eventos programados para instâncias - Amazon Elastic Compute Cloud

Eventos programados para instâncias

AWSA pode programar eventos para suas instâncias, como reinicialização, interrupção/início ou retirada. Esses eventos não ocorrem com frequência. Se uma de suas instâncias for afetada por um evento programado, a AWS enviará um e-mail ao endereço de e-mail que estiver associado à sua conta da AWS antes do evento programado. O e-mail fornece detalhes sobre o evento, incluindo as datas de início e de término. Dependendo do evento, é possível tomar providências para controlar sua duração. A AWS também envia um evento do AWS Health, que é possível monitorar e gerenciar usando o Amazon CloudWatch Events. Para obter mais informações sobre monitoramento de eventos do AWS Health com o CloudWatch, consulte Monitoramento de eventos do AWS Health com o CloudWatch Events.

Os eventos programados são gerenciados pela AWS. Você não pode programar eventos para suas instâncias. É possível visualizar os eventos programados pela AWS, personalizar notificações de eventos programados para incluir ou remover etiquetas da notificação por email, e executar ações quando uma instância estiver programada para ser reinicializada, desativada ou interrompida.

Para atualizar as informações de contato de sua conta a fim de ter certeza de que será notificado sobre os eventos agendados, acesse a página Configurações da conta.

nota

Quando uma instância for afetada por um evento agendado e fizer parte de um grupo do Auto Scaling, o Amazon EC2 Auto Scaling futuramente a substituirá como parte de suas verificações de integridade, e você não precisará realizar nenhuma outra ação. Para obter mais informações sobre as verificações de integridade realizadas pelo Amazon EC2 Auto Scaling, consulte Verificações de integridade para instâncias do Auto Scaling no Guia do usuário do Amazon EC2 Auto Scaling.

Tipos de eventos programados

O Amazon EC2 pode criar os seguintes tipos de eventos para suas instâncias, onde o evento ocorre em um horário programado:

  • Instance stop (Interrupção de instância): na hora programada, a instância é interrompida. Quando você iniciá-la novamente, ela será migrada para um novo host. Aplica-se somente a instâncias baseadas no Amazon EBS.

  • Instance retirement (Desativação da instância): na hora programada a instância é interrompida, se for baseada no Amazon EBS, ou encerrada, se for baseada no armazenamento de instâncias.

  • Instance reboot (Reinicialização de instância): na hora programada, a instância é reinicializada.

  • System reboot (Reinicialização do sistema): na hora programada, o host da instância é reinicializado.

  • System maintenance (Manutenção do sistema): na hora programada, a instância pode ser temporariamente afetada pela manutenção de rede ou pela manutenção de energia.

Visualizar eventos agendados

Além de receber a notificação de eventos agendados por e-mail, é possível verificar se há eventos programados usando um dos métodos a seguir.

Console
Para visualizar eventos programados para suas instâncias
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. O painel exibe quaisquer recursos com um evento associado em Eventos agendados.

    
                                        Visualização de eventos usando o painel.
  3. Para obter mais detalhes, escolha Eventos no painel de navegação. Todos os recursos com um evento associado serão exibidos. Você pode filtrar por características como tipo de evento, tipo de recurso e zona de disponibilidade.

    
                                        Visualização de eventos usando a página de eventos.
AWS CLI
Para visualizar eventos programados para suas instâncias

Use o comando describe-instance-status.

aws ec2 describe-instance-status \ --instance-id i-1234567890abcdef0 \ --query "InstanceStatuses[].Events"

O exemplo de saída a seguir mostra um evento de reinicialização.

[ "Events": [ { "InstanceEventId": "instance-event-0d59937288b749b32", "Code": "system-reboot", "Description": "The instance is scheduled for a reboot", "NotAfter": "2019-03-15T22:00:00.000Z", "NotBefore": "2019-03-14T20:00:00.000Z", "NotBeforeDeadline": "2019-04-05T11:00:00.000Z" } ] ]

O exemplo de saída a seguir mostra um evento de desativação de instância:

[ "Events": [ { "InstanceEventId": "instance-event-0e439355b779n26", "Code": "instance-stop", "Description": "The instance is running on degraded hardware", "NotBefore": "2015-05-23T00:00:00.000Z" } ] ]
PowerShell
Para visualizar os eventos programados para suas instâncias usando a AWS Tools for Windows PowerShell

Use o seguinte comando Get-EC2InstanceStatus.

PS C:\> (Get-EC2InstanceStatus -InstanceId i-1234567890abcdef0).Events

O exemplo de saída a seguir mostra um evento de desativação de instância:

Code : instance-stop Description : The instance is running on degraded hardware NotBefore : 5/23/2015 12:00:00 AM
Instance metadata
Para visualizar os eventos programados para suas instâncias usando metadados de instância

É possível recuperar informações sobre eventos de manutenção ativos para suas instâncias dos metadados de instância usando o Serviço de metadados da instância versão 2 ou o Serviço de metadados da instância versão 1.

IMDSv2

[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/events/maintenance/scheduled

IMDSv1

[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/events/maintenance/scheduled

A seguir, temos um exemplo de saída com informações sobre um evento de reinicialização do sistema programado, no formato JSON.

[ { "NotBefore" : "21 Jan 2019 09:00:43 GMT", "Code" : "system-reboot", "Description" : "scheduled reboot", "EventId" : "instance-event-0d59937288b749b32", "NotAfter" : "21 Jan 2019 09:17:23 GMT", "State" : "active" } ]
Para visualizar o histórico de eventos sobre eventos concluídos ou cancelados das suas instâncias usando metadados de instância

É possível recuperar informações sobre eventos concluídos ou cancelados para suas instâncias dos metadados de instância usando o Serviço de metadados da instância versão 2 ou o Serviço de metadados da instância versão 1.

IMDSv2

[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/events/maintenance/history

IMDSv1

[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/events/maintenance/history

A seguir, temos um exemplo de saída com informações sobre um evento de reinicialização do sistema que foi cancelado e um que foi concluído, no formato JSON.

[ { "NotBefore" : "21 Jan 2019 09:00:43 GMT", "Code" : "system-reboot", "Description" : "[Canceled] scheduled reboot", "EventId" : "instance-event-0d59937288b749b32", "NotAfter" : "21 Jan 2019 09:17:23 GMT", "State" : "canceled" }, { "NotBefore" : "29 Jan 2019 09:00:43 GMT", "Code" : "system-reboot", "Description" : "[Completed] scheduled reboot", "EventId" : "instance-event-0d59937288b749b32", "NotAfter" : "29 Jan 2019 09:17:23 GMT", "State" : "completed" } ]
AWS Health

É possível usar o AWS Health Dashboard para saber mais sobre eventos que podem afetar a instância. O AWS Health Dashboard organiza problemas em três grupos: ocorrências abertas, alterações programadas e outras notificações. O grupo de alterações programadas contém itens presentes e futuros.

Para obter mais informações, consulte Conceitos básicos do AWS Health Dashboard no Manual do usuário do AWS Health.

Personalizar notificações de eventos programados

É possível personalizar notificações de eventos programados para incluir tags na notificação por e-mail. Isso facilita a identificação do recurso afetado (instâncias ou Hosts dedicados) e priorizar ações para o próximo evento.

Ao personalizar notificações de eventos para incluir tags, é possível optar por incluir:

  • Todas as tags associadas ao recurso afetado

  • Somente tags específicas que estão associadas ao recurso afetado

Por exemplo, suponha que você atribua as tags application, costcenter, project e owner a todas as suas instâncias. É possível optar por incluir todas as tags nas notificações de eventos. Como alternativa, se você quiser ver apenas as tags owner e project nas notificações de eventos, poderá optar por incluir apenas essas tags.

Depois de selecionar as tags a serem incluídas, as notificações de evento incluirão o ID do recurso (ID da instância ou ID do Host dedicado) e os pares de chave de tag e valor associados ao recurso afetado.

Incluir tags em notificações de eventos

As tags que você escolher incluir se aplicarão a todos os recursos (instâncias e Hosts dedicados) na região selecionada. Para personalizar notificações de eventos em outras regiões, primeiro selecione a região necessária e execute as etapas a seguir.

É possível incluir tags em notificações de eventos usando um dos métodos a seguir.

Console
Como incluir tags em notificações de eventos
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Events.

  3. Escolha Actions (Ações), Manage event notifications (Gerenciar notificações de eventos).

  4. Ative a opção Incluir tags em notificações de eventos.

  5. Siga um destes procedimentos, dependendo das tags que você deseja incluir nas notificações de eventos:

    • Para incluir todas as tags associadas à instância afetada ou ao Host dedicado, selecione Incluir todas as tags.

    • Para selecionar as tags a serem incluídas, selecione Escolher as tags a serem incluídas e, em seguida, selecione ou insira as chaves de tag.

  6. Escolha Salvar.

AWS CLI
Como incluir todas as tags em notificações de eventos

Use o comando register-instance-event-notification-attributes da AWS CLI e defina o parâmetro IncludeAllTagsOfInstance como true.

aws ec2 register-instance-event-notification-attributes \ --instance-tag-attribute "IncludeAllTagsOfInstance=true"
Como incluir tags específicas em notificações de eventos

Use o comando register-instance-event-notification-attributes da AWS CLI e especifique as tags a serem incluídas usando o parâmetro InstanceTagKeys.

aws ec2 register-instance-event-notification-attributes \ --instance-tag-attribute 'InstanceTagKeys=["tag_key_1", "tag_key_2", "tag_key_3"]'

Remover tags de notificações de eventos

É possível remover tags de notificações de eventos usando um dos métodos a seguir.

Console
Como remover tags de notificações de eventos
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Events.

  3. Escolha Actions (Ações), Manage event notifications (Gerenciar notificações de eventos).

  4. Para remover todas as tags das notificações de eventos, desmarque Incluir tags nas notificações de eventos.

  5. Para remover tags específicas das notificações de eventos, escolha o X para as chaves de tag correspondentes.

  6. Escolha Salvar.

AWS CLI
Como remover todas as tags das notificações de eventos

Use o comando deregister-instance-event-notification-attributes da AWS CLI e defina o parâmetro IncludeAllTagsOfInstance como false.

aws ec2 deregister-instance-event-notification-attributes \ --instance-tag-attribute "IncludeAllTagsOfInstance=false"
Como remover tags específicas de notificações de eventos

Use o comando deregister-instance-event-notification-attributes da AWS CLI e especifique as tags a serem removidas usando o parâmetro InstanceTagKeys.

aws ec2 deregister-instance-event-notification-attributes \ --instance-tag-attribute 'InstanceTagKeys=["tag_key_1", "tag_key_2", "tag_key_3"]'

Visualizar as tags a serem incluídas nas notificações de eventos

É possível visualizar as tags que devem ser incluídas nas notificações de eventos usando um dos métodos a seguir.

Console
Como visualizar as tags a serem incluídas nas notificações de eventos
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Events.

  3. Escolha Actions (Ações), Manage event notifications (Gerenciar notificações de eventos).

AWS CLI
Como visualizar as tags a serem incluídas nas notificações de eventos

Use o comando describe-instance-event-notification-attributes da AWS CLI.

aws ec2 describe-instance-event-notification-attributes

Trabalhar com instâncias programadas para interrupção ou retirada

Quando a AWS detecta falha irreparável do host subjacente para sua instância, ela programa a instância para ser interrompida ou encerrada, dependendo do tipo de dispositivo raiz da instância. Se o dispositivo raiz for um volume do EBS, a instância será programada para ser interrompida. Se o dispositivo raiz for um volume de armazenamento de instância, a instância será programada para encerrar. Para ter mais informações, consulte Desativação da instância.

Importante

Todos os dados armazenados nos volumes de armazenamento de instâncias serão perdidos quando a instância for interrompida, hibernada ou encerrada. Isso inclui volumes de armazenamento de instância anexados a uma instância que possui um volume do EBS como dispositivo raiz. Lembre-se de salvar os dados dos volumes do armazenamento de instâncias que poderão ser necessários mais tarde antes que a instância seja interrompida, hibernada ou encerrada.

Ações para instâncias baseadas no Amazon EBS

É possível esperar que a instância seja interrompida conforme programado. Como opção, é possível interromper e iniciar a instância por conta própria, o que a fará migrar para um novo host. Para obter mais informações sobre como interromper a instância, além de informações sobre as mudanças em sua configuração de instância quando ela estiver interrompida, consulte Início e interrupção de instâncias do Amazon EC2.

É possível automatizar uma interrupção e inicialização imediatas em resposta a um evento programado de interrupção de instância. Para obter mais informações, consulte Automating actions for Amazon EC2 instances no Guia do usuário do AWS Health.

Ações para instâncias com armazenamento de instâncias

Recomendamos que você execute uma instância de substituição da AMI mais recente e migre todos os dados necessários para a instância de substituição antes que a instância seja programada para encerrar. Depois, é possível encerrar a instância original ou esperar que ela seja encerrada conforme programado.

Trabalhar com instâncias programadas para reinicialização

Quando a AWS precisa realizar tarefas, como instalar atualizações ou manter o host subjacente, ela pode programar a reinicialização da instância ou do host subjacente. É possível reprogramar a maioria dos eventos de reinicialização para que a instância seja reinicializada em uma data e hora específicas que sejam adequadas para você.

Visualizar o tipo de evento de reinicialização

É possível ver se um evento de reinicialização é uma reinicialização de instância ou uma reinicialização do sistema usando um dos métodos a seguir.

Console
Para visualizar o tipo de evento de reinicialização programado
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Events.

  3. Escolha Resource type: instance (Tipo de recurso: instância) na lista de filtros.

  4. Para cada instância, visualize o valor na coluna Event type (Tipo de evento). O valor é system-reboot ou instance-reboot.

AWS CLI
Para visualizar o tipo de evento de reinicialização programado

Use o comando describe-instance-status.

aws ec2 describe-instance-status \ --instance-id i-1234567890abcdef0

Para eventos de reinicialização programados, o valor de Code é system-reboot ou instance-reboot. O seguinte exemplo de saída mostra um evento system-reboot.

[ "Events": [ { "InstanceEventId": "instance-event-0d59937288b749b32", "Code": "system-reboot", "Description": "The instance is scheduled for a reboot", "NotAfter": "2019-03-14T22:00:00.000Z", "NotBefore": "2019-03-14T20:00:00.000Z", "NotBeforeDeadline": "2019-04-05T11:00:00.000Z" } ] ]
Ações para reinicialização de instância

É possível aguardar para que a reinicialização da instância ocorra dentro de sua janela de manutenção programada, reprogramar a reinicialização da instância para uma data e hora que sejam adequadas para você ou reinicializar a instância por conta própria em um momento conveniente.

Após a reinicialização da instância, o evento programado será apagado e a descrição dele será atualizada. A manutenção pendente do host subjacente será concluída e será possível começar a usar a instância novamente depois que ela tiver sido totalmente reinicializada.

Ações para a reinicialização do sistema

Você não pode reinicializar o sistema por conta própria. É possível aguardar para que a reinicialização do sistema ocorra durante a janela de manutenção programada, ou pode reprogramar a reinicialização do sistema para uma data e hora que sejam adequadas para você. Normalmente, uma reinicialização de sistema é concluída em questão de minutos. Depois que a reinicialização do sistema ocorre, a instância mantém o endereço IP e o nome de DNS, e qualquer dado nos volumes de armazenamento de instâncias locais é preservado. Depois que a reinicialização do sistema é concluída, o evento programado para a instância é apagado, e é possível verificar se o software da instância está operando conforme o esperado.

Como opção, se for necessário manter a instância em um horário diferente e você não puder reprogramar a reinicialização do sistema, não será possível interromper e iniciar a instância baseada no Amazon EBS, de modo que ela será migrada para um novo host. No entanto, os dados dos volumes de armazenamento de instâncias locais não são preservados. Também é possível automatizar uma interrupção e inicialização imediatas da instância em resposta a um evento programado de inicialização do sistema. Para obter mais informações, consulte Automatização de ações para instâncias do EC2 no Guia do usuário do AWS Health. Para uma instância baseada no armazenamento de instâncias, se não for possível reprogramar a reinicialização do sistema, será possível executar uma instância de substituição da AMI mais recente, migrar todos os dados necessários para a instância de substituição antes da janela de manutenção programada e encerrar a instância original.

Trabalhar com instâncias programadas para manutenção

Quando a AWS precisa manter o host subjacente de uma instância, ela programa a instância para manutenção. Há dois tipos de eventos de manutenção: manutenção de rede e manutenção de energia.

Durante a manutenção de rede, instâncias programadas perdem a conectividade de rede durante um breve período. A conectividade de rede normal com a instância é restaurada depois que a manutenção for concluída.

Durante a manutenção de energia, as instâncias programadas ficam offline durante um breve período e depois são reinicializadas. Quando uma reinicialização é realizada, todas as definições de configuração da instância são mantidas.

Depois que sua instância tiver sido reinicializada (isso geralmente leva alguns minutos), verifique se a aplicação está funcionando conforme o esperado. Nesse ponto, a instância não deve mais ter um evento associado a ela ou, se tiver, a descrição do evento programado começará com [Completed]. Às vezes, leva até 1 hora para que a descrição do status da instância seja atualizada. Eventos de manutenção concluídos são exibidos no painel do console do Amazon EC2 por até uma semana.

Ações para instâncias baseadas no Amazon EBS

É possível esperar que a manutenção ocorra conforme programado. Como opção, é possível interromper e iniciar a instância, o que a fará migrar para um novo host. Para obter mais informações sobre como interromper a instância, além de informações sobre as mudanças em sua configuração de instância quando ela estiver interrompida, consulte Início e interrupção de instâncias do Amazon EC2.

É possível automatizar uma interrupção e inicialização imediatas em resposta a um evento programado de manutenção. Para obter mais informações, consulte Automatização de ações para instâncias do EC2 no Guia do usuário do AWS Health.

Ações para instâncias com armazenamento de instâncias

É possível esperar que a manutenção ocorra conforme programado. Como alternativa, se quiser manter a operação normal durante a janela de manutenção programada, é possível iniciar uma instância de substituição da AMI mais recente, migrar todos os dados necessários para a instância de substituição antes da janela de manutenção programada e, então, encerrar a instância original.

Reagendar um evento programado

É possível reagendar um evento para que ele ocorra em uma data e hora específicas que forem convenientes. Somente eventos que tenham uma data de prazo podem ser reprogramados. Há outras limitações para reprogramar um evento.

É possível reagendar um evento usando um dos métodos a seguir.

Console
Para reprogramar um evento
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Events.

  3. Escolha Resource type: instance (Tipo de recurso: instância) na lista de filtros.

  4. Escolha uma ou mais instâncias e selecione Actions (Ações), Schedule event (Programar evento).

    Somente eventos que têm uma data de prazo de evento, indicados por um valor para Deadline (Prazo), podem ser reprogramados. Se um dos eventos selecionados não tiver uma data de prazo, a opção Actions (Ações), Schedule event (Programar evento) será desativada.

  5. Em New start time (Nova hora de início), insira uma nova data e hora para o evento. A nova data e hora devem ocorrer antes de Event deadline (Prazo do evento).

  6. Escolha Salvar.

    Pode levar um ou dois minutos para a hora de início do evento atualizado ser refletida no console.

AWS CLI
Para reprogramar um evento
  1. Somente eventos que têm uma data de prazo de evento, indicados por um valor para NotBeforeDeadline, podem ser reprogramados. Use o comando describe-instance-status para visualizar o valor do parâmetro NotBeforeDeadline.

    aws ec2 describe-instance-status \ --instance-id i-1234567890abcdef0

    O seguinte exemplo de saída mostra um evento system-reboot que pode ser reprogramado, pois NotBeforeDeadline contém um valor.

    [ "Events": [ { "InstanceEventId": "instance-event-0d59937288b749b32", "Code": "system-reboot", "Description": "The instance is scheduled for a reboot", "NotAfter": "2019-03-14T22:00:00.000Z", "NotBefore": "2019-03-14T20:00:00.000Z", "NotBeforeDeadline": "2019-04-05T11:00:00.000Z" } ] ]
  2. Para reprogramar o evento, use o comando modify-instance-event-start-time. Especifique a nova hora de início do evento usando o parâmetro not-before. A nova hora do evento deve ser antes de NotBeforeDeadline.

    aws ec2 modify-instance-event-start-time \ --instance-id i-1234567890abcdef0 \ --instance-event-id instance-event-0d59937288b749b32 \ --not-before 2019-03-25T10:00:00.000

    O comando describe-instance-status poderá levar um ou dois minutos para retornar o valor do parâmetro not-before atualizado.

Limitações

  • Somente eventos com uma data de prazo podem ser reprogramados. O evento pode ser reprogramado até a data de prazo do evento. A coluna Deadline (Prazo) do console e o campo NotBeforeDeadline da AWS CLI indicam se o evento tem uma data de prazo.

  • Somente eventos ainda não iniciados podem ser reprogramados. A coluna Start time (Hora de início) do console e o campo NotBefore da AWS CLI indicam a hora de início do evento. Os eventos programados para início nos próximos cinco minutos não podem ser reprogramados.

  • A nova hora de início do evento deve ser pelo menos 60 minutos a partir da hora atual.

  • Se você reprogramar vários eventos usando o console, a data de prazo do evento será determinada pelo evento com a data de prazo do evento mais recente.