Verwenden eines benutzerdefinierten Amazon Machine Image (AMI) - 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 Image (AMI)

Wenn Sie eine AWS Elastic Beanstalk-Umgebung erstellen, können Sie ein Amazon Machine Image (AMI) anstelle des Standard-Elastic Beanstalk-AMI angeben, die im Lösungs-Stack 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 eignet sich hervorragend für die schnelle und konsistente Konfiguration und Anpassung Ihrer Umgebung. Das Anwenden von Konfigurationen kann jedoch während der Umgebungserstellung und Updates 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

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/Tomcat 8.5 with Java 8 running on 64bit Amazon Linux/3.1.6" \ --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 2019/2.6.4" --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 vorhandene Elastic Beanstalk-AMI für die Plattformversion, EC2-Instance-Architektur und 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 korrekte Basis-AMI für eine beliebige Kombination zu identifizieren.

Hinweise
  • 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.

  • Wir empfehlen Ihnen, immer die neueste Plattformversion zu verwenden. Wenn Sie auf eine neue Plattformversion aktualisieren, empfehlen wir Ihnen außerdem, Ihr benutzerdefiniertes AMI auf das AMI der neuen Plattformversion festzulegen. Dies minimiert Bereitstellungsfehler aufgrund inkompatibler Paket- oder Bibliotheksversionen.

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. Wählen Sie Community AMIs (Community-AMIs) aus.

  4. 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.

    AMI mit einem auf der EC2-Konsole aufgelisteten HVM-Virtualisierungstyp

    Weitere Informationen zu Instance-Virtualisierungstypen finden Sie unter Linux AMI-Virtualisierungstypen im Amazon EC2-Benutzerhandbuch für Linux-Instances oder unter Windows AMI-Virtualisierungstypen im Amazon EC2-Benutzerhandbuch für Windows-Instances.

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

  6. Wählen Sie einen Instance-Typen und danach Next: Configure Instance Details (Weiter: Instance-Details konfigurieren) aus.

  7. (Linux-Plattformen) Erweitern Sie den Abschnitt Advanced Details (Fortgeschrittene Details) und fügen Sie den folgenden Text in das Feld User Data (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 unter Amazon Linux 2 nicht unterstützt . Geben Sie sie 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.

  8. 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.

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

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

  11. (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 Management Console abgerufen werden kann.

  12. 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.

  13. Um zusätzliche AWS-Gebühren zu vermeiden, beenden Sie die EC2-Instance.

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 Regions (Regionen) Ihre AWS-Region aus.

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

    Anmerkung

    Wenn Sie viele Umgebungen haben, verwenden Sie die Suchleiste, um die Umgebungsliste zu filtern.

  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. Wenn Sie später eine Plattformaktualisierung für eine Umgebung mit einem benutzerdefinierten AMI anwenden, versucht Elastic Beanstalk die Bibliotheks- und Konfigurationsaktualisierungen während des Bootstrapping-Prozesses anzuwenden.

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.