View a markdown version of this page

Verwenden eines benutzerdefinierten Amazon Machine Images (AMI) in Ihrer Elastic Beanstalk-Umgebung - AWS Elastic Beanstalk

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden eines benutzerdefinierten Amazon Machine Images (AMI) in Ihrer Elastic Beanstalk-Umgebung

In diesem Abschnitt wird erläutert, wann Sie die Verwendung eines benutzerdefinierten AMI in Betracht ziehen sollten, und es werden die Verfahren zur Konfiguration und Verwaltung des benutzerdefinierten AMI in Ihrer Umgebung beschrieben. Wenn Sie eine AWS Elastic Beanstalk Umgebung erstellen, können Sie ein Amazon Machine Image (AMI) angeben, das anstelle des standardmäßigen Elastic Beanstalk-AMI verwendet werden soll, das in Ihrer Plattformversion enthalten ist. Ein benutzerdefiniertes AMI kann Bereitstellungszeiten verbessern, wenn Instances in Ihrer Umgebung gestartet werden, wenn Sie viel Software installieren müssen, die nicht in den Standard-AMIs enthalten ist.

Die Verwendung von Konfigurationsdateien ist effektiv, um Ihre Umgebung schnell und konsistent anzupassen. Das Anwenden von Konfigurationen kann jedoch bei der Erstellung und Aktualisierung der Umgebung langsam viel Zeit in Anspruch nehmen. Wenn Sie viele Server-Konfigurationen in Konfigurationsdateien vornehmen, können Sie diese Zeit verringern, indem Sie eine benutzerdefinierte AMI erstellen, die bereits über die benötigte Software und Konfiguration verfügt.

Mit einem benutzerdefinierten AMI können Sie auch Änderungen an niedrigen Komponenten vornehmen, wie z. B. dem Linux-Kernel, die schwierig zu implementieren sind oder lange für die Anwendung auf Konfigurationsdateien brauchen. Zum Erstellen eines benutzerdefinierten AMI starten Sie ein Elastic Beanstalk-AMI in Amazon EC2, passen die Software und Konfiguration an Ihre Anforderungen an, halten die Instance an und speichern ein AMI daraus.

Erstellen eines benutzerdefinierten AMI

Als Alternative zu diesen Verfahren können Sie EC2 Image Builder verwenden, um benutzerdefinierte AMIs zu erstellen und zu verwalten. Weitere Informationen finden Sie im Image Builder-Benutzerhandbuch.

So identifizieren Sie das Basis-AMI von Elastic Beanstalk
  1. Führen Sie in einem Befehlsfenster einen ähnlichen Befehl wie den folgenden aus. Weitere Informationen finden Sie unter describe-platform-version in der AWS CLI -Befehlsreferenz.

    Geben Sie die AWS Region an, in der Sie Ihr benutzerdefiniertes AMI verwenden möchten, und ersetzen Sie den Plattform-ARN und die Versionsnummer durch die Elastic Beanstalk-Plattform, auf der Ihre Anwendung basiert.

    Beispiel- Mac OS/Linux OS
    $ aws elasticbeanstalk describe-platform-version --region us-east-2 \ --platform-arn "arn:aws:elasticbeanstalk:us-east-2::platform/Node.js 20 running on 64bit Amazon Linux 2023/6.1.7" \ --query PlatformDescription.CustomAmiList [ { "VirtualizationType": "pv", "ImageId": "" }, { "VirtualizationType": "hvm", "ImageId": "ami-020ae06fdda6a0f66" } ]
    Beispiel- Windows OS
    C:\> aws elasticbeanstalk describe-platform-version --region us-east-2 --platform-arn"arn:aws:elasticbeanstalk:us-east-2::platform/ IIS 10.0 running on 64bit Windows Server 2022/2.15.3" --query PlatformDescription.CustomAmiList [ { "VirtualizationType": "pv", "ImageId": "" }, { "VirtualizationType": "hvm", "ImageId": "ami-020ae06fdda6a0f66" } ]
  2. Notieren Sie sich den ImageId-Wert, der im Ergebnis wie ami-020ae06fdda6a0f66 aussieht.

Der Wert ist das Standard-Elastic Beanstalk-AMI für die Plattformversion, die EC2-Instance-Architektur und die AWS Region, die für Ihre Anwendung relevant sind. Wenn Sie AMIs für mehrere Plattformen, Architekturen oder AWS Regionen erstellen müssen, wiederholen Sie diesen Vorgang, um das richtige Basis-AMI für jede Kombination zu ermitteln.

Anmerkung

