Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
Wie erstelle und verwende ich benutzerdefinierte AMIs in Amazon ECS?
Ich möchte ein auf CentOS, SUSE Enterprise Server oder RHEL basierendes benutzerdefiniertes Amazon Machine Image (AMI) in einem Amazon Elastic Container Service (Amazon ECS)-Cluster einrichten und verwenden.
Kurze Beschreibung
Gehen Sie wie folgt vor, um ein benutzerdefiniertes AMI für Amazon ECS zu erstellen:
- Erstellen Sie ein AMI.
- Installieren Sie Docker für Ihr Betriebssystem.
- Installiere das ecs-init-Paket.
- (Optional) Installiere den AWS-Systems-Manager-Agent (SSM-Agent) für ECS.
- Aktiviere den ECS-Service und bestätige dann, dass der ECS-Container-Agent aktiv ist.
- Bereinige das Bild für die zukünftige Verwendung.
- Erstelle ein neues Amazon Elastic Compute Cloud (Amazon EC2)-Image.
- Starte eine Amazon ECS Linux-Container-Instance und füge dann die erforderlichen UserData hinzu, wenn du die Instance ausführst, um die Datei ecs.config zu konfigurieren.
Lösung
Ein AMI erstellen
Es gibt drei Möglichkeiten, ein AMI zu erstellen:
- Um ein angepasstes AMI auf der Grundlage des für Amazon Linux ECS optimierten AMI zu erstellen, verwende die ECS-optimierten AMI Build Recipes mit HashiCorp Packer, um das Image zu erstellen.
- Verwende EC2 Image Builder, um dich bei der Erstellung und Verwaltung der Images zu unterstützen.
- Starte eine Amazon EC2-Instance und konfiguriere die Instance dann so, dass sie die für ECS erforderlichen Komponenten enthält. Informationen zur Erstellung eines AMI mit integrierten ECS-Anforderungen und auf dem AMI, auf dem der ECS-AMI basieren soll, findest du unter Wie starte ich eine EC2-Instance von einem benutzerdefinierten Amazon Machine Image (AMI) aus? Nachdem die Instance ausgeführt wurde, findest du weitere Informationen unter Herstellen einer Verbindung zu der Linux-Instance mithilfe eines SSH-Clients.
Docker installieren
Informationen zur Installation von Docker für das Betriebssystem und die Systemarchitektur findest du in den Anweisungen zur Installation der Docker Engine auf der Docker-Website.
Das ecs-int-Paket installieren
1. Führe den folgenden Befehl aus, um das Amazon ecs-int-Paket für CentOS, SUSE Enterprise Server oder RHEL herunterzuladen:
Hinweis: Ersetze Region durch die AWS-Region, in der du die Instance gestartet hast.
Für x86_64 CentOS 7 / 8, SUSE Enterprise Server 15 oder RHEL 7:
$ curl -o amazon-ecs-init.rpm https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.x86_64.rpm
Für aarch64 CentOS 7/8 oder RHEL 7:
$ curl -o amazon-ecs-init.rpm https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.aarch64.rpm
2. Führe einen der folgenden Befehle aus, um das RPM-Paket, das du für die Instance heruntergeladen hast, zu installieren:
Für RPM-Pakete für CentOS 7/8 und RHEL 7:
$ sudo yum install -y ./amazon-ecs-init.rpm
Für RPM-Pakete für SUSE Enterprise Server 15:
$ sudo zypper install -y --allow-unsigned-rpm ./amazon-ecs-init.rpm
(Optional) Den SSM-Agent für ECS installieren
Um die Amazon ECS Exec für die Debugging-Funktion verwenden zu können, musst du den SSM-Agent für Amazon ECS installieren.
1. Führe den folgenden Befehl aus, um die SSM-Agent-Binärdateien herunterzuladen und zu extrahieren:
$ mkdir -p ssm-binaries && cd ssm-binaries
2. Führe einen der folgenden Befehle für CentOS, SUSE Enterprise Server oder RHEL aus:
Hinweis: Ersetze Region durch die Region, in der du die Instance gestartet hast.
Für x86_64 CentOS 7 / 8, SUSE Enterprise Server 15 oder RHEL 7:
$ curl -o amazon-ssm-agent.tar.gz https://amazon-ssm-<region>.s3.<region>.amazonaws.com/latest/linux_amd64/amazon-ssm-agent-binaries.tar.gz
Für aarch64 CentOS 7 / 8 oder RHEL 7:
$ curl -o amazon-ssm-agent.tar.gz https://amazon-ssm-<region>.s3.<region>.amazonaws.com/latest/linux_arm64/amazon-ssm-agent-binaries.tar.gz
3. Führe den folgenden Befehl aus, um die Agentendateien zu entpacken:
$ tar -xzvf amazon-ssm-agent.tar.gz
4. Hole dir die SSM-Agent-Version und erstelle dann ein Verzeichnis unter /var/lib/ecs/deps/execute-command/bin/. Benenne das Verzeichnis mit der SSM-Agent-Version. Im Folgenden findest du einen Beispielbefehl zum Abrufen der SSM-Agent-Version:
$ ./amazon-ssm-agent -version SSM Agent version: 3.2.286.0 $ export SSM_VERSION=3.2.286.0 $ sudo mkdir -p /var/lib/ecs/deps/execute-command/bin/$SSM_VERSION
5. Führe die folgenden Befehle aus, um die SSM-Agent-Binärdateien in das Verzeichnis zu kopieren:
$ sudo cp amazon-ssm-agent /var/lib/ecs/deps/execute-command/bin/$SSM_VERSION/amazon-ssm-agent $ sudo cp ssm-agent-worker /var/lib/ecs/deps/execute-command/bin/$SSM_VERSION/ssm-agent-worker $ sudo cp ssm-session-worker /var/lib/ecs/deps/execute-command/bin/$SSM_VERSION/ssm-session-worker
6. Führe den folgenden Befehl aus, um die TLS-Zertifikate für den SSM-Agent zu kopieren:
$ sudo mkdir -p /var/lib/ecs/deps/execute-command/certs $ sudo cp /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem /var/lib/ecs/deps/execute-command/certs/tls-ca-bundle.pem $ sudo chmod 400 /var/lib/ecs/deps/execute-command/certs/tls-ca-bundle.pem
Den ECS-Service aktivieren und bestätigen, dass der ECS-Container-Agent aktiv ist
1. Führe den folgenden Befehl aus, um den ECS-Service zu aktivieren:
$ sudo systemctl enable --now ecs
2. Führe den folgenden Befehl aus, um zu bestätigen, dass der ECS-Service aktiviert und der ECS-Container-Agent aktiv ist:
$ sudo systemctl status ecs $ sudo docker ps
Die Ausgaben sehen in etwa wie folgt aus:
ecs.service - Amazon Elastic Container Service - container agent Loaded: loaded (/lib/systemd/system/ecs.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2022-02-22 08:39:02 UTC; 11min ago (...)
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 108cfb8a10d2 amazon/amazon-ecs-agent:latest "/agent" 9 minutes ago Up 9 minutes (healthy) ecs-agent
Bereinigen Sie das Bild
1. Um das Bild für die zukünftige Verwendung zu bereinigen, führe den folgenden Befehl aus, um das ecs-init-Paket- und die Docker-Prozesse zu beenden, indem du die folgenden Befehle ausführst:
$ sudo systemctl stop ecs $ sudo systemctl stop docker
2.Entfernen Sie alle Protokolldateien aus der aktuellen Instanz, um zu verhindern, dass sie beim Speichern des Bildes beibehalten werden. Verwenden Sie das Beispielskript unter Bewährte Methoden zur Sicherheit für EC2 Image Builder, um die verschiedenen Dateien aus der Instance zu bereinigen.
3.Führen Sie die folgenden Befehle aus, um die ECS-spezifischen Daten zu bereinigen:
$ sudo rm -rf /var/log/ecs/* $ sudo rm /var/lib/ecs/data/agent.db
Neues Amazon EC2-Image erstellen
Führe den folgenden Befehl aus, um das konfigurierte Image aus dem vorherigen Schritt aus, um ein neues Image zu erstellen, indem du den folgenden Befehl ausführst:
$ aws ec2 create-image --description "My ECS Image" --instance-id i-012345678910 --name Custom-ECS-Image --reboot
Die Ausgabe sieht etwa wie folgt aus:
{ "ImageId": "ami-01234567890101" }
Eine Instance starten
Informationen zum Starten einer Instance findest du unter Starten einer Amazon ECS Linux-Container-Instance.
Führe mit dem neuen AMI den folgenden Befehl aus, um zu bestätigen, dass die UserData den Befehl zum Schreiben in die ecs.config-Datei enthält:
**Hinweis:**Ersetzen Sie your\ _cluster_name durch den Namen Ihres Clusters.
#!/bin/bash echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config
- Themen
- Containers
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 2 Jahren
AWS OFFICIALAktualisiert vor 4 Jahren
AWS OFFICIALAktualisiert vor einem Jahr