Substituir o volume raiz de uma instância do Amazon EC2 sem interrompê-la - Amazon Elastic Compute Cloud

Substituir o volume raiz de uma instância do Amazon EC2 sem interrompê-la

O Amazon EC2 permite que você substitua o volume raiz do Amazon EBS por uma instância em execução retendo o seguinte:

  • Dados armazenados em volumes de armazenamento de instâncias: os volumes de armazenamento de instâncias permanecem anexados à instância após a restauração do volume raiz.

  • Dados armazenados em volumes de dados (não raiz) do Amazon EBS: os volumes não raiz do Amazon EBS permanecem anexados à instância após a restauração do volume raiz.

  • Configuração de rede — Todas as interfaces de rede permanecem conectadas à instância e mantêm seus endereços IP, identificadores e IDs de anexo. Quando a instância fica disponível, todo o tráfego de rede pendente é liberado. Além disso, a instância permanece no mesmo host físico, portanto, mantém seus endereços IP públicos e privados e o nome DNS.

  • Políticas do IAM — IAM os perfis e as políticas (como políticas baseadas em tags) associados à instância são mantidos e impostos.

Como funciona a substituição de volume raiz

Quando você substitui o volume raiz de uma instância, uma tarefa de substituição do volume raiz é criada. O volume raiz original é desvinculado da instância e o novo volume raiz é anexado à instância em seu lugar. O mapeamento de dispositivos de blocos da instância é atualizado para refletir a ID do volume raiz substituto.

Quando você substituir o volume raiz de uma instância, deverá especificar a origem do snapshot para o novo volume. As opções a seguir são possíveis.

Essa opção substitui o volume raiz atual por um volume baseado no snapshot usado para criá-lo.

Considerações sobre o uso do estado de inicialização

O volume raiz substituto obtém o mesmo tipo, tamanho e exclusão nos atributos de encerramento do volume raiz original.

Essa opção substitui o volume raiz atual por um volume substituto baseado no snapshot que você especifica. Por exemplo, um snapshot específico que você criou antes usando esse volume raiz. Isso é útil se você precisar fazer uma recuperação depois de problemas causados porque o volume raiz foi corrompido por ou erros de configuração de rede no sistema operacional convidado.

O volume raiz substituto obtém o mesmo tipo, tamanho e exclusão nos atributos de encerramento do volume raiz original.

Considerações sobre o uso de um snapshot
  • Só é possível usar snapshots que pertencem à mesma linhagem do volume raiz atual.

  • Não é possível usar cópias de snapshots criadas de snapshots que foram tirados do volume raiz.

  • Após substituir o volume raiz com sucesso, você ainda pode usar os snapshots obtidos do volume raiz original para substituir o novo volume raiz (substituto).

Essa opção substitui o volume raiz atual usando uma AMI que você especifica. Isso é útil se você precisar realizar correções ou atualizações de sistemas operacionais e aplicações. A AMI deve ter o mesmo código de produto, informações de cobrança, tipo de arquitetura e tipo de virtualização que a instância.

Se a instância estiver habilitada para ENA ou sriov-net, você deverá usar uma AMI que ofereça suporte a esses recursos. Se a instância não estiver habilitada para ENA ou sriov-net, você poderá selecionar uma AMI que não inclua suporte para esses recursos ou adicionar suporte automaticamente se selecionar uma AMI compatível com ENA ou sriov-net.

Se a instância estiver habilitada para o NitroTPM, você deverá usar uma AMI que tenha o NitroTPM habilitado. O suporte ao NitroTPM não será habilitado se a instância não tiver sido configurada para ele, independentemente da AMI que você selecionar.

Você pode selecionar uma AMI com um modo de inicialização diferente do modo da instância, desde que a instância seja compatível com o modo de inicialização da AMI. Se a instância não for compatível com o modo de inicialização, a solicitação falhará. Se a instância for compatível com o modo de inicialização, o novo modo de inicialização será propagado para a instância e seus dados UEFI serão atualizados adequadamente. Se você tiver modificado a ordem de inicialização manualmente ou adicionado uma chave UEFI Secure Boot privada para carregar módulos privados do kernel, as alterações serão perdidas durante a substituição do volume raiz.

