EFS : stockage de fichiers partagé pour Linux
Montez un système de fichiers EFS sur plusieurs instances EC2 et fonctions Lambda, configurez les modes de performance et de débit, puis contrôlez l’accès avec des groupes de sécurité.
EFS : stockage de fichiers partagé pour Linux est une leçon Cloud & IT Cert Prep gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cloud & IT Cert Prep, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cloud & IT Cert Prep comprend 4 leçons au total.
Qu'est-ce qu'Amazon EFS ?
Amazon Elastic File System (EFS) est un système de fichiers POSIX partagé, élastique et entièrement géré, qui peut être monté simultanément par des milliers d'instances EC2, de fonctions Lambda et de conteneurs ECS/EKS. Contrairement à EBS (qui s'attache à une seule instance), EFS fournit un système de fichiers partagé dans lequel tous les clients connectés voient les mêmes fichiers en temps réel. La capacité augmente et diminue automatiquement : vous n'avez jamais besoin de provisionner le stockage à l'avance. EFS est idéal pour la gestion de contenu, les référentiels de code partagés, les répertoires personnels et l'analyse de données.
Classes de stockage EFS
EFS propose deux classes de stockage : EFS Standard (multi-AZ, disponibilité maximale, latence inférieure à la milliseconde) et EFS One Zone (une seule AZ, coût réduit de 47 %, résilience légèrement moindre). Dans chaque niveau, il existe également une variante Infrequent Access (IA), qui stocke les données à un coût 92 % inférieur à celui de Standard pour les fichiers qui ne sont pas consultés régulièrement. La différence avec S3 est la suivante : EFS est un système de fichiers POSIX complet que vos applications peuvent monter — ce n'est pas un stockage d'objets.
# Create an EFS file system in Standard storage class
aws efs create-file-system \
--performance-mode generalPurpose \
--throughput-mode elastic \
--encrypted \
--tags Key=Name,Value=SharedFileSystem
# One Zone (cheaper, single-AZ):
aws efs create-file-system \
--performance-mode generalPurpose \
--throughput-mode elastic \
--encrypted \
--availability-zone-name us-east-1a \
--tags Key=Name,Value=SharedFileSystemOneZoneModes de performance EFS
EFS propose deux modes de performance : General Purpose (par défaut, recommandé pour la plupart des charges de travail — latence minimale, idéal pour les serveurs web, la gestion de contenu et les répertoires personnels) et Max I/O (conçu pour les charges de travail massivement parallèles avec des milliers de connexions simultanées, au prix d’une latence légèrement supérieure, idéal pour le big data et le traitement multimédia). Le mode de performance est défini lors de la création et ne peut pas être modifié après la création du système de fichiers. Pour l’examen SAA-C03, choisissez Max I/O uniquement lorsque vous avez explicitement besoin de milliers de connexions parallèles.
# Create EFS with Max I/O for highly parallel workloads
aws efs create-file-system \
--performance-mode maxIO \
--throughput-mode provisioned \
--provisioned-throughput-in-mibps 1024 \
--encrypted
# Note: Max I/O mode is NOT compatible with Elastic throughput mode
# It must use Provisioned or Bursting throughputModes de débit EFS
EFS prend en charge trois modes de débit : Elastic (le débit augmente et diminue automatiquement en fonction de la charge de travail — recommandé pour la plupart des cas d’utilisation, facturé par GB transféré), Bursting (le débit évolue avec la taille du stockage, accumule et consomme des crédits de rafale comme les instances T d’EC2 — niveau de base gratuit) et Provisioned (vous spécifiez un débit fixe indépendamment de la taille du stockage — utile lorsque vous avez besoin d’un débit constant supérieur à celui fourni par Bursting). Le mode Elastic est le mode moderne par défaut et évite d’avoir à planifier la capacité de débit.
# Migrate an existing EFS from Bursting to Elastic throughput
aws efs update-file-system \
--file-system-id fs-0abc1234def567890 \
--throughput-mode elastic
# Check current throughput mode and performance mode
aws efs describe-file-systems \
--file-system-id fs-0abc1234def567890 \
--query 'FileSystems[].{ThroughputMode:ThroughputMode,PerfMode:PerformanceMode,SizeBytes:SizeInBytes.Value}'Cibles de montage et groupes de sécurité
Pour accéder à un système de fichiers EFS depuis une instance EC2, vous créez une cible de mount dans chaque sous-réseau (AZ) où vos instances s’exécutent. Avec EFS Standard, vous devez créer une cible de mount dans chaque AZ de votre VPC — les instances EC2 se connectent à la cible de mount de leur propre AZ afin d’obtenir la latence la plus faible. Les cibles de mount possèdent des groupes de sécurité qui doivent autoriser le trafic NFS (port 2049 TCP) depuis le groupe de sécurité de l’instance. Sans cette règle entrante, les opérations de mount finissent par expirer.
# Create a mount target in each AZ
aws efs create-mount-target \
--file-system-id fs-0abc1234def567890 \
--subnet-id subnet-aaa111 \
--security-groups sg-efsnfs
aws efs create-mount-target \
--file-system-id fs-0abc1234def567890 \
--subnet-id subnet-bbb222 \
--security-groups sg-efsnfs
# The EFS security group needs: Inbound TCP 2049 from instance SGMonter EFS sur EC2 Linux
La méthode recommandée pour monter EFS sur EC2 consiste à utiliser l’assistant de mount Amazon EFS (package amazon-efs-utils), qui prend en charge le chiffrement TLS en transit et la reconnexion automatique. Vous effectuez le mount à l’aide de l’identifiant du système de fichiers plutôt que de l’adresse IP, afin que le DNS résolve automatiquement la cible de mount de l’AZ la plus proche. Pour des mounts persistants qui survivent aux redémarrages, ajoutez l’entrée de mount dans /etc/fstab en utilisant l’option _netdev, afin de garantir que le réseau est disponible avant le mount.
# Install the EFS mount helper
sudo yum install -y amazon-efs-utils
# Mount with TLS encryption in transit
sudo mkdir /mnt/efs
sudo mount -t efs -o tls fs-0abc1234def567890:/ /mnt/efs
# Persistent mount in /etc/fstab
# fs-0abc1234def567890:/ /mnt/efs efs defaults,_netdev,tls 0 0
# Verify mount
df -h /mnt/efsPoints d’accès EFS
Les points d’accès EFS sont des points d’entrée propres aux applications dans un système de fichiers EFS. Ils imposent un utilisateur POSIX, un groupe et un répertoire racine spécifiques à toutes les connexions qui les utilisent. Cela permet d’isoler plusieurs applications sur un même système de fichiers — l’application A effectue son mount via le point d’accès A et ne voit que /data/app-a/, tandis que l’application B, qui utilise le point d’accès B, ne voit que /data/app-b/. Les points d’accès sont la méthode recommandée pour accorder aux fonctions Lambda, aux tâches ECS et aux pods EKS un accès isolé aux systèmes de fichiers EFS partagés.
# Create an EFS Access Point for an application
aws efs create-access-point \
--file-system-id fs-0abc1234def567890 \
--posix-user Uid=1001,Gid=1001 \
--root-directory Path=/data/app-a,CreationInfo={OwnerUid=1001,OwnerGid=1001,Permissions=755} \
--tags Key=App,Value=app-a
# Mount using the access point
sudo mount -t efs \
-o tls,accesspoint=fsap-0abc1234def567890 \
fs-0abc1234def567890:/ /mnt/app-aIntelligent-Tiering et cycle de vie EFS
Intelligent-Tiering d’EFS déplace automatiquement les fichiers entre les classes de stockage Standard et Standard-IA (accès peu fréquent) en fonction des habitudes d’accès. Vous configurez une politique de cycle de vie — par exemple, déplacer les fichiers vers IA après 30 jours sans accès. Lorsqu’un fichier situé dans IA est de nouveau consulté, il est automatiquement déplacé vers Standard. La récupération depuis IA entraîne des frais de récupération par GB, mais le stockage coûte nettement moins cher. Ce fonctionnement est similaire à Intelligent-Tiering de S3 et évite de devoir gérer manuellement l’emplacement des fichiers.
# Enable lifecycle management (move to IA after 14 days)
aws efs put-lifecycle-configuration \
--file-system-id fs-0abc1234def567890 \
--lifecycle-policies '[
{"TransitionToIA": "AFTER_14_DAYS"},
{"TransitionToPrimaryStorageClass": "AFTER_1_ACCESS"}
]'
# Check current lifecycle configuration
aws efs describe-lifecycle-configuration \
--file-system-id fs-0abc1234def567890EFS avec Lambda et les conteneurs
Les fonctions Lambda peuvent monter des systèmes de fichiers EFS pour partager des fichiers de modèles volumineux, des données persistantes ou de la configuration entre les invocations — ce qui permet de dépasser la limite de 512 MB à 10 GB de /tmp. Les tâches ECS et EKS montent EFS via des demandes de volumes persistants à l’aide du pilote EFS CSI. La fonction Lambda ou le conteneur doit se trouver dans un VPC disposant d’une cible de mount, et le groupe de sécurité EFS doit autoriser le trafic NFS entrant depuis le groupe de sécurité du VPC de la fonction Lambda ou du conteneur. EFS + Lambda est un modèle courant pour partager des modèles de ML entraînés entre plusieurs instances de fonctions.
# Lambda function with EFS mount (CloudFormation excerpt)
# Resources:
# MyFunction:
# Type: AWS::Lambda::Function
# Properties:
# VpcConfig:
# SubnetIds: [subnet-aaa]
# SecurityGroupIds: [sg-lambda]
# FileSystemConfigs:
# - Arn: arn:aws:elasticfilesystem:us-east-1:111122223333:access-point/fsap-0abc
# LocalMountPath: /mnt/models
# In function code:
# import os
# model_path = '/mnt/models/my-model.pkl'
# with open(model_path, 'rb') as f:
# model = pickle.load(f)EFS et EBS : principales différences à l’examen
L’examen SAA-C03 vous demande souvent de choisir entre EFS et EBS. EFS : système de fichiers POSIX partagé, montable simultanément sur plusieurs instances EC2, capacité élastique, Linux uniquement (NFS), accessible par Lambda et les conteneurs, coût par GB plus élevé. EBS : périphérique bloc, attaché à une seule instance EC2 (sauf io1/io2 Multi-Attach), taille provisionnée fixe, Linux et Windows, non accessible nativement par Lambda, coût par GB inférieur. Si le scénario indique que « plusieurs instances doivent partager les mêmes fichiers », la réponse est EFS.
Chiffrement EFS
EFS prend en charge le chiffrement au repos (activé lors de la création du système de fichiers à l’aide d’une clé KMS — ne peut pas être modifié après la création) et le chiffrement en transit (chiffrement TLS lors de l’utilisation de l’assistant de mount EFS avec l’option tls). AWS recommande d’activer les deux. Vous pouvez imposer le chiffrement en transit à l’aide d’une policy basée sur les ressources EFS qui refuse le mount sans TLS en exigeant les conditions elasticfilesystem:ClientRootAccess et elasticfilesystem:ClientWrite.
# Create an EFS file system with encryption at rest
aws efs create-file-system \
--encrypted \
--kms-key-id arn:aws:kms:us-east-1:111122223333:key/KEY_ID
# Mount with TLS to encrypt in transit
sudo mount -t efs -o tls fs-0abc1234def567890:/ /mnt/efs
# Deny unencrypted mounts via EFS resource policy (condition)
# Condition: elasticfilesystem:AccessedViaMountTarget = true
# and aws:SecureTransport = trueVérification rapide
Vérifiez votre compréhension des concepts AWS Solutions Architect (SAA-C03) abordés dans cette leçon.
Récapitulatif de la leçon
Dans cette leçon, vous avez appris qu’EFS est un système de fichiers POSIX partagé pouvant être monté simultanément sur des milliers d’instances et de fonctions Lambda, avec une capacité élastique ; les points d’accès assurent une isolation par application en imposant un utilisateur POSIX et un répertoire racine ; et Intelligent-Tiering déplace automatiquement les fichiers rarement consultés vers une classe de stockage IA moins coûteuse. Nous allons ensuite découvrir FSx for Windows File Server et Lustre pour les charges de travail spécialisées.
Questions Fréquemment Posées
La leçon « EFS : stockage de fichiers partagé pour Linux » est-elle gratuite ?
Oui — le texte complet de « EFS : stockage de fichiers partagé pour Linux » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cloud & IT Cert Prep, passe à CoddyKit PRO. Le cours Cloud & IT Cert Prep comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « EFS : stockage de fichiers partagé pour Linux » ?
Montez un système de fichiers EFS sur plusieurs instances EC2 et fonctions Lambda, configurez les modes de performance et de débit, puis contrôlez l’accès avec des groupes de sécurité. Tu pratiques Cloud & IT Cert Prep avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Cloud & IT Cert Prep ?
Aucune expérience préalable n'est requise. Cloud & IT Cert Prep sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « EFS : stockage de fichiers partagé pour Linux » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Cloud & IT Cert Prep ?
Oui. Chaque leçon Cloud & IT Cert Prep inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Types de volumes EBS : gp3, io2, st1, sc1
- Instantanés, chiffrement et RAID EBS
- EFS : stockage de fichiers partagé pour Linux
- FSx : serveur de fichiers Windows et Lustre