1

Мой стек CloudFormation, похоже, взорвался. Я пытался сделать быструю замену, чтобы изменить размер экземпляров EC2 и обновления произошел сбой с ошибкой:Не удается отредактировать стек CloudFormation после неудачного обновления?

Invalid value 'm4.large' for instanceType. LaunchPlan instance type does not match attribute value m4.xlarge 

Откат также потерпела неудачу с ошибкой:

The following resource(s) failed to update: [TC2, TC1, TC3]. 

Мой единственный вариант, когда правой кнопкой мыши на стек чтобы удалить, и пытаюсь продолжить обновление силой через доходности меню действия:

This instance 'i-e5e8b063' is not in a state from which it can be stopped. 

Глядя на EC2 экземпляр консоли, я могу видеть, что это сообщение, по крайней мере тр ue: Все экземпляры перечислены как завершенные.

Все предложения здесь о том, что делать с неудачного обновления, кажется, основывается на мне на самом деле быть в состоянии изменить стек, чтобы исправить ошибку первым, который я не в состоянии сделать: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed

ли я любой регресс, кроме того, чтобы сдуть стек и разработать новый из моей резервной копии? У меня полная потеря.

+0

Где вы применить изменения? – error2007s

+0

Сначала я нажал «Обновить стек» и использовал графический интерфейс «Дизайн-шаблон», предоставляемый Amazon. –

+0

Попробуйте одно нажатие на стек и нажмите «Продолжить откат» и посмотрите, что произойдет – error2007s

ответ

1

CloudFormation пытается быть декларативным и пытается перемещаться из любого места в вашем шаблоне. Иногда он попадает в несогласованное состояние (при использовании плохого шаблона или когда вручную изменяются вне CloudFormation). Когда это происходит со мной, CloudFormation обычно откатывается должным образом, но когда этого не происходит, мне только удавалось просто удалить стек и начать с нуля.

Как следствие этого, важны две вещи в CloudFormation:

  1. Использование нескольких ярусов. Например, FooDev и FooProd CloudFormation, чтобы вы могли проверить вещи (особенно обновления и т. Д.) В Dev, а не сломать Prod.
  2. Использование нескольких стеков. Например, ваш стек базы данных должен быть долговечным и состоятельным, поэтому он может получить собственный стек, и вы должны быть осторожны с ними, в то время как ваши экземпляры EC2 должны быть недолговечными и безстоящими, так что это намного лучше, если вы испортите развертывание одного из них.

Те лучшие практики, а также другие подробно описаны в https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html

+0

Спасибо за совет. К счастью, у меня была резервная копия, и я смог восстановить ее там. Поскольку ваш ответ был наиболее полезным, я соглашусь с ним. –

Смежные вопросы