O volume raiz substituto obtém o mesmo tipo de volume e o mesmo atributo de exclusão ao encerrar do volume raiz original, e obtém o tamanho do mapeamento de dispositivos de blocos do volume raiz AMI.

nota

O tamanho do mapeamento de dispositivos de blocos de volume raiz da AMI deve ser igual ou maior que o tamanho do volume raiz original. Se o tamanho do mapeamento de dispositivos de blocos do volume raiz da AMI for menor que o tamanho do volume raiz original, a solicitação falhará.

Após a conclusão da tarefa de substituição do volume raiz, as seguintes informações novas e atualizadas são refletidas quando você descreve a instância usando o console, a AWS CLI ou AWS SDKs:

  • ID da nova AMI

  • ID de novo volume para o volume raiz

  • Atualização da configuração do modo de inicialização (se alterada pela AMI)

  • Atualização da configuração do NitroTPM (se habilitada pela AMI)

  • Atualização da configuração do ENA (se habilitada pela AMI)

  • Atualização da configuração de sriov-net (se habilitada pela AMI)

A ID da nova AMI também é refletida nos metadados da instância.

Considerações sobre o uso de uma AMI:
  • Se você usar uma AMI que tenha vários mapeamentos de dispositivos de blocos, somente o volume raiz da AMI será usado. Os outros volumes (não raiz) serão ignorados.

  • Você só poderá usar esse recurso se tiver permissões para a AMI e o respectivo snapshot de volume raiz associado. Não é possível usar esse recurso com AMIs do AWS Marketplace.

  • Você só poderá usar uma AMI sem um código de produto se a instância não tiver um código de produto.

  • O tamanho do mapeamento de dispositivos de blocos de volume raiz da AMI deve ser igual ou maior que o tamanho do volume raiz original. Se o tamanho do mapeamento de dispositivos de blocos do volume raiz da AMI for menor que o tamanho do volume raiz original, a solicitação falhará.

  • Os documentos de identidade da instância são atualizados automaticamente.

  • Se a instância for compatível com NitroTPM, os dados do nitroTPM da instância serão redefinidos e novas chaves serão geradas.

Após a conclusão do processo de substituição do volume raiz, você pode escolher se deseja manter o volume raiz original. Se você optar por excluir o volume raiz original após a conclusão do processo de substituição, o volume raiz original será automaticamente excluído e ficará irrecuperável. Se você escolher manter o volume raiz original após a conclusão do processo, o volume permanecerá provisionado em sua conta. Você deverá excluí-lo manualmente quando não precisar mais dele.

A tarefa de substituição de volume raiz passa pelos seguintes estados durante o processo:

  • pending: o volume substituto está sendo criado.

  • in-progress: o volume original está sendo desanexado e o volume substituto está sendo anexado.

  • succeeded: o volume substituto foi anexado com sucesso à instância e ela está disponível.

  • failing: a tarefa de substituição está em processo de falha.

  • failed: houve falha na tarefa de substituição, mas o volume raiz original ainda está anexado.

  • failing-detached: a tarefa de substituição está em processo de falha e a instância pode não ter um volume raiz anexado.

  • failed-detached: houve falha na tarefa de substituição e a instância não tem um volume raiz anexado.

Se a tarefa de substituição do volume raiz falhar, a instância será reinicializada e o volume raiz original permanecerá anexado à instância.

Considerações

Antes de começar, considere o seguinte:

Requisitos
  • A instância deve estar no estado running.

  • A instância é reinicializada automaticamente durante o processo. O conteúdo da memória (RAM) é apagado durante a reinicialização. Não requer reinicializações manuais.

  • Não é possível substituir o volume raiz se ele for um volume de armazenamento de instâncias. Só há compatibilidade com instâncias com volumes raiz do Amazon EBS.

  • Você pode substituir o volume raiz de todos os tipos de instâncias virtualizadas e instâncias bare metal do EC2 Mac. Nenhum outro tipo de instância bare metal é compatível.

  • Só é possível usar snapshots que pertencem à mesma linhagem que os volumes raiz anteriores da instância.

  • Se sua conta estiver habilitada para Criptografia do Amazon EBS por padrão na região atual, o volume raiz de substituição criado pela tarefa de substituição do volume raiz será sempre criptografado, independentemente do status de criptografia do snapshot especificado ou do volume raiz da AMI especificada.