Erstellen Sie kein AMI aus einer Instance, die in einer Elastic Beanstalk-Umgebung gestartet wurde. Elastic Beanstalk nimmt Änderungen an Instances während der Bereitstellung vor, die zu Problemen im gespeicherten AMI führen können. Durch das Speichern eines Image von einer Instance in einer Elastic Beanstalk-Umgebung wird auch die Version Ihrer Anwendung, die für die Instance bereitgestellt wurde, zu einem festen Teil des Image.

Für Linux ist es auch möglich, ein benutzerdefiniertes AMI von einem Community-AMI zu erstellen, dass nicht von Elastic Beanstalk veröffentlicht wurde. Sie können das neueste Amazon Linux-AMI als Ausgangspunkt verwenden. Wenn Sie eine Umgebung mit einem Linux AMI starten, das nicht von Elastic Beanstalk verwaltet wird, versucht Elastic Beanstalk die Plattformsoftware (Sprache, Framework, Proxy-Server usw.) und zusätzliche Komponenten zur Unterstützung von Funktionen, wie Erweiterte Zustandsberichte zu installieren.

Anmerkung

Benutzerdefinierte AMIs, die auf Windows Server basieren, erfordern das von AB bereitgestellte Elastic Beanstalk-AMI, describe-platform-version, wie zuvor in Schritt 1 gezeigt.

Obwohl Elastic Beanstalk ein AMI verwenden kann, das nicht von Elastic Beanstalk verwaltet wird, kann die erhöhte Bereitstellungszeit, die sich daraus ergibt, dass Elastic Beanstalk fehlende Komponenten installiert, die Vorteile der Erstellung eines benutzerdefinierten AMI im Vorhinein verringern oder aufheben. Andere Linux-Distributionen könnten mit einiger Fehlerbehebung funktionieren, werden aber nicht offiziell unterstützt. Wenn Ihre Anwendung eine spezifische Linux-Distribution erfordert, ist es alternativ auch möglich, ein Docker-Image zu erstellen und es auf der Docker-Plattform oder Multicontainer Docker-Plattform von Elastic Beanstalk auszuführen.

So erstellen Sie ein benutzerdefiniertes AMI
  1. Öffnen Sie die Amazon-EC2-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie Launch Instance aus.

  3. Wenn Sie ein Basis-AMI von Elastic Beanstalk (unter Verwendung von describe-platform-version) oder ein Amazon Linux-AMI identifiziert haben, geben Sie die AMI-ID in das Suchfeld ein. Drücken Sie anschließend die Eingabetaste.

    Sie können auch die Liste für eine andere Community-AMI durchsuchen, die Ihren Anforderungen entspricht.

    Anmerkung

    Wir empfehlen, dass Sie eine AMI mit HVM-Virtualisierung verwenden. Diese AMIs zeigen Virtualization type: hvm (Virtualisierungstyp: hvm) in ihrer Beschreibung an.

    Weitere Informationen finden Sie unter Virtualisierungstypen im Amazon EC2-Benutzerhandbuch.

  4. Wählen Sie Select (Auswählen) zum Auswählen des AMI aus.

  5. Wählen Sie einen Instance-Typen und danach Weiter: Instance-Details konfigurieren aus.

  6. (Für veraltete Amazon Linux AMI (AL1) -Plattformen) Überspringen Sie diesen Schritt, wenn Ihre Umgebung auf einer unterstützten Linux-based Plattform oder auf einer Windows-Plattform läuft.

    Erweitern Sie den Abschnitt Erweiterte Details und fügen Sie den folgenden Text in das Feld Benutzerdaten ein.

    #cloud-config repo_releasever: repository version number repo_upgrade: none

    Die Repository-Versionsnummer ist das Jahr und der Monat der Version im AMI-Namen. Beispiel: AMIs basierend auf der März 2015-Version von Amazon Linux haben die Repository-Versionsnummer 2015.03. Bei einem Elastic Beanstalk-Image entspricht dies dem Datum, das im Namen des Lösungs-Stacks für Ihre Plattformversion auf der Basis von Amazon Linux AMI (Vorgängerversion von Amazon Linux 2) angegeben ist.

    Anmerkung

    Die Einstellung repo_releasever konfiguriert die Lock-on-Launch-Funktion für ein Amazon Linux AMI. Dies bewirkt, dass das AMI beim Start eine feste, spezifische Repository-Version verwendet. Diese Funktion wird auf Amazon Linux 2 nicht unterstützt. Geben Sie es nicht an, wenn Ihre Umgebung einen aktuellen Amazon Linux 2-Plattformzweig verwendet. Die Einstellung ist erforderlich, wenn Sie ein benutzerdefiniertes AMI mit Elastic Beanstalk ausschließlich auf Amazon Linux AMI-Plattformzweigen verwenden (vor Amazon Linux 2).

    Die Einstellung repo_upgrade deaktiviert die automatische Installation von Sicherheitsupdates. Dies ist für die Verwendung eines benutzerdefinierten AMI mit Elastic Beanstalk erforderlich.

  7. Führen Sie die Schritte im Assistenten aus, um die EC2-Instance zu starten. Wenn Sie dazu aufgefordert werden, wählen Sie ein Schlüsselpaar, auf das Sie Zugriff haben, um die Verbindung zur Instance für die nächsten Schritte herzustellen.

  8. Stellen Sie eine Verbindung mit der Instance über SSH oder RDP her.

  9. Führen Sie alle gewünschten Anpassungen durch.

  10. (Windows-Plattformen) Führen Sie EC2Config service Sysprep aus. Weitere Informationen zu EC2Config finden Sie unter Konfigurieren einer Windows-Instance mithilfe des EC2Config-Service. Stellen Sie sicher, dass Sysprep konfiguriert ist, um ein zufälliges Passwort zu generieren, das von der AWS-Managementkonsole abgerufen werden kann.

  11. Stoppen Sie in der Amazon EC2-Konsole die EC2-Instance. Anschließend wählen Sie im Menü Instance Actions (Instance-Aktionen) die Option Create Image (EBS AMI) (Image erstellen (EBS AMI)) aus.

  12. Beenden Sie die EC2-Instance, um zusätzliche AWS Kosten zu vermeiden.

