EC2 Aktualisiere mein bestehendes AMI

18

Ich verwende Elastic Load Balancing zum Lastenausgleich meiner Auto Scaling Group. Dafür habe ich ein privates AMI , auf dem mein Anwendungsserver (Tomcat) und meine Web-App als Kriegsdienst bereitgestellt sind ... Jetzt funktioniert alles gut ... was wenn ich meine Tomcat-Konfiguration auf meinem AMI ändern muss . Wäre es nicht erforderlich, mein AMI zu starten -> Anmelden + Tomcat-Konfiguration ändern -> Neues AMI erstellen -> Altes AMI löschen Ich denke nicht, dass das Erstellen eines neuen AMI eine Lösung ist, da meine automatische Skalierung aktualisiert werden muss Gruppe, um mein neues AMI hinzuzufügen

Gibt es eine Möglichkeit, die Daten in meinem vorhandenen AMI zu aktualisieren, ohne ein neues zu erstellen? Ich möchte nur die gleiche AMI-ID haben

Hadi Salem
quelle

Antworten:

5

Sie können Ihre Konfiguration mit einem Benutzerdatenskript aktualisieren , das beim Starten Ihrer Instanz ausgeführt wird.

Was Sie in das Skript einfügen, hängt davon ab, wie Sie Ihre Konfiguration auf Dateisystemebene verwalten. Ich lege meine Konfigurationsdateien persönlich in ein Mercurial-Repository und pullaktualisiere sie einfach .

David Levesque
quelle
Ich denke, Ihre Antwort ist gültig, aber meiner Meinung nach ist es eine hackige ... Gibt es nicht eine Möglichkeit, einfach mein AMI-Image unter Beibehaltung derselben AMI-ID zu aktualisieren?
Hadi Salem
3
Leider denke ich nicht, dass es möglich ist. In einem Amazon-Dokument: "Den physischen Bits in einem Image ist eine AMI-ID zugeordnet. Um Benutzer vor Bildänderungen zu schützen, müssen Sie die AMIs der Amazon EC2-Instanz nach dem erneuten Bündeln erneut registrieren."
David Levesque
Es ist nicht möglich, ein vorhandenes AMI-Image zu ändern. Sie müssen ein neues erstellen.
Matt Houser
IMO bereitstellen Config mit Benutzerdaten ist eleganter. Die Leute neigen dazu, Dienste auch bei der Instanzerstellung zu installieren. Möglicherweise möchten Sie auch eine CloudFormation-Vorlage verwenden.
Edwin
Ich denke, ich werde BeanStalk mit einem benutzerdefinierten AMI verwenden, es wird mein Leben viel einfacher machen, es ist nicht erforderlich, einen Load Balancer mit automatischer Skalierung einzurichten, und für den Fall, dass ich meine Serverkonfiguration ändern muss, werde ich mein eigenes Skript erstellen .. Danke an alle
Hadi Salem
3

Es ist nicht möglich, ein vorhandenes AMI zu aktualisieren und die gleiche AMI-ID beizubehalten. Sie müssen entweder ein neues benutzerdefiniertes AMI erstellen und Ihre Startkonfiguration für die Auto Scaling-Gruppe aktualisieren oder Ihr Setup ändern, um Änderungen an der Instanz zu übernehmen, nachdem Sie eine Instanz des Basis-AMI gestartet haben, wie von @DavidLevesque vorgeschlagen.

Es ist eine gängige Architektur, Anwendungen, Konfigurationen und Daten beispielsweise beim Start von S3 herunterzuladen.

Eric Hammond
quelle
+1 für den Hinweis auf die Architektur
Leckerbissen
0

Das sieht aus wie ein alter Beitrag. Wenn Sie sich jedoch immer noch in der gleichen Situation befinden, können Sie ein instanzenspeichergestütztes Windows-AMI (Bundled Task) verwenden. Es ähnelt auch einem AMI, aber Sie haben mehr Kontrolle über das Image selbst, da Sie das Image praktisch selbst erstellen und in einem S3-Bucket speichern. Auf diese Weise können Sie das zugrunde liegende Image Ihres AMI von Zeit zu Zeit aktualisieren, ohne ein neues AMI erstellen zu müssen (zumindest verstehe ich das so).

https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/Creating_InstanceStoreBacked_WinAMI.html?icmpid=docs_ec2_console

Rio Bautista
quelle
Zu Ihrer Information ... "Die einzigen Windows-AMIs, die vom Instanzspeicher gesichert werden können, sind die für Windows Server 2003. Instanzen, die vom Instanzspeicher gesichert werden, verfügen nicht über den verfügbaren Speicherplatz, der für spätere Versionen von Windows Server erforderlich ist."
Rich C