View a markdown version of this page

Migration von einem Amazon Linux 2 zu einem Amazon Linux 2023 Amazon AMI ECS-optimized - Amazon Elastic Container Service

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.

Migration von einem Amazon Linux 2 zu einem Amazon Linux 2023 Amazon AMI ECS-optimized

Nach Amazon Linux beendet Amazon ECS die Standardunterstützung für Amazon Linux 2 Amazon ECS-optimized AMIs mit Wirkung zum 30. Juni 2026. Nach diesem Datum wird die Amazon ECS-Agentenversion gepinnt und neue Amazon Linux ECS-optimized 2-Amazon-AMIs werden nur veröffentlicht, wenn das Amazon Linux 2-Quell-AMI aktualisiert wird. Complete End of Life (EOL) tritt am 30. Juni 2026 ein. Danach werden keine Amazon ECS-optimized Amazon Linux 2-AMIs mehr veröffentlicht, auch wenn das Quell-AMI aktualisiert wird.

Amazon Linux 2023 bietet einen standardmäßig sicheren Ansatz mit vorkonfigurierten Sicherheitsrichtlinien, SELinux im permissiven Modus, standardmäßig aktiviertem IMDSv2-only Modus, optimierten Startzeiten und verbesserter Paketverwaltung für mehr Sicherheit und Leistung.

Zwischen den ECS-optimized Amazon-AMIs von Amazon Linux 2 und Amazon Linux 2023 besteht ein hohes Maß an Kompatibilität, und die meisten Kunden werden bei ihren Workloads zwischen den beiden Betriebssystemen nur minimale bis gar keine Änderungen feststellen.

Weitere Informationen finden Sie unter Vergleich von Amazon Linux 2 und Amazon Linux 2023 im Benutzerhandbuch für Amazon Linux 2023 und den häufig gestellten Fragen zu AL2023.

Erwägungen zur Kompatibilität

Paketverwaltung und Betriebssystem-Updates

Im Gegensatz zu früheren Versionen von Amazon Linux sind Amazon ECS-optimized Amazon Linux 2023-AMIs an eine bestimmte Version des Amazon Linux-Repositorys gebunden. Dies schützt Benutzer vor dem versehentlichen Aktualisieren von Paketen, das zu unerwünschten oder schwerwiegenden Änderungen führen könnten. Weitere Informationen finden Sie unter Verwaltung von Repositorys und Betriebssystem-Updates in Amazon Linux 2023 im Benutzerhandbuch für Amazon Linux 2023.

Linux-Kernel-Versionen

Amazon-Linux-2-AMIs basieren auf den Linux-Kerneln 4.14 und 5.10, während Amazon Linux 2023 die Linux-Kernel 6.1 und 6.12 verwendet. Weitere Informationen finden Sie unter Vergleich von Amazon Linux 2 und Amazon Linux 2023 im Benutzerhandbuch für Amazon Linux 2023.

Änderungen der Paketverfügbarkeit

Im Folgenden finden Sie wichtige Paketänderungen in Amazon Linux 2023:

  • Einige Quell-Binärpakete in Amazon Linux 2 sind in Amazon Linux 2023 nicht mehr verfügbar Weitere Informationen finden Sie unter Aus Amazon Linux 2023 entfernte Pakete in den Versionshinweisen zu Amazon Linux 2023.

  • Änderungen in der Art und Weise, wie Amazon Linux verschiedene Versionen von Paketen unterstützt. Das in Amazon Linux 2 verwendete amazon-linux-extras-System ist in Amazon Linux 2023 nicht vorhanden. Alle Pakete sind einfach im „Core“-Repository verfügbar.

  • Extra-Pakete für Enterprise Linux (EPEL) werden in Amazon Linux 2023 nicht unterstützt Weitere Informationen finden Sie unter EPEL-Kompatibilität in Amazon Linux 2023 im Benutzerhandbuch für Amazon Linux 2023.

  • 32-bit-Anwendungen werden in Amazon Linux 2023 nicht unterstützt Weitere Informationen finden Sie unter Veraltete Features von Amazon Linux 2 im Benutzerhandbuch für Amazon Linux 2023.

Änderungen an Kontrollgruppen (cgroups)

Eine Kontrollgruppe (cgroup) ist ein Linux-Kernel-Feature zur hierarchischen Organisation von Prozessen und zur Verteilung von entsprechenden Systemressourcen. Kontrollgruppen werden häufig zur Implementierung einer Container-Laufzeit und von systemd verwendet.

Amazon Linux 2023 verwendet standardmäßig cgroupv2, während Amazon Linux 2 cgroupv1 verwendet. Der Amazon-ECS-Agent, Docker und containerd unterstützen alle sowohl cgroupv1 als auch cgroupv2. Weitere Informationen zu cgroupv2 finden Sie unter Control Groups v2 in Amazon Linux 2023 im Benutzerhandbuch für Amazon Linux 2023.

