2016-07-19 10 views
1

Mein CloudFormation-Stack scheint explodiert zu sein. Ich habe versucht, einen schnellen Wechsel zu machen, die EC2-Instanzen, um die Größe und die Aktualisierung fehlgeschlagen mit dem Fehler:Kann CloudFormation-Stapel nach fehlgeschlagener Aktualisierung nicht bearbeitet werden?

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

Der Rollback auch mit Fehlern fehlgeschlagen:

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

Meine einzige Option, wenn Rechtsklick auf den Stapel zu löschen ist, und versuchen, das Update mit Gewalt durch die Aktionen Menü Renditen fortsetzen:

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

an der EC2 Instanz Konsole suchen, kann ich sehen, dass diese Meldung mindestens tr Ue: Alle Instanzen sind als beendet aufgelistet.

Alle Vorschläge hier über das, was über einen fehlgeschlagenen Update zu tun scheinen ausgesagt mir tatsächlich den Stapel ändern zu können, zuerst den Fehler zu beheben, die ich nicht in der Lage bin zu tun: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed

Muss ich Zuflucht neben dem Wegblasen des Stapels und dem Entwerfen eines neuen von meinem Backup? Ich bin total am Ende.

+0

detailliert sind, wo Sie die Änderung beantragt hat? – error2007s

+0

Ich klickte zunächst auf "Stack aktualisieren" und verwendete die GUI-Funktion "Design-Vorlage" von Amazon. –

+0

Versuchen Sie eine Sache, klicken Sie auf den Stapel und klicken Sie auf "Continue Update Rollback" und sehen, was passiert – error2007s

Antwort

1

CloudFormation versucht, deklarativ zu sein und versucht, von wo auch immer Sie beginnen, in den Zustand in Ihrer Vorlage zu verschieben. Manchmal kommt es zu einem inkonsistenten Zustand (wenn eine schlechte Vorlage angegeben wird oder wenn manuelle Änderungen außerhalb von CloudFormation vorgenommen werden). Wenn dies passiert, wird CloudFormation normalerweise ordnungsgemäß zurückgesetzt, aber wenn dies nicht der Fall ist, ist es mir immer nur gelungen, den Stapel zu löschen und von vorne anzufangen.

Als Folge davon sind zwei Dinge wichtig in Cloudformation:

  1. mehrere Ebenen verwenden. ZB ein FooDev- und ein FooProd CloudFormation-Stack, damit Sie Dinge (insbesondere Upgrades und ähnliches) in Dev testen können, anstatt Prod zu brechen.
  2. Verwenden mehrerer Stapel. Zum Beispiel sollte Ihr Datenbankstapel langlebig und statusbehaftet sein, also könnte er einen eigenen Stack bekommen und Sie sollten vorsichtig mit ihnen sein, während Ihre EC2-Instanzen kurzlebig und zustandslos sein sollten, es ist also viel mehr in Ordnung, wenn Sie einen Fehler machen Bereitstellen von einem von denen.

Those auch Best Practices, wie andere bei https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html

+0

Danke für den Rat. Zum Glück hatte ich ein Backup und konnte von dort wiederherstellen. Da deine Antwort am hilfreichsten war, akzeptiere ich sie. –