Automatizar ciclos de vida da AMI - Amazon EBS

Automatizar ciclos de vida da AMI

O procedimento a seguir mostra como usar o Amazon Data Lifecycle Manager para automatizar os ciclos de vida da AMI com suporte do EBS.

Criar uma política de ciclo de vida de AMI

Use os procedimentos a seguir para criar uma política de ciclo de vida de AMI.

Console
Para criar uma política de AMI
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Elastic Block Store, Lifecycle Manager ((Gerenciador de ciclo de vida) e Create snapshot lifecycle policy (Criar política de ciclo de vida de snapshot).

  3. Na tela Select policy type (Selecionar tipo de política), escolha EBS-backed AMI policy (Política de AMI com suporte do EBS) e depois Next (Próximo).

  4. Na seção Target resources (Recursos de destino), em Target resource tags (Etiquetas de recurso de destino), escolha as etiquetas de recursos que identificam os volumes ou as instâncias dos quais deseja fazer backup. A política só oferece suporte aos recursos que tenham a chave de etiqueta e os pares de valor especificados.

  5. Para Description (Descrição), insira uma breve descrição da rota.

  6. Em IAM role (Função do IAM), selecione a função do IAM que tem permissões para gerenciar AMIs e snapshots e para descrever instâncias. Para usar a função padrão fornecida pelo Amazon Data Lifecycle Manager, escolha Default role (Função padrão). Se preferir, para usar uma função do IAM personalizada criada anteriormente, selecione Choose another role (Escolher outra função) e selecione a função a ser usada.

  7. Em Policy tags (Etiquetas de políticas), adicione as etiquetas a serem aplicadas na política de ciclo de vida. É possível usar essas etiquetas para identificar e categorizar suas políticas.

  8. Em Policy status after creation (Status da política após a criação), selecione Enable policy (Habilitar política) para iniciar as execuções da política no próximo horário agendado ou Disable policy (Desabilitar política) para impedir que a política seja executada. Se você não habilitar a política agora, ela não começará a criar AMIs até que você a ative manualmente após a criação.

  9. Na seção Instance reboot (Reinicialização da instância), indique se as instâncias devem ser reinicializadas antes da criação da AMI. Para evitar que as instâncias de destino sejam reinicializadas, escolha No (Não). Escolher No (Não) pode causar problemas de consistência de dados. Para reiniciar instâncias antes da criação da AMI, escolhaYes (Sim). Escolher isso garante a consistência dos dados, mas pode resultar na reinicialização de várias instâncias direcionadas simultaneamente.

  10. Escolha Próximo.

  11. Em Configure schedule (Configurar agendamento), configure os agendamentos de política. Uma política pode ter até quatro agendamentos. A Programação 1 é obrigatória. As Programações 2, 3 e 4 são opcionais. Para cada agendamento de política que você adicionar, faça o seguinte:

    1. Na seção Schedule details (Detalhes do agendamento), faça o seguinte:

      1. Em Schedule name (Nome do agendamento), especifique um nome descritivo para o agendamento.

      2. Em Frequency (Frequência) e nos campos relacionados, configure o intervalo entre as execuções da política.

        É possível configurar execuções de políticas com uma programação diária, semanal, mensal ou anual. Como opção, escolha Custom cron expression (Expressão cron personalizada) para especificar um intervalo de até 1 ano. Para obter mais informações, consulte Cron expressions (Expressões cron) no Manual do usuário do Amazon CloudWatch Events.

      3. Em Starting at (Iniciando às), especifique a hora para iniciar as execuções da política. A primeira execução da política inicia uma hora depois do horário agendado. É necessário inserir a hora no formato hh:mm UTC.

      4. Em Retention type (Tipo de retenção), especifique a política de retenção para AMIs criadas pelo agendamento.

        É possível reter AMIs com base na contagem total ou na idade delas.

        Para retenção baseada em contagem, o intervalo é de 1 a 1000. Quando a contagem máxima for atingida, a AMI mais antiga será excluída quando uma nova for criada.

        Para retenção baseada na idade, o intervalo é de 1 dia a 100 anos. Depois que o período de retenção de cada AMI expirar, ela será excluída.

        nota

        Todas as programações devem ter o mesmo tipo de retenção. É possível especificar o tipo de retenção somente para a Programação 1. As Programações 2, 3 e 4 herdam o tipo de retenção da Programação 1. Cada programação pode ter sua própria contagem ou período de retenção.

    2. Configurar a marcação para AMIs.

      Na seção Tagging (Marcação), faça o seguinte:

      1. Para copiar todas as etiquetas definidas por usuário da instância de origem para as AMIs criadas pelo agendamento, selecione Copy tags from source (Copiar etiquetas da origem).

      2. Por padrão, as AMIs criadas pelo agendamento são automaticamente marcadas com o ID da instância de origem. Para evitar que essa marcação automática ocorra, em Variable tags (Etiquetas de variáveis), remova o bloco instance-id:$(instance-id).

      3. Para especificar etiquetas adicionais a serem atribuídas às AMIs criadas por esse agendamento, escolha Add tags (Adicionar etiquetas).

    3. Configurar a suspensão de uso da AMI.

      Para defasar as AMIs quando elas não devem mais ser usadas, na seção Defasagem da AMI, selecione Habilitar a defasagem da AMI para esta programação e, em seguida, especifique a regra de defasagem da AMI. A regra de defasagem da AMI especifica quando as AMIs devem ser defasadas.

      Se a programação usar retenção de AMI baseada em contagem, será necessário especificar o número de AMIs mais antigas a serem defasadas. A contagem de defasagem deve ser menor ou igual à contagem de retenção de AMI da programação e não pode ser maior que 1.000. Por exemplo, se a programação estiver configurada para reter no máximo 5 AMIs, será possível configurar a programação para defasar até 5 das AMIs mais antigas.

      Se a programação usar retenção de AMI baseada em idade, será necessário especificar o período após o qual as AMIs serão defasadas. A contagem de defasagem deve ser menor ou igual ao período de retenção da AMI da programação e não pode ser superior a 10 anos (120 meses, 520 semanas ou 3.650 dias). Por exemplo, se a programação estiver configurada para reter AMIs por 10 dias, será possível configurar a programação para substituir AMIs após períodos de até 10 dias após a criação.

    4. Configurar cópia entre regiões.

      Para copiar AMIs criadas pelo agendamento para regiões diferentes, na seção Cross-Region copy (Cópia entre regiões), selecione Enable cross-Region copy (Habilitar cópia entre regiões). É possível copiar AMIs para até três regiões adicionais em sua conta. Especifique uma regra de cópia entre regiões separada para cada região de destino.

      Para cada região de destino, é possível especificar o seguinte:

      • Uma política de retenção para a cópia AMI. Quando o período de retenção expirar, a cópia na região de destino será automaticamente cancelada.

      • Status de criptografia para a cópia da AMI. Se a AMI de origem estiver criptografada ou se a criptografia por padrão estiver habilitada, as AMIs copiadas serão sempre criptografadas. Se a AMI de origem não estiver criptografada e a criptografia por padrão estiver desabilitada, será possível habilitar a criptografia. Se você não especificar uma chave do KMS, as AMIs serão criptografadas usando a chave do KMS padrão de criptografia do EBS em cada região de destino. Se você especificar uma Chave do KMS para a região de destino, a função do IAM selecionada deverá ter acesso à Chave do KMS.

      • Uma regra de defasagem para a cópia da AMI. Quando o período de descontinuação expira, a cópia da AMI é automaticamente substituída. O período de defasagem deve ser menor ou igual ao período de retenção de cópias e não pode ser superior a 10 anos.

      • Se deseja copiar todas as marcações ou nenhuma marcação da AMI de origem.

      nota

      Não exceda o número de cópias de AMI simultâneas por região.

    5. Para adicionar outros agendamentos, escolha Add another schedule (Adicionar outro agendamento), localizado na parte superior da tela. Para cada agendamento adicional, preencha os campos conforme descrito anteriormente neste tópico.

    6. Depois de adicionar os agendamentos necessárias, escolha Review policy (Revisar política).

  12. Revise o resumo da política e escolha Create policy (Criar política).

    nota

    Se receber um erro Role with name AWSDataLifecycleManagerDefaultRoleForAMIManagement already exists, consulte Solução de problemas para obter mais informações.

Command line

Use o comando create-lifecycle-policy para criar uma política de ciclo de vida de AMI. Para PolicyType, especifique IMAGE_MANAGEMENT.

nota

Para simplificar a sintaxe, os exemplos a seguir usam um arquivo JSON policyDetails.json, que inclui os detalhes da política.

Exemplo 1: retenção baseada em idade e defasagem de AMI

Esse exemplo cria uma política de ciclo de vida da AMI que cria AMIs de todas as instâncias que têm uma chave de marcação purpose com um valor de production e reinicializa as instâncias direcionadas. A política inclui uma programação que cria uma AMI todos os dias às 01:00 UTC. A política mantém AMIs por 2 dias e faz a defasagem depois de 1 dia. Também copia as etiquetas da instância de origem para as AMIs criadas por ela.

aws dlm create-lifecycle-policy \ --description "My AMI policy" \ --state ENABLED \ --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRoleForAMIManagement \ --policy-details file://policyDetails.json

Este é um exemplo do arquivo policyDetails.json.

{ "PolicyType": "IMAGE_MANAGEMENT", "ResourceTypes": [ "INSTANCE" ], "TargetTags": [{ "Key": "purpose", "Value": "production" }], "Schedules": [{ "Name": "DailyAMIs", "TagsToAdd": [{ "Key": "type", "Value": "myDailyAMI" }], "CreateRule": { "Interval": 24, "IntervalUnit": "HOURS", "Times": [ "01:00" ] }, RetainRule":{ "Interval" : 2, "IntervalUnit" : "DAYS" }, DeprecateRule": { "Interval" : 1, "IntervalUnit" : "DAYS" }, "CopyTags": true } ], "Parameters" : { "NoReboot":true } }

Se a solicitação for bem-sucedida, o comando retornará o ID da política recém-criada. A seguir, um exemplo de saída.

{ "PolicyId": "policy-9876543210abcdef0" }
Exemplo 2: retenção baseada em contagem e defasagem de AMI com cópia entre regiões

Esse exemplo cria uma política de ciclo de vida da AMI que cria AMIs de todas as instâncias que têm uma chave de marcação purpose com um valor de production e reinicializa as instâncias direcionadas. A política inclui uma programação que cria uma AMI a cada 6 horas a partir de 17:30 UTC. A política retém AMIs 3 e faz a defasagem automaticamente de 2 AMIs mais antigas. Ela também tem uma regra de cópia entre regiões que copia AMIs para us-east-1, mantém 2 cópias de AMI e faz a defasagem automaticamente da AMI mais antiga.

aws dlm create-lifecycle-policy \ --description "My AMI policy" \ --state ENABLED \ --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRoleForAMIManagement \ --policy-details file://policyDetails.json

Este é um exemplo do arquivo policyDetails.json.

{ "PolicyType": "IMAGE_MANAGEMENT", "ResourceTypes" : [ "INSTANCE" ], "TargetTags": [{ "Key":"purpose", "Value":"production" }], "Parameters" : { "NoReboot": true }, "Schedules" : [{ "Name" : "Schedule1", "CopyTags": true, "CreateRule" : { "Interval": 6, "IntervalUnit": "HOURS", "Times" : ["17:30"] }, "RetainRule":{ "Count" : 3 }, "DeprecateRule":{ "Count" : 2 }, "CrossRegionCopyRules": [{ "TargetRegion": "us-east-1", "Encrypted": true, "RetainRule":{ "IntervalUnit": "DAYS", "Interval": 2 }, "DeprecateRule":{ "IntervalUnit": "DAYS", "Interval": 1 }, "CopyTags": true }] }] }

Considerações sobre políticas de ciclo de vida da AMI

As seguintes considerações gerais se aplicam à criação de políticas de ciclo de vida de AMIs:

  • As políticas de ciclo de vida da AMI visam somente instâncias que estão na mesma região que a política.

  • A primeira operação de criação de AMI começa uma hora após o horário de início especificado. As operações de criação de AMI subsequentes começam uma hora após o horário programado.

  • Quando o Amazon Data Lifecycle Manager cancela o registro de uma AMI, ele exclui automaticamente o backup de snapshots.

  • Tags de recursos de destino diferenciam letras maiúsculas de minúsculas.

  • Se você remover as tags de destino de uma instância visada por uma política, o Amazon Data Lifecycle Manager não gerenciará mais os AMIs existentes no padrão, você deverá excluí-los manualmente se eles não forem mais necessários.

  • É possível criar várias políticas para fazer backup de uma instância. Por exemplo, se uma instância tiver 2 etiquetas, com a etiqueta A como o destino da política A para criar uma AMI a cada 12 horas, e a etiqueta B como o destino da política B para criar uma AMI a cada 24 horas, o Amazon Data Lifecycle Manager cria AMIs de acordo com as programações de ambas as políticas. Como alternativa, é possível obter o mesmo resultado criando uma única política que tenha várias programações. Por exemplo, é possível criar uma única política voltada apenas para tag A e especificar duas programações: uma para cada 12 horas e uma para cada 24 horas.

  • Novos volumes associados a uma instância de destino após a criação da política são incluídos automaticamente no backup na próxima execução da política. Todos os volumes associados à instância no momento da execução da política são incluídos.

  • Se você criar uma política com uma programação personalizada baseada em cron que esteja configurada para criar apenas uma AMI, a política não cancelará automaticamente o registro dessa AMI quando o limite de retenção for atingido. É necessário cancelar manualmente o registro da AMI caso ela não seja mais necessária.

  • Se você criar uma política baseada na idade em que o período de retenção seja menor do que a frequência de criação, o Amazon Data Lifecycle Manager sempre reterá o última AMI até que a próxima seja criada. Por exemplo, se uma política baseada na idade criar uma AMI por mês com um período de retenção de sete dias, o Amazon Data Lifecycle Manager reterá cada AMI por um mês, mesmo que o período de retenção seja de sete dias.

  • Para políticas baseadas em contagem, o Amazon Data Lifecycle Manager sempre cria AMIs de acordo com a frequência de criação antes de tentar cancelar o registro da AMI mais antiga de acordo com a política de retenção.

  • Pode levar várias horas para cancelar com êxito o registro de uma AMI e excluir os snapshots de backup associados. Se o Amazon Data Lifecycle Manager criar a próxima AMI antes que a AMI criada anteriormente seja cancelada com êxito, você poderá reter temporariamente um número de AMIs que maior do que sua contagem de retenção.

Os seguintes fatores são aplicáveis ao encerramento de instâncias direcionado por uma política:

  • Se você encerrar uma instância que foi direcionada por uma política com uma programação de retenção baseada em contagem, a política deixará de gerenciar as AMIs que criou anteriormente com base na instância encerrada. É necessário cancelar manualmente o registro dessas AMIs mais antigas caso elas não sejam mais necessárias.

  • Se você encerrar uma instância que foi direcionada por uma política com uma programação de retenção baseada em idade, a política continuará a cancelar registros de AMIs que foram criadas anteriormente com base na instância encerrada de acordo com a programação definida até a última AMI (mas sem incluí-la). É necessário cancelar manualmente o registro da última AMI caso ela não seja mais necessária.

As considerações a seguir se aplicam às políticas de AMI à descontinuação de AMIs:

  • Se você aumentar a contagem de defasagem da AMI para uma programação com retenção baseada em contagem, a alteração será aplicada a todas as AMIs (atuais e novas) criadas pela programação.

  • Se você aumentar o período de defasagem da AMI para uma programação com retenção baseada em idade, a alteração será aplicada somente a novas AMIs. AMIs atuais não são afetadas.

  • Se você remover a regra de defasagem da AMI de uma programação, o Amazon Data Lifecycle Manager não cancelará a defasagem de AMIs que foram anteriormente consideradas defasadas por essa programação.

  • Se você diminuir a contagem ou período de defasagem da AMI de uma programação, o Amazon Data Lifecycle Manager não cancelará a defasagem de AMIs que foram anteriormente consideradas defasadas por essa programação.

  • Se você defasar manualmente uma AMI criada por uma política de AMI, o Amazon Data Lifecycle Manager não substituirá a defasagem.

  • Se você cancelar manualmente a defasagem de uma AMI que foi anteriormente defasada por uma política de AMI, o Amazon Data Lifecycle Manager não substituirá o cancelamento.

  • Se uma AMI for criada por várias programações conflitantes e uma ou mais dessas programações não tiverem uma regra de defasagem da AMI, o Amazon Data Lifecycle Manager não vai defasar essa AMI.

  • Se uma AMI for criada por várias programações conflitantes e todas essas programações tiverem uma regra de descontinuação da AMI, o Amazon Data Lifecycle Manager usará a regra de descontinuação que resulte na data de descontinuação mais posterior.

As seguintes considerações se aplicam a políticas de AMI e à Lixeira:

  • Se o Amazon Data Lifecycle Manager cancelar o registro de uma AMI e enviá-la para a lixeira quando o limite de retenção da política for atingido e você restaurar manualmente essa AMI da lixeira, você deverá cancelar manualmente o registro dessa AMI quando ela não for mais necessária. O Amazon Data Lifecycle Manager não poderá mais gerenciar a AMI.

  • Se você cancelar manualmente o registro uma AMI criada por uma política e essa AMI estiver na lixeira quando o limite de retenção da política for atingido, o Amazon Data Lifecycle Manager não cancelará o registro da AMI. O Amazon Data Lifecycle Manager não gerencia AMIs enquanto elas estão na lixeira.

    Se a AMI for restaurada da lixeira antes que o limite de retenção da política seja atingido, o Amazon Data Lifecycle Manager cancelará o registro da AMI quando o limite de retenção da política for atingido.

    Se a AMI for restaurada da lixeira depois que o limite de retenção da política seja atingido, o Amazon Data Lifecycle Manager não canelará mais o registro da AMI. Exclua-a manualmente quando ela não for mais necessária.

As seguintes considerações se aplicam a políticas de AMI que estão no estado error:

  • Para políticas com programações de retenção com base na idade, as AMIs configuradas para expirar enquanto a política estiver no estado error serão retidas por tempo indeterminado. É necessário cancelar o registro das AMIs manualmente. Quando você habilita a política novamente, o Amazon Data Lifecycle Manager retoma o cancelamento de registro de snapshots à medida que seus períodos de retenção expiram.

  • Para políticas com programas de retenção com base em contagem, a política interrompe a criação e o cancelamento de registro de AMIs enquanto está no estado error. Ao reabilitar a política, o Amazon Data Lifecycle Manager retoma a criação de AMIs e retoma o cancelamento de registro de AMIs quando o limite de retenção é atingido.

As considerações a seguir se aplicam às políticas do AMI e à desabilitação de AMIs:

  • Se você desabilitar uma AMI criada pelo Amazon Data Lifecycle Manager, e essa AMI for desabilitada quando o limite de retenção for atingido, o Amazon Data Lifecycle Manager cancelará o registro da AMI e excluirá seus snapshots associados.

  • Se você desabilitar uma AMI criada pelo Amazon Data Lifecycle Manager e arquivar manualmente seus snapshots associados, e esses snapshots forem arquivados quando seu limite de retenção for atingido, o Amazon Data Lifecycle Manager não excluirá esses snapshots e não os gerenciará mais.

Recursos adicionais do

Para obter mais informações, consulte Automatização do gerenciamento de snapshots e AMIs do Amazon EBS usando o Amazon Data Lifecycle Manager no blog de armazenamento da AWS.