Verwenden eines benutzerdefinierten Amazon-Maschinen-Images (AMI) in Ihrer Elastic Beanstalk 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-Maschinen-Images (AMI) in Ihrer Elastic Beanstalk Beanstalk-Umgebung

In diesem Abschnitt wird erklärt, wann die Verwendung einer benutzerdefinierten Lösung in Betracht gezogen werden sollte, AMI und es werden die Verfahren zur Konfiguration und Verwaltung der benutzerdefinierten AMI Lösung in Ihrer Umgebung beschrieben. Wenn Sie eine erstellen AWS Elastic Beanstalk In der Umgebung können Sie ein Amazon Machine Image (AMI) angeben, das anstelle des in Ihrer Plattformversion AMI enthaltenen Standard-Elastic Beanstalk verwendet werden soll. Eine benutzerdefinierte AMI Option kann die Bereitstellungszeiten verkürzen, wenn Instances in Ihrer Umgebung gestartet werden, wenn Sie viel Software installieren müssen, die nicht im Standard enthalten ist. AMIs

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 viel Zeit in Anspruch nehmen. Wenn Sie viele Serverkonfigurationen in Konfigurationsdateien vornehmen, können Sie diese Zeit reduzieren, indem Sie eine benutzerdefinierte Datei erstellenAMI, die bereits die Software und Konfiguration enthält, die Sie benötigen.

Eine benutzerdefinierte AMI Version ermöglicht es Ihnen auch, Änderungen an Komponenten auf niedriger Ebene wie dem Linux-Kernel vorzunehmen, die schwierig zu implementieren sind oder lange dauern, bis sie in Konfigurationsdateien übernommen werden. Um eine benutzerdefinierte zu erstellenAMI, starten Sie eine Elastic Beanstalk-Plattform AMI in AmazonEC2, passen Sie die Software und Konfiguration an Ihre Bedürfnisse an, beenden Sie dann die Instance und speichern Sie eine AMI aus ihr.

Eine benutzerdefinierte erstellen AMI

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

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

    Geben Sie die AWS Region, in der Sie Ihre benutzerdefinierte Version verwenden möchtenAMI, und ersetzen Sie die Plattform ARN und 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 der Standard-Elastic Beanstalk AMI für die Plattformversion, die EC2 Instanzarchitektur und AWS Regionen, die für Ihre Anwendung relevant sind. Wenn Sie AMIs für mehrere Plattformen, Architekturen oder AWS Regionen, wiederholen Sie diesen Vorgang, um die richtige Basis AMI für jede Kombination zu ermitteln.

Anmerkung

Erstellen Sie kein AMI From einer Instance, die in einer Elastic Beanstalk Beanstalk-Umgebung gestartet wurde. Elastic Beanstalk nimmt während der Bereitstellung Änderungen an Instanzen vor, die zu Problemen in den gespeicherten Instanzen führen können. AMI 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 Custom AMI aus einer Community zu erstellenAMI, die 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 startenAMI, das nicht von Elastic Beanstalk verwaltet wird, versucht Elastic Beanstalk, Plattformsoftware (Sprache, Framework, Proxyserver usw.) und zusätzliche Komponenten zu installieren, um Funktionen wie Enhanced Health Reporting zu unterstützen.

Anmerkung

Benutzerdefiniert, die auf Windows Server AMIs basieren, erfordern das Standard-Elastic Beanstalkdescribe-platform-version, von dem es AMI zurückgegeben wurde, wie zuvor in Schritt 1 gezeigt.

Elastic Beanstalk kann zwar eine verwendenAMI, die nicht von Elastic Beanstalk verwaltet wird, aber die Verlängerung der Bereitstellungszeit, die sich aus der Installation fehlender Komponenten durch Elastic Beanstalk ergibt, kann die Vorteile der Erstellung eines benutzerdefinierten Systems von vornherein verringern oder ganz zunichte machen. AMI 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.

