Wie mounte ich ein Amazon EFS-Dateisystem auf einem Amazon ECS-Container oder einer Amazon ECS-Aufgabe, die auf Fargate ausgeführt wird?
Ich möchte ein Amazon Elastic File System (Amazon EFS)-Dateisystem auf einem Amazon Elastic Container Service (Amazon ECS)-Container oder einer ECS-Aufgabe mounten. Der Amazon ECS-Container oder die Amazon ECS-Aufgabe wird auf AWS Fargate ausgeführt.
Kurzbeschreibung
Um ein Amazon EFS-Dateisystem auf einer Fargate-Aufgabe oder einem Fargate-Container zu mounten, müssen Sie zunächst eine Aufgabendefinition erstellen. Stellen Sie diese Aufgabendefinition dann für die Container in Ihrer Aufgabe in allen Availability Zones in Ihrer AWS-Region zur Verfügung. Schließlich verwenden Ihre Fargate-Aufgaben Amazon EFS, um das Dateisystem automatisch für die Aufgaben zu mounten, die Sie in Ihrer Aufgabendefinition angeben.
Wichtig: Die folgende Auflösung gilt für die Fargate-Plattformversion 1.4.0 und höher. Diese Versionen verfügen über persistenten Speicher, den Sie auf Aufgaben- und Containerebene in Amazon ECS definieren können. Die Fargate-Plattformversionen 1.3.0 oder früher unterstützen keine persistenten Speicher, die Amazon EFS verwenden.
Lösung
Voraussetzungen
Sie müssen über Folgendes verfügen:
Erstellen und konfigurieren Sie ein Amazon EFS-Dateisystem
- Erstellen Sie ein Amazon EFS-Dateisystem und notieren Sie sich dann die EFS-ID und die Sicherheitsgruppen-ID.
Hinweis: Ihr Amazon EFS-Dateisystem, Ihr Amazon ECS-Cluster und Ihre Fargate-Aufgaben müssen sich alle in derselben VPC befinden. - Erlauben Sie eingehende Verbindungen auf Port 2049 (Network File System oder NFS) von der Sicherheitsgruppe, die Ihrer Fargate-Aufgabe oder Ihrem Fargate-Dienst zugeordnet ist. Um diese Verbindungen zuzulassen, bearbeiten Sie die Sicherheitsgruppenregeln Ihres EFS-Dateisystems.
- Aktualisieren Sie die Sicherheitsgruppe Ihres Amazon ECS-Service, um ausgehende Verbindungen auf Port 2049 zur Sicherheitsgruppe Ihres Amazon EFS-Dateisystems zuzulassen.
Erstellen Sie eine Aufgabendefinition
- Öffnen Sie die Amazon-ECS-Konsole.
- Wählen Sie im Navigationsbereich Aufgabendefinitionen und dann Neue Aufgabendefinition erstellen aus.
- Wählen Sie im Abschnitt Starttyp-Kompatibilität auswählen die Option FARGATE und anschließend Nächster Schritt aus.
- Geben Sie im Abschnitt Konfigurieren von Aufgaben- und Containerdefinitionen unter Name der Aufgabendefinition einen Namen für Ihre Aufgabendefinition ein.
- Wählen Sie im Abschnitt Volumes die Option Volume hinzufügen aus. Geben Sie folgende Informationen ein:
Geben Sie unter Name einen Namen für Ihr Volume ein.
Geben Sie als Volume-Typ EFS ein.
Geben Sie als Dateisystem-ID die ID für Ihr Amazon EFS-Dateisystem ein.
Hinweis: Geben Sie benutzerdefinierte Optionen für das Stammverzeichnis, Verschlüsselung von Daten während der Übertragung und die EFS AWS Identity and Access Management (IAM)-Autorisierung an. Oder akzeptieren Sie die Standardeinstellung, wobei “/“ das Stammverzeichnis ist. - Wählen Sie Hinzufügen aus.
- Wählen Sie im Abschnitt Container-Definition die Option Container hinzufügen aus.
- Wählen Sie im Abschnitt SPEICHER UND PROTOKOLLIERUNG im Unterabschnitt Mountingpunkte das Volume aus, das Sie für Quell-Volume erstellt haben.
- Wählen Sie für den Container-Pfad Ihren Container-Pfad aus.
- (Optional) Geben Sie im Abschnitt UMGEBUNG für Einstiegspunkt Ihren Einstiegspunkt ein.
- Geben Sie als Befehl den Befehl [df ,-h] ein, um das gemountete Dateisystem anzuzeigen.
Hinweis: Sie können den Einstiegspunkt und den Befehl verwenden, um zu testen, ob Ihr Amazon EFS-Dateisystem erfolgreich gemountet wurde. Standardmäßig wird der Container beendet, nachdem der Befehl df -h erfolgreich ausgeführt wurde. - Wählen Sie Hinzufügen aus.
- Geben Sie Ihre Informationen für die verbleibenden Felder im Assistenten für Aufgabendefinitionen ein, und wählen Sie dann Erstellen aus.
Im folgenden Beispiel verwendet die JSON-Aufgabendefinition eine Endlosschleife, um die Aufgabe am Laufen zu halten. Die Aufgabendefinition erstellt ein Datenvolume mit dem Namen efs-test. Der Nginx-Container mountet das Host-Datenvolume im Pfad Any_Container_Path.
{ "family": "sample-fargate-test", "networkMode": "awsvpc", "executionRoleArn": "arn:aws:iam::1234567890:role/ecsTaskExecutionRole", "containerDefinitions": [ { "name": "fargate-app", "image": "nginx", "portMappings": [ { "containerPort": 80, "hostPort": 80, "protocol": "tcp" } ], "essential": true, "entryPoint": [ "sh", "-c" ], "command": [ "df -h && while true; do echo \"RUNNING\"; done" ], "mountPoints": [ { "sourceVolume": "efs-test", "containerPath": "Any_Container_Path" } ], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "AWS_LOG_GROUP_PATH", "awslogs-region": "AWS_REGION", "awslogs-stream-prefix": "AWS_STREAM_PREFIX" } } } ], "volumes": [ { "name": "efs-test", "efsVolumeConfiguration": { "fileSystemId": "fs-123xx4x5" } } ], "requiresCompatibilities": [ "FARGATE" ], "cpu": "256", "memory": "512" }
Hinweis: Ersetzen Sie fileSystemId, logConfiguration, containerPath und andere Platzhalterwerte durch Werte für Ihre benutzerdefinierte Konfiguration. Stellen Sie außerdem sicher, dass Ihre Aufgabendefinition über eine IAM-Rolle Amazon-Ressourcenname (ARN) verfügt, um den awslogs-Protokolltreiber zu unterstützen.
Führen Sie eine Fargate-Aufgabe aus und überprüfen Sie Ihre Aufgabenprotokolle
- Verwenden Sie Ihre Aufgabendefinition, um eine Fargate-Aufgabe auszuführen.
Wichtig: Führen Sie Ihre Aufgabe auf der Fargate-Plattform Version 1.4.0 aus. - Um zu überprüfen, ob Ihr Amazon EFS-Dateisystem erfolgreich in Ihren Fargate-Container gemountet wurde, überprüfen Sie Ihre Aufgabenprotokolle.
Die Ausgabe von df-h sieht in etwa wie folgt aus:2020-10-27 15:15:35Filesystem 1K-blocks Used Available Use% Mounted on 2020-10-27 15:15:35 overlay 30832548 9859324 19383976 34% / 2020-10-27 15:15:35 tmpfs 65536 0 65536 0% /dev 2020-10-27 15:15:35 shm 2018788 0 2018788 0% /dev/shm 2020-10-27 15:15:35 tmpfs 2018788 0 2018788 0% /sys/fs/cgroup 2020-10-27 15:15:35 fs-xxxxxxxx.efs.us-east-1.amazonaws.com:/ 9007199254739968 0 9007199254739968 0% /Any_Container_Path 2020-10-27 15:15:35 /dev/xvdcz 30832548 9859324 19383976 34% /etc/hosts 2020-10-27 15:15:35 tmpfs 2018788 0 2018788 0% /proc/acpi 2020-10-27 15:15:35 tmpfs 2018788 0 2018788 0% /sys/firmware 2020-10-27 15:15:35 tmpfs 2018788 0 2018788 0% /proc/scsi RUNNING
Ähnliche Informationen
Konfiguration von Amazon EFS-Dateisystemen für Amazon ECS mithilfe der Konsole
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 4 Jahren
- AWS OFFICIALAktualisiert vor einem Monat
- AWS OFFICIALAktualisiert vor 7 Monaten