Я сейчас экспериментирую с CloudFormation. Я развернул стек, который включал AutoScalingGroup (а также LaunchConfig и CloudFormation :: Init), LoadBalancer, один экземпляр EC2 (и CloudFormation :: Init) и пару групп безопасности.
Если я завершу экземпляры EC2, созданные AutoScalingGroup, они будут созданы заново, как и ожидалось. На самом деле это очень полезно для тестирования изменений в моих настройках LaunchConfiguration и CloudFormation :: Init (в основном, чтобы убедиться, что он работает с нуля).
У меня также есть экземпляр EC2 (названный DnsServer1
) с публичным IP. Во время работы с данными CloudFormation :: Init я также вручную отключил его экземпляр. Я знаю, что CloudFormation не восстанавливает его, как AutoScalingGroup, но я ожидал, что он будет воссоздан, когда я запустил aws cloudformation update-stack
.
Вместо этого я получаю сообщение об ошибке: AWS::EC2::Instance DnsServer1 i-014eee8720c4fb542 does not exist
.
Полный журнал обновлений:
11:03:40 UTC-0500 UPDATE_ROLLBACK_COMPLETE AWS::CloudFormation::Stack GregCFTest1
11:03:38 UTC-0500 UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS AWS::CloudFormation::Stack GregCFTest1
11:03:36 UTC-0500 UPDATE_COMPLETE AWS::AutoScaling::LaunchConfiguration WebServerLaunchConfig
11:03:36 UTC-0500 UPDATE_COMPLETE AWS::EC2::Instance DnsServer1
11:03:13 UTC-0500 UPDATE_ROLLBACK_IN_PROGRESS AWS::CloudFormation::Stack GregCFTest1 The following resource(s) failed to update: [DnsServer1].
11:03:11 UTC-0500 UPDATE_COMPLETE AWS::AutoScaling::LaunchConfiguration WebServerLaunchConfig
11:03:10 UTC-0500 UPDATE_FAILED AWS::EC2::Instance DnsServer1 i-014eee8720c4fb542 does not exist
11:03:00 UTC-0500 UPDATE_IN_PROGRESS AWS::CloudFormation::Stack GregCFTest1 User Initiated
Что я могу сделать, чтобы CloudFormation воссоздала этот ресурс, кроме удаления стека и его воссоздания?
Самый простой способ - дать экземпляру EC2 другое имя ресурса и обновить стек. Cloudformation интерпретирует это, когда вы создаете совершенно новый экземпляр и создаете его.
Другой альтернативой является изменение значения конфигурации, которое вызывает создание нового экземпляра, например изменение подсети экземпляра.
Я столкнулся с аналогичной проблемой, связанной с уникальным идентификатором, эта ссылка помогла мне решить проблему.
https://aws.amazon.com/premiumsupport/knowledge-center/failing-stack-updates-deleted/