Wie mounte ich ein EFS-Dateisystem auf einem ECS-Container oder einer Aufgabe, die auf EC2 läuft?

Zuletzt aktualisiert: 18.07.2022

Ich möchte Amazon Elastic File System (Amazon EFS) mit Amazon-Elastic-Container-Service-Container (Amazon ECS) oder Aufgaben mit einem Amazon-Elastic-Compute-Cloud-Starttyp (Amazon EC2) verwenden. Wie kann ich vorgehen?

Kurzbeschreibung

Sie können ein EFS-Dateisystem auf einem Task oder Container mounten, der auf einer EC2-Instance ausgeführt wird. Erstellen Sie dazu eine Aufgabendefinition, die die Dateisystem-ID in den Volume-Aufgabendefinitionsparametern bereitstellt. Auf diese Weise kann das EFS-Dateisystem automatisch in die Aufgaben eingebunden werden, die Sie in Ihrer Aufgabendefinition angeben.

Erforderliche Ressourcen:

Auflösung

Netzwerkanforderungen

  • Das EFS-Dateisystem und der ECS-Cluster müssen sich in derselben VPC befinden.
  • Die dem EFS-Dateisystem zugeordneten Sicherheitsgruppen müssen eingehende Verbindungen auf Port 2049 (Network File System oder NFS) von der ECS-Container-Instance und der ECS-Aufgabe zulassen.
  • Sicherheitsgruppen der ECS-Instance oder der ECS-Aufgaben müssen ausgehende Verbindungen auf Port 2049 zur Sicherheitsgruppe des EFS-Dateisystems zulassen.

Erstellen einer Aufgabendefinition

1.    Öffnen Sie die Amazon-ECS-Konsole und wählen Sie Aufgabendefinitionen,Neue Aufgabendefinition erstellen aus.

2.    Wählen Sie EC2 für die Kompatibilität mit dem Starttyp aus und wählen Sie dann Nächster Schritt aus.

3.    Geben Sie im Feld Aufgaben- und Containerdefinitionen konfigurieren einen Namen für Ihre Aufgabendefinition ein.

4.    Wählen Sie im Abschnitt Volume die Option Volume hinzufügen aus.

5.    Geben Sie den Namen des Volumes ein, und wählen Sie dann EFS aus dem Dropdown-Menü Volume-Typen aus.

6.    Wählen Sie für die Dateisystem-ID die ID des Dateisystems aus, das für die ECS-Aufgaben verwendet werden soll.

7.    (Optional) Geben Sie das Stammverzeichnis,Verschlüsselung bei der Übertragung und die EFS IAM-Autorisierung an, falls erforderlich, basierend auf Ihren Anforderungen. Wenn keine Optionen geändert werden, wird das Standard-Stammverzeichnis „/“ verwendet.

8.    Wählen Sie Hinzufügen aus.

9.    Wählen Sie beim Erstellen des Containers unter Containerdefinitionen die Option Container hinzufügen aus, um das zuvor erstellte Volume zu verwenden. Wählen Sie dann unter Speicher und Protokollierung im Unterabschnitt Mount-Punkte das Volume aus, das Sie in Schritt 4 erstellt haben.

10.    Wählen Sie für Containerpfad den Verzeichnispfad innerhalb des Containers für Ihre Anwendung aus, und klicken Sie dann auf Hinzufügen.

11.    Füllen Sie die verbleibenden erforderlichen Felder im Taskdefinitions-Assistenten aus, und wählen Sie dann Erstellen.

Im folgenden Beispiel erstellt die Aufgabendefinition ein Datenvolume mit dem Namen efs-ec2-test. Der nginx-Container mountet das Host-Datenvolume im Pfad /usr/share/nginx/html.

{
  "containerDefinitions": [
    {
      "memory": 128,
      "portMappings": [
        {
          "hostPort": 80,
          "containerPort": 80,
          "protocol": "tcp"
        }
      ],
      "essential": true,
      "mountPoints": [
        {
          "containerPath": "/usr/share/nginx/html",
          "sourceVolume": "efs-ec2-test"
        }
      ],
      "name": "nginx",
      "image": "nginx"
    }
  ],
  "volumes": [
    {
      "name": "efs-ec2-test",
      "efsVolumeConfiguration": {
        "fileSystemId": "fs-1324abcd",
        "transitEncryption": "ENABLED"
      }
    }
  ],
  "family": "efs-test"
}

Hinweis: Ersetzen Sie die Parameter FileSystemId, ContainerPath und andere Aufgabendefinitionsparameter basierend auf den Werten für Ihre benutzerdefinierte Konfiguration.

Im vorherigen Beispiel können Sie eine Beispieldatei index.html im Stammverzeichnis des Dateisystems mit folgendem Inhalt erstellen:

<html>
  <body>
    <h1>You are using an Amazon EFS file system for persistent container storage.</h1>
  </body>
</html>

Eine ECS-Aufgabe ausführen

1.    Führen Sie die ECS-Aufgabe mit der zuvor erstellten Aufgabendefinition aus.

2.    Stellen Sie sicher, dass das EFS-Dateisystem erfolgreich im EC2-Container bereitgestellt wird, indem Sie über die öffentliche IP-Adresse der ECS-Instance auf die Website zugreifen.


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?