New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
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.
Lösung
Um ein Amazon EFS-Dateisystem auf einer Fargate-Aufgabe oder einem Fargate-Container zu mounten, musst du zunächst eine Aufgabendefinition erstellen. Stelle als nächstes diese Aufgabendefinition für die Container in deiner Aufgabe in allen Availability Zones in deiner AWS-Region zur Verfügung. Schließlich verwenden deine Fargate-Aufgaben Amazon EFS, um das Dateisystem automatisch für die Aufgaben zu mounten, die du in deiner Aufgabendefinition angibst.
Wichtig: Die folgende Auflösung gilt für die Fargate-Version 1.4.0 und höher. Diese Versionen verfügen über persistenten Speicher, den du auf Aufgaben- und Containerebene in Amazon ECS definieren kannst. Die Fargate-Versionen 1.3.0 oder früher unterstützen die Verwendung von persistentem Speicher mit Amazon EFS nicht.
Voraussetzungen
Du musst über Folgendes verfügen:
Erstelle und konfiguriere ein Amazon EFS-Dateisystem
- Erstelle ein Amazon EFS-Dateisystem und notiere dir dann die EFS-ID und die Sicherheitsgruppen-ID.
Hinweis: Dein Amazon EFS-Dateisystem, dein Amazon ECS-Cluster und deine Fargate-Aufgaben müssen sich alle in derselben VPC befinden. - Bearbeite die Sicherheitsgruppenregeln deines EFS-Dateisystems, um diese Verbindungen zuzulassen. Du musst Verbindungen auf Port 2049 (Network File System, oder NFS) von der Sicherheitsgruppe erlauben, die deiner Fargate-Aufgabe oder deinem Fargate-Service zugeordnet ist.
- Aktualisiere die Sicherheitsgruppe deines Amazon ECS-Service, um ausgehende Verbindungen auf Port 2049 zur Sicherheitsgruppe deines Amazon EFS-Dateisystems zuzulassen.
Erstelle eine Aufgabendefinition
- Öffne die Amazon ECS Classic-Konsole.
- Wähle im Navigationsbereich Aufgabendefinitionen und dann Neue Aufgabendefinition erstellen aus.
- Wähle im Abschnitt Starttyp-Kompatibilität auswählen die Option FARGATE und anschließend Nächster Schritt aus.
- Gib im Abschnitt Konfigurieren von Aufgaben- und Containerdefinitionen unter Name der Aufgabendefinition einen Namen für deine Aufgabendefinition ein.
- Wähle im Abschnitt Volumes die Option Volume hinzufügen aus.
- Gib unter Name einen Namen für dein Volume ein.
- Gib als Volume-Typ EFS ein.
- Gib als Dateisystem-ID die ID für dein Amazon EFS-Dateisystem ein.
Hinweis: Du kannst benutzerdefinierte Optionen für das Stammverzeichnis, Verschlüsselung von Daten während der Übertragung und die EFS AWS Identity and Access Management (IAM)-Autorisierung festlegen. Alternativ kannst du die Standardoption akzeptieren, bei der „/“ das Stammverzeichnis ist. - Wähle Hinzufügen aus.
- Wähle im Abschnitt Container-Definition die Option Container hinzufügen aus.
- Wähle im Abschnitt SPEICHERUNG UND PROTOKOLLIERUNG im Unterabschnitt Mount-Punkte das Volume aus, das du in Schritt 5 für Quellvolume erstellt hast.
- Wähle für den Container-Pfad deinen Container-Pfad aus.
- (Optional) Gib im Abschnitt UMGEBUNG für Einstiegspunkt deinen Einstiegspunkt ein.
- Gib als Befehl den Befehl [df ,-h] ein, um das gemountete Dateisystem anzuzeigen.
Hinweis: Du kannst den Einstiegspunkt und den Befehl verwenden, um zu testen, ob dein Amazon EFS-Dateisystem erfolgreich gemountet wurde. Standardmäßig wird der Container beendet, nachdem der Befehl df -h erfolgreich ausgeführt wurde. Das Beispiel für eine JSON-Aufgabendefinition in Schritt 16 verwendet eine unendliche While-Schleife, um die Aufgabe am Laufen zu halten. - Wähle Hinzufügen aus.
- Gib deine Informationen für die verbleibenden Felder im Assistenten für Aufgabendefinitionen ein, und wähle 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: Ersetze fileSystemId, logConfiguration, containerPath und andere Platzhalterwerte durch Werte für deine benutzerdefinierte Konfiguration. Stelle außerdem sicher, dass deine Aufgabendefinition einen Amazon-Ressourcenname (ARN) als Ausführungsrolle hat, um den awslogs-Protokolltreiber zu unterstützen.
Um mehrere EFS auf verschiedenen Zielen (containerPath) zu mounten, kannst du mehrere MountPoints und Volumes in deiner Aufgabendefinition definieren.
Führe eine Fargate-Aufgabe aus und überprüfe deine Aufgabenprotokolle
- Führe eine Fargate-Aufgabe mit der Aufgabendefinition aus, die du zuvor erstellt hast.
Wichtig: Du musst die Fargate-Plattform Version 1.4.0 verwenden, um deine Aufgabe auszuführen. - Um zu überprüfen, ob dein Amazon EFS-Dateisystem erfolgreich in deinen Fargate-Container gemountet wurde, überprüfe deine 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
Sicherheits- und Zugriffskontrollen für Amazon EFS-Volumes
Ein Amazon EFS-Dateisystem in einer Amazon ECS-Aufgabendefinition angeben
Konfiguration von Amazon EFS-Dateisystemen für Amazon ECS mithilfe der Konsole
Ähnliche Videos


Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 8 Monaten
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 4 Jahren