Comment puis-je monter un système de fichiers Amazon EFS sur un conteneur Amazon ECS ou sur une tâche exécutée sur Fargate ?
Je souhaite monter un système de fichiers Amazon Elastic File System (Amazon EFS) sur un conteneur ou une tâche Amazon Elastic Container Service (Amazon ECS). Le conteneur ou la tâche Amazon ECS s’exécute sur AWS Fargate.
Résolution
Pour monter un système de fichiers Amazon EFS sur une tâche ou un conteneur Fargate, vous devez d’abord créer une définition de tâche. Puis, vous devez mettre cette définition de tâche à la disposition des conteneurs de votre tâche dans toutes les zones de disponibilité de votre région AWS. Enfin, vos tâches Fargate utilisent Amazon EFS pour monter automatiquement le système de fichiers sur les tâches que vous spécifiez dans votre définition de tâche.
Important : La résolution suivante s’applique à Fargate version 1.4.0 et ultérieure. Ces versions disposent d'un stockage persistant que vous pouvez définir au niveau de la tâche et du conteneur dans Amazon ECS. Les versions 1.3.0 ou antérieures de Fargate ne prennent pas en charge l'utilisation du stockage persistant avec Amazon EFS.
Prérequis
Vous devez disposer des éléments suivants :
Création et configuration d’un système de fichiers Amazon EFS
- Créez un système de fichiers Amazon EFS, puis notez l’ID EFS et l’ID du groupe de sécurité.
Remarque : Votre système de fichiers Amazon EFS, votre cluster Amazon ECS et vos tâches Fargate doivent tous se trouver dans le même VPC. - Modifiez les règles de groupe de sécurité de votre système de fichiers EFS pour autoriser les connexions entrantes. Autorisez les connexions entrantes sur le port 2049 (Network File System ou NFS) à partir du groupe de sécurité associé à votre tâche ou service Fargate.
- Mettez à jour le groupe de sécurité de votre service Amazon ECS pour autoriser les connexions sortantes sur le port 2049 vers le groupe de sécurité de votre système de fichiers Amazon EFS.
Créer une définition de tâche
- Ouvrez la console classique Amazon ECS.
- Dans le volet de navigation, sélectionnez Définitions de tâches, puis Créer une nouvelle définition de tâche.
- Dans la section Sélectionner la compatibilité du type de lancement, sélectionnez FARGATE, puis Étape suivante.
- Dans la section Configurer les définitions de tâches et des conteneurs, saisissez un nom pour votre définition de tâche dans le champ Nom de définition de tâche.
- Dans la section Volumes, sélectionnez Ajouter un volume.
- Dans Nom, saisissez le nom de votre volume.
- Dans Type de volume, saisissez EFS.
- Dans ID du système de fichiers, saisissez l’ID de votre système de fichiers Amazon EFS.
Remarque : Vous pouvez spécifier des options personnalisées pour Répertoire racine, Chiffrement en transit et Autorisation EFS AWS Identity and Access Management (IAM). Vous pouvez également accepter l'option par défaut, où « / » est le répertoire racine. - Sélectionnez Ajouter.
- Dans la section Définition des conteneurs, sélectionnez Ajouter un conteneur.
- Dans la section STOCKAGE ET JOURNALISATION, sous-section Points de montage, sélectionnez le volume que vous avez créé pour le Volume source à l’étape 5.
- Dans Chemin du conteneur, choisissez votre chemin d'accès au conteneur.
- (Facultatif) Dans la section ENVIRONNEMENT, pour Point d’entrée, entrez votre point d’entrée.
- Dans le champ Command, entrez la commande [df ,-h] pour afficher le système de fichiers monté.
Remarque : Vous pouvez utiliser le point d’entrée et la commande pour vérifier que votre système de fichiers Amazon EFS est correctement monté. Par défaut, le conteneur se ferme une fois la commande df -h exécutée avec succès. L'exemple de définition de tâche JSON présenté à l'étape 16 utilise une boucle while infinie pour maintenir la tâche en cours d'exécution. - Sélectionnez Ajouter.
- Entrez vos informations pour les champs restants dans l’assistant de définition des tâches, puis choisissez Créer.
Dans l’exemple suivant, la définition de tâche JSON utilise une boucle infinie pour maintenir la tâche en cours d’exécution. La définition de tâche crée un volume de données nommé efs-test. Le conteneur nginx monte le volume de données hôte sur le chemin 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" }
Remarque : Remplacez fileSystemId, logConfiguration, containerPath et les autres valeurs d’espace réservé par des valeurs correspondant à votre configuration personnalisée. Vérifiez également que votre définition de tâche possède un rôle d’exécution Amazon Resource Name (ARN) pour prendre en charge le pilote de journal awslogs.
Pour monter plusieurs EFS sur différentes destinations (containerPath), vous pouvez définir plusieurs points de montage et volumes dans votre définition de tâche.
Exécuter une tâche Fargate et consulter vos journaux de tâches
- Exécutez une tâche Fargate à l'aide de la définition de tâche que vous avez créée précédemment.
Important : Vous devez utiliser la plateforme Fargate version 1.4.0 pour exécuter votre tâche. - Pour vérifier que votre système de fichiers Amazon EFS est correctement monté sur votre conteneur Fargate, consultez vos journaux de tâches.
La sortie de df-h ressemble à ce qui suit :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
Informations connexes
Sécurité et contrôles d'accès pour les volumes Amazon EFS
Spécifier un système de fichiers Amazon EFS dans une définition de tâche Amazon ECS
Configuration des systèmes de fichiers Amazon EFS pour Amazon ECS à l’aide de la console
- Sujets
- Containers
- Langue
- Français
Vidéos associées


Contenus pertinents
- demandé il y a 3 mois
- demandé il y a un mois
- demandé il y a 2 ans
- Réponse acceptéedemandé il y a un an
AWS OFFICIELA mis à jour il y a 8 mois
AWS OFFICIELA mis à jour il y a 3 ans