Berichterstattung zur Speichernutzung

cgroupv2 ändert die Art und Weise, wie die Speichernutzung von Containern berechnet wird. In cgroupv1 (Amazon Linux 2) schließt die von der Container-Laufzeit gemeldete Container-Speichernutzung in der Regel den Seiten-Cache aus. In cgroupv2 (Amazon Linux 2023) ist der Seiten-Cache in der gemeldeten Speichernutzung enthalten. Derselbe Workload kann unter Amazon Linux 2023 im Vergleich zu Amazon Linux 2 eine höhere Speicherauslastung melden, auch wenn sich der tatsächliche Speicherverbrauch der Anwendung nicht geändert hat.

Wir empfehlen, die Speichernutzung auf Amazon Linux 2023-Instances vor der Migration von Produktionsworkloads zu vergleichen und die Speicherlimits für Aufgaben und Container bei Bedarf anzupassen. Sie können Container Insights verwenden, um die Speicherauslastung zwischen Amazon Linux 2 und Amazon Linux 2023 zu vergleichen.

Sichtbarkeit des Speicherlimits für Aufgaben

Wenn Sie Speicher auf Aufgabenebene festlegen, ohne ein Speicherlimit auf Containerebene festzulegen, wendet Amazon ECS das Limit auf die Cgroup der Aufgabe an. Dies dient als effektives Speicherlimit für alle Container, die zu der Aufgabe gehören. Auf cgroupv1 (Amazon Linux 2) konnten untergeordnete Cgroups das effektive Speicherlimit auf ihrer eigenen Ebene lesen. Sie mussten die Cgroup-Hierarchie nicht durchqueren. Auf cgroupv2 (Amazon Linux 2023) ist das effektive Limit für den Container nicht sichtbar. Darüber hinaus führt Docker Container standardmäßig in einem privaten Cgroup-Namespace aus, wodurch verhindert wird, dass sie die Cgroup-Hierarchie durchqueren, um das Limit des übergeordneten Elements zu ermitteln.

Jeder Prozess innerhalb des Containers, der Cgroup-Speicherlimits liest, um den verfügbaren Speicher zu ermitteln, sieht den vollen Host-Speicher und nicht das Limit auf Taskebene. Es ist beispielsweise bekannt, dass die Java Virtual Machine (JVM) von diesem Problem betroffen ist. Sie verwendet Cgroup-Limits, um die Größe des Heaps automatisch zu ändern. Wenn es das wahre Limit nicht erkennen kann, weist es zu viel Speicher zu, was das Risiko von Out-of-Memory-Abbrüchen (OOM) erhöht. Andere Laufzeiten oder Frameworks, die Cgroup-Grenzwerte für Ressourcenentscheidungen auslesen, können in ähnlicher Weise betroffen sein.

Dies ist der Fall, wenn in der Aufgabendefinition Speicher auf Aufgabenebene, aber nicht auf Containerebene festgelegt memory ist.

Wählen Sie eine der folgenden Behelfslösungen, um dieses Problem zu beheben:

Legen Sie Speicherlimits auf Containerebene fest (empfohlen)

Legen Sie den memory Parameter in Ihrer Aufgabendefinition explizit auf Containerebene fest, sodass er dem Speicherwert auf Aufgabenebene entspricht. Dieser Ansatz ist sicher, zuverlässig und erfordert keine Änderungen an der Infrastruktur.

Aktivieren Sie die Weitergabe von Arbeitsspeicherlimits für Aufgaben auf Agentenebene

Setzen Sie die ECS_PROPAGATE_TASK_MEMORY_LIMIT_CGROUPV2 Umgebungsvariable true auf dem Amazon ECS-Agenten auf. Wenn diese Option aktiviert ist und cgroupv2 aktiviert ist, setzt der Agent das Speicherlimit jedes Containers automatisch auf den Wert auf Aufgabenebene, sofern für den Container nicht bereits ein explizites Speicherlimit auf Container-Ebene gilt. Dadurch wird das Speicherlimit für Aufgaben innerhalb des Containers sichtbar, ohne dass Änderungen an der Aufgabendefinition erforderlich sind.

Sie können dies in der Amazon ECS-Agent-Konfigurationsdatei (/etc/ecs/ecs.config) auf Ihren Amazon EC2 EC2-Instances festlegen:

ECS_PROPAGATE_TASK_MEMORY_LIMIT_CGROUPV2=true

Für diese Option ist Amazon ECS-Agent Version 1.104.0 oder höher erforderlich. Sie gilt nur für Linux-Instances, die cgroupv2 verwenden. Es wird unter Windows nicht unterstützt.