Resultados da criptografia

A tabela a seguir resume os possíveis resultados da criptografia.

Volume raiz original Snapshot ou AMI especificado Criptografia por padrão Volume raiz substituto Chave de criptografia usada para o volume raiz substituto
Restaurar o volume raiz substituto para o estado de execução inicial Criptografado Não aplicável Não considerado Criptografado Mesma chave do KMS do volume raiz original
Não criptografado Não aplicável Desabilitado Não criptografado Não aplicável
Não criptografado Não aplicável Habilitado Criptografado Contaschave KMS padrão para criptografia do Amazon EBS
Restaurar o volume raiz de substituição a partir do snapshot ou da AMI Criptografado Não criptografado Não considerado Criptografado Mesma chave do KMS do volume raiz original
Criptografado Criptografado Não considerado Criptografado Mesma chave do KMS do volume raiz original
Não criptografado Não criptografado Desabilitado Não criptografado Não aplicável
Não criptografado Não criptografado Habilitado Criptografado Contaschave KMS padrão para criptografia do Amazon EBS
Não criptografado Criptografado Não considerado Criptografado Se a AMI ou o snapshot pertencer à conta, o volume de substituição será criptografado com a chave do KMS da AMI ou do snapshot. Se a AMI ou o snapshot for compartilhados com a conta, o volume de substituição será criptografado com a chave do KMS padrão para criptografia do Amazon EBS da conta.

Substituir um volume raiz

Quando você substitui o volume raiz de uma instância, uma tarefa de substituição do volume raiz é criada. É possível usar a tarefa de substituição de volume raiz para monitorar o progresso e o resultado do processo de substituição.

Console
Para substituir o volume raiz
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Instances (Instâncias).

  3. Selecione a instância que será substituída pelo volume raiz e escolha Actions (Ações), Monitor and troubleshoot (Monitorar e solucionar problemas) e Replace root volume (Substituir volume raiz).

    nota

    A ação Replace root volume (Substituir volume raiz) estará desabilitada se a instância selecionada não estiver no estado running.

  4. Na tela Substituir volume raiz, em Restaurar, escolha uma das seguintes opções:

    • Estado de inicialização: restaurar o volume raiz substituto a partir do snapshot que foi usado para criar o volume raiz atual.

    • Instantâneo: restaurar o volume raiz de substituição para o instantâneo que você especificar. Em Snapshot, selecione o snapshot a ser usado.

    • Imagem: restaurar o volume raiz substituto usando a AMI que você especificar. Em Imagem, selecione a AMI a ser usada.

  5. (Opcional) Para excluir o volume raiz que você está substituindo, selecione Excluir volume raiz substituído.

  6. Escolha Criar tarefa de substituição.

  7. Para monitorar a tarefa de substituição, escolha a guia Armazenamento para a instância e expanda Tarefas recentes de substituição do volume raiz.

AWS CLI
Para restaurar o volume raiz substituto para o estado de execução

Use o comando create-replace-root-volume-task. Em --instance-id, especifique o ID da instância para a qual deseja substituir o volume raiz. Omita os parâmetros --snapshot-id e --image-id. Para excluir o volume raiz original após ele ter sido substituído, inclua --delete-replaced-root-volume e especifique true.

$ aws ec2 create-replace-root-volume-task \ --instance-id i-1234567890abcdef0 \ --delete-replaced-root-volume
Para restaurar o volume raiz em um snapshot específico

Use o comando create-replace-root-volume-task. Em --instance-id, especifique o ID da instância para a qual deseja substituir o volume raiz. Em --snapshot-id, especifique o ID do snapshot a ser usado. Para excluir o volume raiz original após ele ter sido substituído, inclua --delete-replaced-root-volume e especifique true.

