Erstellen eines EC2-AMI-Images aus einer laufenden Instanz im Vergleich zu einem Volume-Snapshot

22

Ich möchte eine Linux-basierte EC2-Instanz sichern, während sie ohne Ausfallzeit ausgeführt wird, und später eine neue Instanz starten. (Die Instanz führt einen Webserver und eine Postgres-Datenbank aus.)

Ich fand, dass es zwei Möglichkeiten gibt, dies zu tun, aber ich bin verwirrt darüber, was der Unterschied im Ergebnis zwischen ihnen ist.

Option 1: Erstellen Sie ein AMI direkt aus einer laufenden Instanz:

  1. Erstellen Sie ein neues AMI direkt aus der aktiven Originalinstanz.
  2. Starten Sie eine neue Instanz von AMI

Option 2: Erstellen Sie manuell ein AMI aus einem Snapshot:

  1. Erstellen Sie einen Snapshot von dem Volume, das an die ausgeführte Originalinstanz angehängt ist
  2. Erstellen Sie AMI aus dem Snapshot und geben Sie manuell Details wie Architektur und Kernel-ID ein
  3. Starten Sie eine neue Instanz aus dem manuell erstellten Image

Verwirrend ist nun, dass EC2 die Instanz standardmäßig neu startet, wenn ein AMI direkt von einer Instanz erstellt wird. Es gibt ein Kontrollkästchen "Kein Neustart" mit dem folgenden Tooltipp:

Wenn diese Option aktiviert ist, fährt Amazon EC2 die Instanz nicht herunter, bevor das Image erstellt wurde. Wenn diese Option verwendet wird, kann die Dateisystemintegrität des erstellten Images nicht garantiert werden.

Gibt es wirklich einen Unterschied im Ergebnis dieser beiden Möglichkeiten? Für mich fühlt es sich so an, als ob ich die gleichen Dinge manuell mache, die der automatisierte Assistent sowieso tun würde. Es generiert Snapshots, wählt die Kernel-IDs und -Architekturen aus.

Warum hat einer einen Warnungstext und der andere nicht? Das Erstellen eines Snapshots für eine ausgeführte Instanz wird als relativ sicher angesehen. Wenn die AMI-Erstellung einen Snapshot im Hintergrund erstellt, ist dies gefährlicher als das manuelle Erstellen aller Snapshots?

Vilsepi
quelle

Antworten:

13

Sie tun genau dasselbe, wenn Sie die no rebootOption beim Erstellen des AMI direkt aus EC2 auswählen . Dadurch wird im Grunde genommen eine Momentaufnahme erstellt, die möglicherweise in einem inkonsistenten Zustand sein kann. Beispielsweise riskieren Sie einen inkonsistenten Status, wenn Sie beim Erstellen des Snapshots viele Schreibvorgänge auf der Festplatte ausführen.

Wenn Sie einen Snapshot in einem "konsistenten" Zustand erstellen möchten, müssen Sie zuerst Ihre Instanz herunterfahren, dann einen Snapshot erstellen und dann Ihre Instanz neu starten. Aus diesem Grund ist die AMI-Erstellungsoption von EC2 sehr nützlich, da Sie nicht anhalten und neu starten müssen. Amazon kümmert sich darum und auch die IP-Adresse ändert sich auf Ihrer Instanz nicht. (Wenn Sie Ihre Instanz stoppen / neu starten, ändert sich Ihre IP-Adresse tatsächlich.)

Ich bin mir nicht sicher, warum Amazon keine Warnung anzeigt, wenn Sie einen Snapshot direkt vom Volume erstellen. Aus Volume-Sicht spielt es jedoch keine Rolle, ob das Volume von einer laufenden oder einer nicht laufenden Instanz verwendet wird ( Es ist nur wichtig, ob es angehängt oder entfernt wird (ohne Auswirkungen auf die Erstellung von Schnappschüssen).

Rico
quelle
Ich stimme zu, dass Sie AMIs erstellen sollten, da Sie die Instanz nicht herunterfahren möchten. Sie können nach Lösungen suchen, die dies sofort tun, um Zeit zu sparen. Ich persönlich benutze totalcloud.io, um meine Aktionen in AWS zu automatisieren.
Veer Abheek Singh Manhas