Änderungen in Instance Metadata Service (IMDS)

Amazon Linux 2023 erfordert standardmäßig Instance Metadata Service Version 2 (IMDSv2). IMDSv2 bietet mehrere Vorteile, die zur Verbesserung der Sicherheitslage beitragen. Das Programm verwendet eine sitzungsorientierte Authentifizierungsmethode, die die Erstellung eines geheimen Tokens in einer einfachen HTTP-PUT-Anfrage zum Starten der Sitzung erfordert. Die Gültigkeitsdauer eines Sitzungs-Tokens kann zwischen 1 Sekunde und 6 Stunden variieren.

Informationen zum Umstieg von IMDSv1 auf IMDSv2 finden Sie unter Umstieg auf die Verwendung von Instance Metadata Service Version 2 im Amazon-EC2-Benutzerhandbuch.

Wenn Sie IMDSv1 verwenden möchten, können Sie dies dennoch tun, indem Sie die Einstellungen mithilfe der Starteigenschaften der Instance-Metadatenoption manuell überschreiben.

Änderungen der Speicherauslagerung

Per-container Speicherauslagerungen werden auf Amazon Linux 2023 und cgroups v2 nicht unterstützt. Weitere Informationen finden Sie unter Verwaltung des Container-Auslagerungsspeicherplatzes in Amazon ECS.

FIPS-Validierungsänderungen

Amazon Linux 2 ist nach FIPS 140-2 zertifiziert und Amazon Linux 2023 ist nach FIPS 140-3 zertifiziert.

Um den FIPS-Modus in Amazon Linux 2023 zu aktivieren, installieren Sie die erforderlichen Pakete auf Ihrer Amazon-EC2-Instance und befolgen Sie die Konfigurationsschritte anhand der Anweisungen unter Aktivieren des FIPS-Modus in Amazon Linux 2023 im Benutzerhandbuch für Amazon Linux 2023.

Beschleunigte Instance-Unterstützung

Die Amazon ECS-optimized Amazon Linux 2023-AMIs unterstützen sowohl Neuron- als auch GPU-beschleunigte Instance-Typen. Weitere Informationen finden Sie unter Amazon ECS-optimized Linux-AMIs.

Benutzerdefinierte AMIs entwickeln

Wir empfehlen zwar, auf offiziell unterstützte und veröffentlichte ECS-optimized Amazon-AMIs für Amazon Linux 2023 umzusteigen, Sie können jedoch weiterhin benutzerdefinierte Amazon Linux ECS-optimized 2-Amazon-AMIs mit den Open-Source-Build-Skripten erstellen, die zum Erstellen der Linux-Varianten des Amazon ECS-optimized AMI verwendet werden. Weitere Informationen finden Sie unter Amazon ECS-optimized Linux AMI-Build-Skript.

Migrationsstrategien

Wir empfehlen, einen Migrationsplan zu erstellen und umzusetzen, der gründliche Anwendungstests beinhaltet. In den folgenden Abschnitten werden verschiedene Migrationsstrategien beschrieben, entsprechend der Art, wie Sie Ihre Amazon-ECS-Infrastruktur verwalten.

Migration mit Amazon-ECS-Kapazitätsanbietern

  1. Erstellen Sie einen neuen Kapazitätsanbieter mit einer neuen Startvorlage. Dies sollte auf eine Auto Scaling Scaling-Gruppe mit einer Startvorlage verweisen, die Ihrer vorhandenen ähnelt, aber anstelle des Amazon Linux 2 Amazon ECS-optimized AMI sollte sie eine der Amazon Linux 2023-Varianten angeben. Fügen Sie diesen neuen Kapazitätsanbieter zu Ihrem bestehenden Amazon-ECS-Cluster hinzu.

  2. Aktualisieren Sie die standardmäßige Kapazitätsanbieter-Strategie Ihres Clusters, sodass sie sowohl den bestehenden Kapazitätsanbieter von Amazon Linux 2 als auch den neuen Kapazitätsanbieter von Amazon Linux 2023 einbezieht. Beginnen Sie mit einer höheren Gewichtung für den Kapazitätsanbieter von Amazon Linux 2 und einer geringeren Gewichtung beim Kapazitätsanbieter von Amazon Linux 2023 (z. B. Amazon Linux 2: Gewicht 80, Amazon Linux 2023: Gewicht 20). Dies veranlasst Amazon ECS, mit der Bereitstellung von Amazon-Linux-2023-Instances zu beginnen, sobald neue Aufgaben geplant sind. Stellen Sie sicher, dass die Instances korrekt registriert wurden und dass die Aufgaben auf den neuen Instances erfolgreich ausgeführt werden können.

  3. Passen Sie die Gewichtung der Kapazitätsanbieter in der Standardstrategie Ihres Clusters schrittweise an, indem Sie die Gewichtung für den Amazon Linux 2023-Anbieter erhöhen und gleichzeitig die Gewichtung des Amazon Linux 2-Anbieters im Laufe der Zeit verringern (z. B. 60/40, dann 40/60, dann 20/80). Sie können auch die Strategien einzelner Service-Kapazitätsanbieter aktualisieren, um Amazon-Linux-2023-Instances zu priorisieren. Überwachen Sie die Aufgabenverteilung, um sicherzustellen, dass sie erfolgreich auf Amazon-Linux-2023-Instances ausgeführt werden.

  4. Sie können optional Container-Instances von Amazon Linux 2 ausgleichen, um die Aufgabenmigration zu beschleunigen. Wenn Sie über ausreichend Ersatzkapazität für Amazon Linux 2023 verfügen, können Sie Ihre Amazon Linux 2-Container-Instances manuell über die Amazon ECS-Konsole entladen oder AWS CLI um den Übergang Ihrer Aufgaben von Amazon Linux 2 zu Amazon Linux 2023 zu beschleunigen. Nachdem die Migration abgeschlossen ist, entfernen Sie den Kapazitätsanbieter von Amazon Linux 2 aus Ihrem Cluster und löschen Sie die zugehörige Auto-Scaling-Gruppe.

