Como posso resolver o erro “O volume vol-XXXXXXXXXX não pode ser modificado no estado de modificação OPTIMIZING” no CloudFormation quando tento atualizar o tipo de volume do meu Amazon EBS (AWS::EC2::Volume)?

5 minuto de leitura
0

Recebo o erro “O volume vol-XXXXXXXXXX não pode ser modificado no estado de modificação OPTIMIZING” ou um erro semelhante no AWS CloudFormation. Esse erro acontece quando tento atualizar o tipo de volume do meu Amazon Elastic Block Store (Amazon EBS). O volume do meu EBS (AWS::EC2::Volume) fica preso no status UPDATE_IN_PROGRESS por um longo tempo e, no final, falha ao atualizar o tipo de volume. Minha pilha falha na atualização e na subsequente reversão da atualização. Após isso, a pilha encerra no status UPDATE_ROLLBACK_FAILED.

Breve descrição

Se você usa credenciais quando sua pilha do CloudFormation modifica um volume do EBS, o tempo limite do volume será de aproximadamente sete horas. Porém, se em vez disso você executar a pilha usando um perfil de serviço do AWS Identity and Access Management (IAM), o CloudFormation aumentará o tempo limite para 36 horas.

**Observação:**O tempo limite do volume se aplica somente à modificação do volume usando o CloudFormation. O tempo limite varia conforme os diferentes tipos de recursos e ações.

Normalmente, um volume EBS de 1 tebibyte (TiB) totalmente usado leva cerca de seis horas para migrar para uma nova configuração de desempenho. Para obter mais informações, consulteMonitorar o progresso das modificações de volume.

**Importante:**Se você já iniciou uma atualização de pilha com o CloudFormation, espere aproximadamente sete horas até que a pilha se estabilize antes de concluir as etapas a seguir. Sua pilha fica estabilizada quando entra no status UPDATE\ _ROLLBACK\ _FAILED.

Resolução

Observação: Se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), verifique se está usando a versão mais recente da AWS CLI.

Recuperar sua pilha após aguardar sua estabilização

Considere o exemplo a seguir. Se você alterar o tipo de volume do EBS de st1 para gp3, sua pilha poderá falhar ao atualizar o tipo de volume devido ao tamanho do volume. Nessa situação, você pode recuperar sua pilha executando a operação de continue-update-rollback em sua pilha. Para a operação de recuperação, ignore o ID lógico do recurso que falhou na atualização. Sua pilha encerra no status UPDATE\ _ROLLBACK\ _COMPLETE.

Recupere sua pilha usando a AWS CLI ou o console do CloudFormation.

AWS CLI:

aws cloudformation continue-update-rollback --stack-name your-stack-name --resources-to-skip logical-ID-of-EBS-volume

Console do CloudFormation:

  1. Abra o console do CloudFormation.

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

  3. Na coluna Nome da pilha, selecione a pilha que está presa no status UPDATE\ _ROLLBACK\ _FAILED.

  4. Selecione Ações da pilha e depois Continuar a reversão da atualização.

  5. Na caixa de diálogo Continuar a reversão da atualização, expanda Resolução de problemas avançada.

  6. Na seção Recursos a serem ignorados - opcional, selecione os recursos que você deseja ignorar.

Observação: certifique-se de selecionar o ID lógico do volume que falhou na atualização.

  1. Selecione Continuar a reversão da atualização.

Atualizar sua pilha para corresponder ao status atual do volume do seu EBS

Você deve atualizar sua pilha para corresponder ao status atual do volume do seu EBS. Seu modelo do CloudFormation é atualizado pela atualização da pilha, e daí ela muda para o status UPDATE\ _COMPLETE.

Por exemplo, você pode modificar o tipo de volume (AWS::EC2::Volume) de st1 para gp3. No entanto, o tipo de volume no CloudFormation permanece st1 devido à operação de reversão, mesmo que a atualização para gp3 seja refletida com precisão no Amazon EBS.

  1. Para monitorar o status do volume do seu EBS, use o console do Amazon EC2 ou execute o seguinte comando:
aws ec2 describe-volumes-modifications --volume-ids your-volume-ID
  1. Depois que o tipo de volume mudar para gp3 no Amazon EBS, atualize a pilha do CloudFormation com o tipo de volume (AWS::EC2::Volume) como gp3.

Observação: você pode modificar seu modelo do CloudFormation alterando o tipo de volume para gp3. Após isso, execute a operação de atualização.

  1. Use a detecção de desvio para verificar se o recurso de volume do seu EBS (AWS::EC2::Volume) está sincronizado com sua pilha.

**Importante:**a atualização de sua pilha pode levar mais de 36 horas se você não usar um perfil de serviço ou se o tamanho do volume for grande (aproximadamente 8 TiB). Nesses casos, a atualização da pilha pode falhar mesmo depois de usar um perfil de serviço com 36 horas de estabilização. Após isso, aguarde a estabilização da pilha. Durante esse período, você não poderá modificar nenhum outro tipo de recurso. Para resolver esse problema, conclua as seguintes etapas:

  1. Use uma política de exclusão Reter para remover o volume do EBS da sua pilha sem excluir o volume.

  2. Atualize o volume do seu EBS fora do CloudFormation usando, em vez disso, o console do Amazon EBS.

  3. Importe o volume do seu EBS de volta para sua pilha.

Caso queira manter o volume na pilha o tempo todo, mantenha o tamanho do volume abaixo de um limite. Por exemplo, se 8 TiB de dados levarem 64 horas, você poderá estimar o tamanho máximo para 36 horas e reduzir o tamanho dos dados para 4 TiB. Esse ajuste de limite permite que sua atualização seja concluída.


AWS OFICIAL
AWS OFICIALAtualizada há 3 anos