Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Pourquoi ne puis-je pas monter mes volumes Amazon EFS sur mes tâches Amazon ECS ?
Lorsque je monte des volumes Amazon Elastic File System (Amazon EFS) sur mes tâches Amazon Elastic Container Service (Amazon ECS), je reçois des erreurs.
Brève description
Des erreurs de configuration dans les paramètres suivants peuvent entraîner des problèmes lorsque vous montez vos volumes Amazon EFS sur vos tâches Amazon ECS :
- Le système de fichiers EFS
- Groupes de sécurité et listes de contrôle d'accès réseau (ACL réseau)
- Paramètres d’Amazon Virtual Private Cloud (Amazon VPC)
- Paramètres inter-VPC lorsque votre volume Amazon EFS se trouve dans un VPC différent de celui de vos tâches
- Politiques et autorisations relatives aux rôles AWS Identity and Access Management (IAM)
Résolution
Déterminer la cause du problème
Utilisez le dossier d’exploitation AWSSupport-TroubleshootECSTaskFailedToStart pour déterminer le problème. Vous devez exécuter le dossier d'exploitation de la même région AWS où sont situées vos ressources de cluster ECS. Utilisez également l'ID de tâche ayant échoué le plus récemment. Si la tâche ayant échoué fait partie du service Amazon ECS, utilisez la dernière tâche ayant échoué dans le service. La tâche ayant échoué doit être visible dans ECS:DescribeTasks pendant l’automatisation. Par défaut, les tâches ECS arrêtées restent visibles pendant 1 heure après être passées à l'état Arrêté.
En fonction des résultats de l'automatisation, utilisez l'une des mesures de dépannage manuel suivantes.
Vérifier la configuration de votre système de fichiers EFS, de votre groupe de sécurité et de votre ACL réseau
Si vous avez incorrectement configuré votre système de fichiers EFS, vos groupes de sécurité ou votre ACL réseau, vous recevez une erreur similaire aux exemples suivants :
« ResourceInitializationError: failed to invoke EFS utils commands to set up EFS volumes: stderr: b'mount.nfs4: Connection timed out' : unsuccessful EFS utils command execution; code: 32 » (ResourceInitializationError : échec de l’invocation des commandes utils EFS pour configurer les volumes EFS : stderr: b'mount.nfs4 : Expiration de la connexion' : échec de l’exécution de la commande utils EFS ; code : 32)
-ou-
« ResourceInitializationError: failed to invoke EFS utils commands to set up EFS volumes: stderr: mount.nfs4: Connection reset by peer : unsuccessful EFS utils command execution; code: 32 » (ResourceInitializationError : échec de l’invocation des commandes utils EFS pour configurer les volumes EFS : stderr: b'mount.nfs4 : Connexion réinitialisée par le peer : échec de l’exécution de la commande utils EFS ; code : 32)
Système de fichiers EFS
Assurez-vous que vous avez créé les cibles de montage de votre système de fichiers EFS et qu'elles sont disponibles dans la même zone de disponibilité et le même sous-réseau que vos tâches.
Pour vérifier la zone de disponibilité des cibles de montage, procédez comme suit :
- Ouvrez la console Amazon EFS.
- Dans le volet de navigation, sélectionnez Systèmes de fichiers.
- Sélectionnez votre système de fichiers.
- Choisissez Réseau pour afficher la liste des cibles de montage existantes et leur configuration réseau.
- Notez les zones de disponibilité du sous-réseau sur lequel le système de fichiers Amazon EFS a monté les volumes.
- Ouvrez la console Amazon ECS.
- Dans le volet de navigation, choisissez Clusters.
- Sélectionnez votre cluster.
- Choisissez l'onglet Tâches.
- Choisissez votre identifiant de tâche.
- Dans Configuration, choisissez l'ID de sous-réseau.
Remarque : Cette action ouvre un nouvel onglet dans votre navigateur sur la console Amazon VPC. - Vérifiez la zone de disponibilité du sous-réseau pour vérifier qu'elle correspond à la zone de disponibilité du système de fichiers Amazon EFS. Si la zone de disponibilité du système de fichiers Amazon EFS ne correspond pas, créez une cible de montage dans la zone de disponibilité appropriée.
Groupes de sécurité et ACL de réseau
Le groupe de sécurité cible de montage du système de fichiers EFS doit autoriser le trafic NFS provenant de vos tâches via TCP sur le port 2049.
Pour vérifier le port, procédez comme suit :
- Ouvrez la console Amazon EFS.
- Dans le volet de navigation, sélectionnez Systèmes de fichiers.
- Sélectionnez le système de fichiers que vous souhaitez vérifier.
- Choisissez Réseau pour afficher la liste des cibles de montage existantes et des groupes de sécurité associés. Vérifiez les règles entrantes pour vous assurer qu'elles autorisent le trafic TCP à partir des adresses IP des tâches sur le port 2049.
- (Facultatif) Pour modifier les groupes de sécurité associés, choisissez Gérer.
Il est recommandé de restreindre l'accès au port 2049 en fonction de la provenance de votre connexion. Si tous les clients se trouvent dans un sous-réseau spécifique, utilisez la plage d'adresses IP du sous-réseau. Si tous les clients se trouvent dans le VPC associé à Amazon EFS, utilisez le CIDR du VPC. Si les clients proviennent de réseaux distants, utilisez une plage d'adresses IP correspondant à ces réseaux.
Les sous-réseaux doivent autoriser le trafic réseau entre votre système de fichiers Amazon EFS et vos tâches Amazon ECS.
Pour vérifier la configuration du trafic réseau, procédez comme suit :
- Ouvrez la console Amazon VPC.
- Dans le volet de navigation, cliquez sur Vos VPC.
- Sélectionnez votre VPC.
- Dans Détails, pour l'ACL du réseau principal, choisissez votre identifiant.
- Assurez-vous que les règles entrantes et sortantes de votre VPC autorisent le trafic NFS via TCP à partir des adresses IP des tâches sur le port 2049.
Vérifier la configuration de votre Amazon VPC
Si vous n'avez pas configuré correctement votre Amazon VPC, vous recevez une erreur similaire à l'exemple suivant :
« ResourceInitializationError: failed to invoke EFS utils commands to set up EFS volumes: stderr: Failed to resolve "fs-abcdefgxyz.efs.us-east-1.amazonaws.com" - check that your file system ID is correct, and ensure that the VPC has an EFS mount target for this file system ID. » (ResourceInitializationError : échec de l’invocation de la commande utils EFS pour configurer les volumes EFS : stderr : Impossible de résoudre « fs-abcdefgxyz. efs.us-east-1.amazonaws.com ». Vérifiez que l'ID de votre système de fichiers est correct et que le VPC utilise une cible de montage EFS pour cet ID de système de fichiers. »
Activer la résolution DNS et les noms d'hôtes
Vous devez activer la résolution DNS et les noms d'hôte DNS dans le jeu d'options DHCP (Dynamic Host Configuration Protocol) du VPC.
Remarque : Les noms d'hôtes DNS sont désactivés par défaut.
S’assurer que votre serveur DNS personnalisé peut résoudre le nom DNS de votre volume
Il est recommandé d'utiliser AmazonProvidedDNS pour vos ensembles d’options DHCP. Si vous utilisez plutôt un serveur DNS personnalisé, vous devez configurer un redirecteur DNS conditionnel dans le fichier de configuration du serveur DNS.
Utilisez les paramètres suivants :
- Toutes les requêtes DNS adressées aux ressources AWS (*.amazonaws.com) doivent être envoyées au serveur DNS par défaut du VPC.
- L'adresse IP doit être la plage d'adresses CIDR IPV4 privée principale qui est provisionnée pour votre VPC plus deux (x.y.z.2) ou 169.254.169.253. Par exemple, pour le CIDR 10.0.0.0/16, l'adresse IP du serveur DNS par défaut du VPC est 10.0.0.2.
Configurer les paramètres d'un volume Amazon EFS qui se trouve dans un VPC différent de celui de votre instance de conteneur
Pour monter un volume Amazon EFS à partir d'un VPC différent de celui de votre instance de conteneur, vous devez créer une connexion d'appairage VPC entre les VPC. Ou, créer une passerelle de transit. Suivez ensuite les étapes de contournement suivantes en fonction de l'endroit où s'exécutent vos tâches.
Instances Amazon EC2
Pour les tâches exécutées sur Amazon Elastic Compute Cloud (Amazon EC2), connectez-vous à votre instance EC2, puis installez botocore.
Remarque : efs-utils utilise botocore pour interagir avec d'autres services AWS. Pour les étapes d'installation, consultez Installer botocore sur le site Web de GitHub.
Seul un service DNS fourni par Amazon dans le même VPC que le système de fichiers EFS peut résoudre le nom DNS Amazon EFS. Pour coder en dur l'adresse IP du montage Amazon EFS dans le fichier /etc/hosts de la machine, exécutez la commande suivante :
echo "mount-target-IP-address fs-id.efs.region.amazonaws.com" | sudo tee -a /etc/hosts
Remarque : Remplacez mount-target-IP-address par l'adresse IP cible du montage, fs-id par l'ID du système de fichiers EFS et region par votre région. Les ressources extérieures au VPC ne peuvent toujours pas résoudre le nom DNS.
Tâches Fargate
Dans la solution suivante, le VPC A est le VPC sur lequel s'exécutent vos tâches Amazon ECS et où se trouve le client Amazon EFS. Le VPC B est le VPC de votre volume Amazon EFS. La solution de contournement utilise le résolveur Amazon Route 53 pour ne pas coder les données en dur. Pour plus d'informations sur la tarification, consultez la rubrique Tarification d'Amazon Route 53.
Prérequis :
- Les VPC A et B utilisent le service DNS fourni par Amazon. Ou bien, votre serveur DNS personnalisé utilise un redirecteur DNS conditionnel dans le fichier de configuration du serveur DNS.
- Les règles entrantes du groupe de sécurité Amazon EFS autorisent le trafic NFS via TCP sur le port 2049 pour le CIDR VPC A.
Si vos tâches sont exécutées sur AWS Fargate, procédez comme suit :
- Créez un point de terminaison entrant Route 53 dans le VPC B et configurez les paramètres suivants :
Pour VPC dans la région region-name, sélectionnez VPC B.
Pour Groupe de sécurité pour ce point de terminaison, sélectionnez un groupe de sécurité qui autorise le trafic TCP et UDP entrant depuis le VPC A sur le port 53.
Pour Adresses IP, créez deux adresses IP.
Remarque : Lorsque votre serveur résout le nom DNS, il renvoie généralement l'adresse IP du point de montage situé dans la même zone de disponibilité que votre client. Lorsque vous utilisez cette solution de contournement, vos requêtes DNS proviennent du point de terminaison entrant. Par conséquent, la zone de disponibilité du point de terminaison entrant détermine l'adresse IP renvoyée.
Pour renvoyer une adresse IP unique pour votre système de fichiers EFS, configurez un point de montage unique. Vous pouvez également placer les deux adresses IP dans la même zone de disponibilité. Si vous sélectionnez différentes zones de disponibilité, le nom DNS renvoie une adresse IP différente en fonction du point de terminaison entrant qui a transféré votre requête. - Créez un point de terminaison sortant Route 53 dans le VPC A et configurez les paramètres suivants :
Pour VPC dans la région region-name, sélectionnez VPC A.
Pour Groupe de sécurité pour ce point de terminaison, sélectionnez un groupe de sécurité qui autorise le trafic TCP et UDP sortant vers le VPC B sur le port 53. - Créez une règle de résolution Route 53 pour transférer les requêtes DNS pour le nom DNS Amazon EFS vers Amazon DNS dans le VPC B.
Configurez les paramètres suivants :
Pour Nom de domaine, entrez le nom DNS complet de votre système de fichiers EFS, par exemple fs-abcdef.efs.eu-west-1.amazonaws.com.
Pour VPC qui utilisent cette règle, sélectionnez VPC A.
Pour Point de terminaison sortant, sélectionnez le point de terminaison sortant dans le VPC A.
Pour Adresses IP cible, entrez les deux adresses IP du point de terminaison entrant Route 53 dans le VPC B. - Pour vérifier que vous pouvez monter votre volume Amazon EFS avec le nom DNS, exécutez les commandes suivantes depuis votre client :
sudo mount.efs fs-abcdefxyz /mnt
Remarque : Remplacez region par votre région et votre fichier fs-abdcexzy par l'ID de volume du système de fichiers.dig fs-abcdefxyz.efs.region.amazonaws.com
Vérifier vos politiques et autorisations relatives aux rôles IAM
Si vous rencontrez des problèmes avec vos politiques de rôle et vos autorisations IAM, vous recevez une erreur similaire aux exemples suivants :
« ResourceInitializationError: failed to invoke EFS utils commands to set up EFS volumes: stderr: b'mount.nfs4: access denied by server while mounting 127.0.0.1:/' : unsuccessful EFS utils command execution; code: 32 » (ResourceInitializationError : échec de l’invocation des commandes utils EFS pour configurer les volumes EFS : stderr: b'mount.nfs4 : accès refusé par le serveur pendant le montage de 127.0.0.1:/' : échec de l’exécution de la commande utils EFS ; code : 32)
-ou-
« ResourceInitializationError: failed to invoke EFS utils commands to set up EFS volumes: stderr: b'mount.nfs4: mounting fs-xxx.efs.us-east-1.amazonaws.com:/dir failed, reason given by server: No such file or directory' : unsuccessful EFS utils command execution; code: 32 » (ResourceInitializationError : échec de l’invocation des commandes utils EFS pour configurer les volumes EFS : stderr: b'mount.nfs4 : échec du montage de fs-xxx.efs.us-east-1.amazonaws.com:/dir, raison indiquée par le serveur : Aucun fichier ou répertoire de ce type' : échec de l’exécution de la commande utils EFS ; code : 32)
Les autorisations que vous définissez dans les ressources suivantes peuvent contrôler l'accès au système de fichiers EFS :
- Politique IAM du rôle de tâche Amazon ECS
- Politiques du système de fichiers EFS
- Les autorisations POSIX attribuées à votre point d'accès
- L'ACL réseau et les groupes de sécurité
Remarque : Pour vérifier l'ACL de votre réseau et vos groupes de sécurité, consultez la section Groupes de sécurité et ACL réseau.
Vérifier les autorisations de vos tâches Amazon ECS
Remarque : Pour identifier l'ID du rôle d'exécution de la tâche, vérifiez la valeur de executionRoleARN dans le fichier JSON de définition de tâche. Pour plus d'informations sur l'accès au fichier JSON, reportez-vous à Étape 5 : Créer une définition de tâche.
Assurez-vous que le rôle d'exécution de tâche Amazon ECS dispose des autorisations requises pour localiser et monter un système de fichiers Amazon EFS sur votre tâche.
Procédez comme suit :
- Ouvrez la console IAM.
- Dans le volet de navigation, sélectionnez Rôles.
- Dans la barre de recherche, entrez le nom de votre rôle d'exécution de tâche, puis choisissez le rôle d'exécution de tâche.
- Choisissez Politiques d’autorisations pour développer toutes les politiques associées. Assurez-vous que la liste inclut les autorisations suivantes :
elasticfilesystem:ClientMount
elasticfilesystem:ClientWrite
elasticfilesystem:DescribeMountTargets
elasticfilesystem:DescribeFileSystems
Pour ajouter les autorisations au rôle d'exécution de tâche, procédez comme suit :
- Ouvrez la console IAM.
- Dans le volet de navigation, sélectionnez Politiques.
- Sélectionnez Créer une politique.
- Pour Service, sélectionnez EFS.
- Développez la section Actions autorisées.
- Sélectionnez les autorisations ClientMount, ClientWrite, DescribeMountTargets et DescribeFileSystems.
- Sélectionnez les ressources sur lesquelles le rôle peut effectuer ces actions, puis choisissez Suivant.
- Entrez le nom et la description de la politique, puis choisissez Créer une politique.
- Dans le volet de navigation, sélectionnez Rôles.
- Dans la barre de recherche, entrez le nom de votre rôle d'exécution de tâche, puis choisissez le rôle d'exécution de tâche.
- Choisissez Ajouter des autorisations, puis Attacher des politiques.
- Sélectionnez votre nouvelle politique.
- Choisissez Ajouter des autorisations.
Vérifier la politique de votre système de fichiers EFS
Procédez comme suit :
-
Ouvrez la console Amazon EFS.
-
Choisissez Systèmes de fichiers, puis sélectionnez votre système de fichiers.
-
Assurez-vous que votre politique de système de fichiers autorise le rôle d'exécution de tâche à monter le volume EFS.
Exemple de politique :{ "Version": "2012-10-17", "Statement": [ { "Sid": "ECS Tasks - EFS Access", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/ecs-task-execution-role-name" }, "Action": [ "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite", "elasticfilesystem:DescribeMountTargets", "elasticfilesystem:DescribeFileSystems", ] } ] } -
Pour ajouter des autorisations IAM supplémentaires à votre politique, ajoutez une nouvelle politique de système de fichiers. Vous pouvez également ajouter des instructions pour permettre à vos clients d'utiliser votre volume Amazon EFS pour modifier la politique existante.
Vérifier vos autorisations POSIX
Si vous utilisez des points d'accès dotés d'un chemin de répertoire racine personnalisé, assurez-vous que vous disposez des autorisations de création d'utilisateur et de répertoire racine POSIX. Pour plus d'informations sur la résolution de problèmes, consultez la section Échec du montage avec le point d'accès.
Informations connexes
Création de systèmes de fichiers EFS
Le montage du système de fichiers échoue immédiatement après la création du système de fichiers
Guide du développeur sur l'utilisation d'Amazon EFS avec Amazon ECS et AWS Fargate - partie 2
- Sujets
- Containers
- Langue
- Français

Contenus pertinents
- demandé il y a un an
- demandé il y a un an
- demandé il y a 5 mois
- demandé il y a 2 ans
AWS OFFICIELA mis à jour il y a 5 mois