Je souhaite monter un système de fichiers Amazon Elastic (Amazon EFS) sur un conteneur ou une tâche Amazon Elastic Container Service (Amazon ECS). Le conteneur ou la tâche utilise un type de lancement Amazon Elastic Compute Cloud (Amazon EC2).
Résolution
Créez une définition de tâche qui indique l'ID du système de fichiers dans les paramètres de volume de la définition de la tâche. Cela permet au système de fichiers EFS de se monter automatiquement sur les tâches que vous spécifiez dans votre définition de tâche.
Exigences relatives au réseau
Vérifiez que vous disposez des configurations suivantes :
- Le système de fichiers EFS et le cluster ECS pour le type de lancement Amazon EC2 doivent se trouver dans le même cloud privé virtuel (VPC).
- Les groupes de sécurité du système de fichiers EFS doivent autoriser les connexions entrantes sur le port 2049 à partir de l'instance de conteneur ECS et de la tâche ECS.
- Les groupes de sécurité de l'instance ou des tâches ECS doivent autoriser les connexions sortantes sur le port 2049 vers le groupe de sécurité du système de fichiers EFS.
Créer une définition de tâche
Effectuez les opérations suivantes :
- Ouvrez la console Amazon ECS, choisissez Définitions des tâches, puis Créer une nouvelle définition de tâche.
- Dans Type de lancement, choisissez EC2, puis Étape suivante.
- Dans Configurer les définitions des tâches et des conteneurs, entrez un nom pour votre définition de tâche.
- Dans la section Volume, choisissez Ajouter un volume.
- Entrez un nom pour le volume, puis choisissez EFS dans la liste déroulante Types de volumes.
- Pour l'ID du système de fichiers, sélectionnez l'ID du système de fichiers à utiliser pour les tâches ECS.
- (Facultatif) Spécifiez le répertoire racine, le chiffrement en transit et l'autorisation IAM EFS. Si vous ne spécifiez aucune donnée, le répertoire racine par défaut « / » est utilisé.
- Choisissez Ajouter.
- Lorsque vous créez le conteneur, sous Définitions des conteneurs, choisissez Ajouter un conteneur pour utiliser le nouveau volume. Puis, dans la sous-section Points de montage, sous ** Stockage et journalisation**, sélectionnez le volume.
- Dans Chemin du conteneur, choisissez le chemin du répertoire qui se trouve dans le conteneur de votre application, puis Ajouter.
- Renseignez les champs obligatoires dans l'assistant de définition de tâche, puis choisissez Créer.
Dans l'exemple suivant, la définition de la tâche crée un volume de données nommé efs-ec2-test. Le conteneur nginx monte le volume de données se trouvant sur l’hôte sur le chemin /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"
}
Remarque : remplacez les paramètres fileSystemid, containerPath et les autres paramètres de définition de tâches par vos valeurs.
Dans l'exemple précédent, vous pouvez créer un exemple de fichier index.html dans le répertoire racine du système de fichiers qui se présente de la manière suivante :
<html> <body>
<h1>You are using an Amazon EFS file system for persistent container storage.</h1>
</body>
</html>
Exécuter une tâche Amazon ECS
Effectuez les opérations suivantes :
- Pour exécuter votre tâche ECS, utilisez la définition de la tâche.
- Pour vérifier que le système de fichiers EFS est monté sur le conteneur ECS, utilisez l'adresse IP de l'instance pour accéder au site Web.