$ aws ec2 create-replace-root-volume-task \ --instance-id i-1234567890abcdef0 \ --snapshot-id snap-9876543210abcdef0 \ --delete-replaced-root-volume
Para restaurar o volume raiz substituto usando uma AMI

Use o comando create-replace-root-volume-task. Em --instance-id, especifique o ID da instância para a qual deseja substituir o volume raiz. Em --image-id, especifique o ID da AMI a ser usada. Para excluir o volume raiz original após ele ter sido substituído, inclua --delete-replaced-root-volume e especifique true.

$ aws ec2 create-replace-root-volume-task \ --instance-id i-01234567890abcdef \ --image-id ami-09876543210abcdef \ --delete-replaced-root-volume
Para visualizar o status de uma tarefa de substituição de volume raiz

Use o comando describe-replace-root-volume-tasks e especifique os IDs das tarefas de substituição do volume raiz a serem visualizadas.

$ aws ec2 describe-replace-root-volume-tasks \ --replace-root-volume-task-ids replacevol-1234567890abcdef0
{ "ReplaceRootVolumeTasks": [ { "ReplaceRootVolumeTaskId": "replacevol-1234567890abcdef0", "InstanceId": "i-1234567890abcdef0", "TaskState": "succeeded", "StartTime": "2020-11-06 13:09:54.0", "CompleteTime": "2020-11-06 13:10:14.0", "SnapshotId": "snap-01234567890abcdef", "DeleteReplacedRootVolume": "True" }] }

Como alternativa, especifique o filtro instance-id para filtrar os resultados por instância.

$ aws ec2 describe-replace-root-volume-tasks \ --filters Name=instance-id,Values=i-1234567890abcdef0
Tools for Windows PowerShell
Para restaurar o volume raiz substituto para o estado de execução

Use o comando New-EC2ReplaceRootVolumeTask. Em -InstanceId, especifique o ID da instância para a qual deseja substituir o volume raiz. Omita os parâmetros -SnapshotId e -ImageId. Para excluir o volume raiz original após ele ter sido substituído, inclua -DeleteReplacedRootVolume e especifique $true.

PS C:\> New-EC2ReplaceRootVolumeTask -InstanceId i-1234567890abcdef0 -DeleteReplacedRootVolume $true
Para restaurar o volume raiz em um snapshot específico

Use o comando New-EC2ReplaceRootVolumeTask. Em --InstanceId, especifique o ID da instância para a qual deseja substituir o volume raiz. Em -SnapshotId, especifique o ID do snapshot a ser usado. Para excluir o volume raiz original após ele ter sido substituído, inclua -DeleteReplacedRootVolume e especifique $true.

PS C:\> New-EC2ReplaceRootVolumeTask -InstanceId i-1234567890abcdef0 -SnapshotId snap-9876543210abcdef0 -DeleteReplacedRootVolume $true
Para restaurar o volume raiz substituto usando uma AMI

Use o comando New-EC2ReplaceRootVolumeTask. Em -InstanceId, especifique o ID da instância para a qual deseja substituir o volume raiz. Em -ImageId, especifique o ID da AMI a ser usada. Para excluir o volume raiz original após ele ter sido substituído, inclua -DeleteReplacedRootVolume e especifique $true.

PS C:\> New-EC2ReplaceRootVolumeTask -InstanceId i-1234567890abcdef0 -ImageId ami-09876543210abcdef -DeleteReplacedRootVolume $true
Para visualizar o status de uma tarefa de substituição de volume raiz

Use o comando Get-EC2ReplaceRootVolumeTask e especifique os IDs das tarefas de substituição do volume raiz a serem visualizadas.

PS C:\> Get-EC2ReplaceRootVolumeTask -ReplaceRootVolumeTaskIds replacevol-1234567890abcdef0

Como alternativa, especifique o filtro instance-id para filtrar os resultados por instância.

PS C:\> Get-EC2ReplaceRootVolumeTask -Filters @{Name = 'instance-id'; Values = 'i-1234567890abcdef0'} | Format-Table