Um eine benutzerdefinierte zu erstellen AMI
  1. Öffnen Sie die EC2 Amazon-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie Launch Instance aus.

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

    Sie können die Liste auch nach einer anderen Community durchsuchenAMI, die Ihren Bedürfnissen entspricht.

    Anmerkung

    Wir empfehlen Ihnen, einen Computer zu wählenAMI, der HVM Virtualisierung verwendet. Diese AMIs geben in ihrer Beschreibung den Virtualisierungstyp: hvm an.

    Weitere Informationen finden Sie unter Virtualisierungstypen im EC2Amazon-Benutzerhandbuch.

  4. Wählen Sie Auswählen, um die auszuwählenAMI.

  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-basierten 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 Versionsnummer des Repositorys entspricht der Jahres- und Monatsversion im AMI Namen. AMIsBasierend auf der Version von Amazon Linux vom März 2015 haben Sie beispielsweise eine Repository-Versionsnummer2015.03. Bei einem Elastic Beanstalk Beanstalk-Image entspricht dies dem Datum, das im Namen des Lösungsstapels für Ihre auf Amazon Linux basierende Plattformversion AMI (vor Amazon Linux 2) angezeigt wird.

    Anmerkung

    Die repo_releasever Einstellung konfiguriert die lock-on-launch Funktion für ein Amazon LinuxAMI. Dies führt dazuAMI, dass beim Start eine feste, spezifische Repository-Version verwendet wird. 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 eine benutzerdefinierte Einstellung AMI mit Elastic Beanstalk nur auf Amazon AMI Linux-Plattformbranches (vor Amazon Linux 2) verwenden.

    Die Einstellung repo_upgrade deaktiviert die automatische Installation von Sicherheitsupdates. Es ist erforderlich, eine benutzerdefinierte Version AMI mit Elastic Beanstalk zu verwenden.

  7. Folgen Sie den Anweisungen des Assistenten, um die Instance zu starten. EC2 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 mit SSH oder eine Connect zur Instanz herRDP.

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

  10. (Windows-Plattformen) Führen Sie den EC2Config Dienst Sysprep aus. Informationen dazu finden Sie EC2Config unter Konfiguration einer Windows-Instanz mithilfe des EC2Config Dienstes. Stellen Sie sicher, dass Sysprep so konfiguriert ist, dass ein zufälliges Kennwort generiert wird, das von der AWS Management Console.

  11. Stoppen Sie die EC2 Instance in der EC2 Amazon-Konsole. Wählen Sie dann im Menü Instance-Aktionen die Option Create Image (EBSAMI) aus.

  12. Um zusätzliche Kosten zu vermeiden AWS Gebühren, beenden Sie die EC2 Instanz.

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

  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 für AMIID 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 der benutzerdefinierten Umgebung erstellenAMI, sollten Sie dieselbe Plattformversion verwenden, die Sie als Grundlage für die Erstellung der verwendet habenAMI.

Verwaltung einer Umgebung mit einer benutzerdefinierten AMI

Plattformaktualisierungen

Wenn Sie eine benutzerdefinierte Version verwendenAMI, verwendet Elastic Beanstalk weiterhin dieselbe benutzerdefinierte Version AMI in einer Umgebung, wenn die Plattformversion aktualisiert wird, unabhängig davon, ob das Update manuell oder über verwaltete Plattform-Updates angewendet wird. Die Umgebung wird nicht zurückgesetzt, um den Bestand AMI der neuen Plattformversion zu verwenden.

Wir empfehlen, dass Sie eine neue benutzerdefinierte Version erstellen, die auf dem Bestand AMI der neuen Plattformversion AMI 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 Objekts AMI finden Sie weiter Eine benutzerdefinierte erstellen AMI oben in diesem Thema.

Einen Benutzerdefiniert entfernen AMI

Wenn Sie ein benutzerdefiniertes Objekt AMI aus einer Umgebung entfernen und es so zurücksetzen möchten, dass es die AMI Standardversion der Plattformversion der Umgebung verwendet, 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 Betriebsunterbrechungen zu vermeiden, testen Sie Ihre Anwendung mit einem Bestand, AMI bevor Sie diese Änderung auf Ihre Produktionsumgebung anwenden.

Säuberung eines Benutzerkontos AMI

Wenn Sie mit einer benutzerdefinierten Version fertig sind AMI und sie nicht mehr benötigen, um Elastic Beanstalk Beanstalk-Umgebungen zu starten, sollten Sie erwägen, sie zu bereinigen, um die Speicherkosten zu minimieren. Um einen Zoll zu bereinigen, AMI müssen Sie ihn bei Amazon abmelden EC2 und andere zugehörige Ressourcen löschen. Einzelheiten finden Sie unter Deregistrieren Ihres Linux AMI oder Deregistrieren Ihres Windows. AMI