So verwenden Sie Ihr benutzerdefiniertes AMI in einer Elastic Beanstalk-Umgebung
  1. Öffnen Sie die Elastic Beanstalk-Konsole und wählen Sie in der Liste Regionen Ihre aus. AWS-Region

  2. Wählen Sie im Navigationsbereich Environments (Umgebungen) aus und wählen Sie dann in der Liste den Namen Ihrer Umgebung aus.

  3. Wählen Sie im Navigationsbereich Configuration (Konfiguration) aus.

  4. Wählen Sie in der Konfigurationskategorie Capacity (Kapazität) die Option Edit (Bearbeiten).

  5. Geben Sie bei AMI-ID Ihre benutzerdefinierte AMI-ID ein.

  6. Wählen Sie unten auf der Seite die Option Apply (Anwenden) aus, um die Änderungen zu speichern.

Wenn Sie eine neue Umgebung mit dem benutzerdefinierten AMI erstellen, sollten Sie dieselbe Plattformversion verwenden, die Sie als Grundlage für das Erstellen des AMI verwendet haben.

Verwaltung einer Umgebung mit einem benutzerdefinierten AMI

Plattformaktualisierungen

Bei Verwendung eines benutzerdefinierten AMI verwendet Elastic Beanstalk weiterhin dasselbe benutzerdefinierte AMI in einer Umgebung, wenn die Plattformversion aktualisiert wird, unabhängig davon, ob das Update manuell oder über verwaltete Plattformupdates angewendet wird. Die Umgebung wird nicht zurückgesetzt, um das Standard-AMI der neuen Plattformversion zu verwenden.

Wir empfehlen, ein neues benutzerdefiniertes AMI zu erstellen, das auf dem Standard-AMI der neuen Plattformversion basiert. Dadurch werden die in der neuen Plattformversion verfügbaren Patches angewendet und außerdem werden Bereitstellungsfehler aufgrund inkompatibler Paket- oder Bibliotheksversionen minimiert.

Weitere Informationen zum Erstellen eines neuen benutzerdefinierten AMI finden Sie weiter Erstellen eines benutzerdefinierten AMI oben in diesem Thema.

Ein benutzerdefiniertes AMI entfernen

Wenn Sie ein benutzerdefiniertes AMI aus einer Umgebung entfernen und es so zurücksetzen möchten, dass das Standard-AMI für die Plattformversion der Umgebung verwendet wird, verwenden Sie den folgenden CLI-Befehl.

aws elasticbeanstalk update-environment \ --application-name my-application \ --environment-name my-environment \ --region us-east-1 \ --options-to-remove Namespace=aws:autoscaling:launchconfiguration,OptionName=ImageId
Anmerkung

Um eine Unterbrechung Ihres Dienstes zu vermeiden, testen Sie Ihre Anwendung mit einem Standard-AMI, bevor Sie diese Änderung auf Ihre Produktionsumgebung anwenden.

Bereinigen eines benutzerdefinierten AMI

Wenn Sie mit einem benutzerdefinierten AMI fertig sind und dieses nicht mehr benötigen, um Elastic Beanstalk-Umgebungen zu starten, sollten Sie in Betracht ziehen, es zu bereinigen, um die Speicherkosten zu minimieren. Die Bereinigung eines benutzerdefinierten AMI beinhaltet dessen Abmeldung von Amazon EC2 und das Löschen anderer zugehöriger Ressourcen. Weitere Informationen finden Sie unter Abmelden Ihres Linux AMI oder Abmelden Ihres Windows AMI.