Compreender atualização de comportamentos de recursos da pilha - AWS CloudFormation

Compreender atualização de comportamentos de recursos da pilha

Quando você envia uma atualização, o AWS CloudFormation atualiza os recursos com base nas diferenças entre o que você envia e o modelo atual da pilha. Os recursos que não foram alterados funcionam sem interrupção durante o processo de atualização. Para recursos atualizados, o AWS CloudFormation usa um dos seguintes comportamentos de atualização:

Atualizações sem interrupções

O AWS CloudFormation atualiza o recurso sem interromper a operação do recurso e sem alterar o ID físico do recurso. Por exemplo, se você atualizar determinadas propriedade de um recurso AWS::CloudTrail::Trail, o AWS CloudFormation atualiza a trilha sem interrupções.

Atualizações com alguma interrupção

O AWS CloudFormation atualiza o recurso com interrupções. Por exemplo, se você atualizar determinadas propriedades de um recurso AWS::EC2::Instance, a instância poderá ter alguma interrupção enquanto o AWS CloudFormation e o Amazon EC2 reconfiguram a instância.

Substituição

O AWS CloudFormation recria o recurso durante uma atualização, o que também gera um novo ID físico. Normalmente o AWS CloudFormation cria o recurso de substituição primeiro, altera as referências de outros recursos dependentes para apontar para o recurso substituto e, em seguida, exclui o recurso antigo. Por exemplo, se você atualizar a propriedade AvailabilityZone de um tipo de recurso AWS::EC2::Instance, o AWS CloudFormation cria um novo recurso e substitui o recurso de instância do EC2 atual pela nova.

Se você estiver adicionando ou removendo uma propriedade que requer substituição, isso também acionará uma atualização. Essa atualização acontecerá mesmo se o valor real da propriedade não mudar.

O método que o AWS CloudFormation usa depende da propriedade que você atualiza para um determinado tipo de recurso. O comportamento da atualização de cada propriedade é descrito na Referência de tipos de recursos da AWS.

Dependendo do comportamento da atualização, você pode decidir quando modificar os recursos para reduzir o impacto dessas alterações em seu aplicativo. Especificamente, você pode planejar quando os recursos devem ser substituídos durante uma atualização. Por exemplo, se você atualizar a propriedade Port de um tipo de recurso AWS::RDS::DBInstance, o AWS CloudFormation substituirá a instância de banco de dados criando uma nova instância de banco de dados com a configuração de porta atualizada e excluirá a instância de banco de dados antiga. Antes da atualização, você pode planejar executar as seguintes atividades para se preparar para a substituição do banco de dados:

  • Faça um snapshot dos bancos de dados atuais.

  • Prepare uma estratégia de como os aplicativos que usam essa instância de banco de dados irão lidar com uma interrupção enquanto a instância de banco de dados está sendo substituída.

  • Verifique se os aplicativos que usam a instância de banco de dados consideram a configuração da porta atualizada e todas as outras atualizações que você tiver feito.

  • Use o DB snapshot para restaurar os bancos de dados na nova instância de banco de dados.

Este exemplo não abrange todos os casos, tendo a intenção de dar uma ideia do que é necessário planejar quando um recurso for substituído durante uma atualização.

nota

Se o modelo incluir uma ou mais pilhas aninhadas, o AWS CloudFormation também iniciará uma atualização de cada pilha aninhada. Isso é necessário para determinar se as pilhas aninhadas foram modificadas. O AWS CloudFormation atualiza apenas os recursos nas pilhas aninhadas que têm alterações especificadas nos modelos correspondentes.