Migrieren mit einer Amazon-EC2-Auto-Scaling-Gruppe

  1. Erstellen Sie eine neue Amazon-EC2-Auto-Scaling-Gruppe mit einer neuen Startvorlage. Dies sollte Ihrer vorhandenen Startvorlage ähneln, aber anstelle des Amazon Linux 2 Amazon ECS-optimized AMI sollte es eine der Amazon Linux 2023-Varianten angeben. Diese neue Auto-Scaling-Gruppe kann Instances in Ihrem vorhandenen Cluster starten.

  2. Skalieren Sie die Auto Scaling-Gruppe hoch, sodass Amazon-Linux-2023-Instances damit beginnen, sich in Ihrem Cluster zu registrieren. Stellen Sie sicher, dass die Instances korrekt registriert wurden und dass die Aufgaben auf den neuen Instances erfolgreich ausgeführt werden können.

  3. Nachdem bestätigt wurde, dass Ihre Aufgaben unter Amazon Linux 2023 funktionieren, skalieren Sie die Auto-Scaling-Gruppe von Amazon Linux 2023 hoch und skalieren Sie gleichzeitig die Auto-Scaling-Gruppe von Amazon Linux 2 schrittweise herunter, bis Sie alle Instances von Amazon Linux 2 vollständig ersetzt haben.

  4. Wenn Sie über ausreichend Ersatzkapazität für Amazon Linux 2023 verfügen, sollten Sie die Container-Instances möglicherweise explizit ausgleichen, um den Übergang Ihrer Aufgaben von Amazon Linux 2 zu Amazon Linux 2023 zu beschleunigen. Weitere Informationen finden Sie unter Entlastung von Amazon-ECS-Container-Instances.

Migration mit manuell verwalteten Instances

  1. Starten Sie neue Amazon EC2 EC2-Instances manuell (oder passen Sie die Skripts an, die starten), indem Sie das ECS-optimized Amazon Amazon Linux 2023 AMI anstelle von Amazon Linux 2 verwenden. Stellen Sie sicher, dass diese Instances dieselben Sicherheitsgruppen, Subnetze, IAM-Rollen und Cluster-Konfigurationen verwenden wie Ihre bestehenden Amazon-Linux-2-Instances. Die Instances sollten sich beim Start automatisch in Ihrem vorhandenen Amazon-ECS-Cluster registrieren.

  2. Stellen Sie sicher, dass die neuen Amazon-Linux-2023-Instances erfolgreich in Ihrem Amazon-ECS-Cluster registriert wurden und sich in einem ACTIVE-Status befinden. Testen Sie, ob Aufgaben auf diesen neuen Instances geplant und ordnungsgemäß ausgeführt werden können, indem Sie entweder auf die natürliche Aufgabenverteilung warten oder stopping/starting einige Aufgaben manuell ausführen, um eine Neuplanung auszulösen.

  3. Ersetzen Sie Ihre Amazon-Linux-2-Instances schrittweise, indem Sie nach Bedarf weitere Amazon-Linux-2023-Instances starten und dann die Amazon-Linux-2-Instances nacheinander manuell entlasten und beenden. Sie können Instances über die Amazon-ECS-Konsole ausgleichen, indem Sie die Instance auf den DRAINING-Status setzen. Dadurch werden der Instance keine neuen Aufgaben mehr zugewiesen und bestehende Aufgaben können abgeschlossen oder an anderer Stelle verschoben werden.