0Pricing
Cloud & IT Cert Prep · Aula

EFS: Armazenamento de arquivos compartilhado para Linux

Monte um sistema de arquivos EFS em várias instâncias EC2 e funções Lambda, configure modos de desempenho e throughput e controle o acesso com grupos de segurança.

EFS: Armazenamento de arquivos compartilhado para Linux é uma aula grátis de Cloud & IT Cert Prep no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cloud & IT Cert Prep, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.

O que é o Amazon EFS?

O Amazon Elastic File System (EFS) é um sistema de arquivos POSIX compartilhado, elástico e totalmente gerenciado, que pode ser montado simultaneamente por milhares de instâncias EC2, funções Lambda e contêineres ECS/EKS. Diferentemente do EBS (que é anexado a uma única instância), o EFS fornece um sistema de arquivos compartilhado no qual todos os clientes conectados veem os mesmos arquivos em tempo real. A capacidade aumenta e diminui automaticamente — você nunca precisa provisionar o armazenamento antecipadamente. O EFS é ideal para gerenciamento de conteúdo, repositórios de código compartilhados, diretórios pessoais e análise de dados.

Classes de armazenamento do EFS

O EFS oferece duas classes de armazenamento: EFS Standard (multi-AZ, maior disponibilidade e latência inferior a um milissegundo) e EFS One Zone (uma única AZ, custo 47% menor e um pouco menos resiliente). Dentro de cada nível, também há uma variante de Infrequent Access (IA) que armazena dados a um custo 92% menor que o Standard para arquivos que não são acessados regularmente. A diferença em relação ao S3 é que o EFS é um sistema de arquivos POSIX completo que suas aplicações podem montar — ele não é um armazenamento de objetos.

# 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=SharedFileSystemOneZone

Modos de desempenho do EFS

O EFS oferece dois modos de desempenho: General Purpose (padrão e recomendado para a maioria das cargas de trabalho — menor latência, ideal para hospedagem web, gerenciamento de conteúdo e diretórios pessoais) e Max I/O (projetado para cargas de trabalho maciçamente paralelas, com milhares de conexões simultâneas, ao custo de uma latência um pouco maior; ideal para big data e processamento de mídia). O modo de desempenho é definido durante a criação e não pode ser alterado depois que o sistema de arquivos é criado. No exame SAA-C03, escolha Max I/O somente quando você precisar explicitamente de milhares de conexões paralelas.

# 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 throughput

Modos de throughput do EFS

O EFS oferece três modos de throughput: Elastic (aumenta e reduz automaticamente o throughput com base na carga de trabalho — recomendado para a maioria dos casos de uso, com cobrança por GB transferido), Bursting (o throughput aumenta de acordo com o tamanho do armazenamento, acumulando e consumindo créditos de burst como as instâncias T da EC2 — linha de base gratuita) e Provisioned (você especifica um throughput fixo independentemente do tamanho do armazenamento — útil quando precisa de um throughput consistente superior ao fornecido por Bursting). O modo Elastic é o padrão moderno e elimina a necessidade de planejar a capacidade de throughput.

# 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}'

Mount targets e grupos de segurança

Para acessar um sistema de arquivos EFS a partir de uma instância EC2, você cria um mount target em cada subnet (AZ) onde suas instâncias são executadas. Para o EFS Standard, você deve criar um mount target em cada AZ da sua VPC — as instâncias EC2 se conectam ao mount target da própria AZ para obter a menor latência. Os mount targets têm grupos de segurança que devem permitir tráfego NFS (porta 2049 TCP) proveniente do grupo de segurança da instância. Sem essa regra de entrada, as operações de mount atingirão o tempo limite.

# 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 SG

Montando o EFS no EC2 Linux

A maneira recomendada de montar o EFS no EC2 é usar o Amazon EFS Mount Helper (pacote amazon-efs-utils), que oferece criptografia TLS em trânsito e reconexão automática. Você faz o mount usando o ID do sistema de arquivos, em vez do endereço IP, para que o DNS resolva automaticamente para o mount target da AZ mais próxima. Para mounts persistentes que sobrevivam a reinicializações, adicione a entrada de mount a /etc/fstab usando a opção _netdev, a fim de garantir que a rede esteja disponível antes da montagem.

# 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/efs

Access Points do EFS

Os EFS Access Points são pontos de entrada específicos de aplicações em um sistema de arquivos EFS que impõem um usuário POSIX, um grupo e um diretório raiz específicos para todas as conexões que usam esse access point. Isso permite isolar várias aplicações no mesmo sistema de arquivos — a aplicação A faz o mount por meio do Access Point A e vê apenas /data/app-a/, enquanto a aplicação B, usando o Access Point B, vê apenas /data/app-b/. Os Access Points são a maneira recomendada de conceder às funções Lambda, às tarefas ECS e aos pods EKS acesso isolado a sistemas de arquivos EFS compartilhados.

# 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-a

Intelligent-Tiering e ciclo de vida do EFS

O Intelligent-Tiering do EFS move automaticamente os arquivos entre as classes de armazenamento Standard e Standard-IA (Infrequent Access) com base nos padrões de acesso. Você configura uma política de ciclo de vida — por exemplo, para mover os arquivos para IA após 30 dias sem acesso. Quando um arquivo em IA é acessado novamente, ele é automaticamente movido de volta para Standard. A recuperação de IA tem uma tarifa de recuperação por GB, mas o armazenamento custa significativamente menos. Isso é semelhante ao Intelligent-Tiering do S3 e elimina a necessidade de gerenciar manualmente a localização dos arquivos.

# 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-0abc1234def567890

EFS com Lambda e contêineres

As funções Lambda podem montar sistemas de arquivos EFS para compartilhar arquivos grandes de modelos, dados persistentes ou configurações entre invocações — superando o limite de 512 MB a 10 GB de /tmp. As tarefas ECS e EKS montam o EFS por meio de declarações de volume persistente usando o driver EFS CSI. A função Lambda ou o contêiner deve estar em uma VPC que tenha um mount target, e o grupo de segurança do EFS deve permitir NFS de entrada proveniente do grupo de segurança da VPC do Lambda ou do contêiner. EFS + Lambda é um padrão comum para compartilhar modelos de ML treinados entre instâncias de funções.

# 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 vs. EBS: principais diferenças no exame

O exame SAA-C03 frequentemente pede que você escolha entre EFS e EBS. EFS: sistema de arquivos POSIX compartilhado, montado simultaneamente em várias instâncias EC2, capacidade elástica, somente Linux (NFS), acessível pelo Lambda e por contêineres, custo por GB mais alto. EBS: dispositivo de blocos, anexado a uma única instância EC2 (exceto io1/io2 Multi-Attach), tamanho provisionado fixo, compatível com Linux e Windows, não acessível nativamente pelo Lambda, custo por GB mais baixo. Se o cenário disser que “várias instâncias precisam compartilhar os mesmos arquivos”, a resposta é EFS.

Criptografia do EFS

O EFS oferece criptografia em repouso (ativada durante a criação do sistema de arquivos usando uma chave KMS — não pode ser alterada depois da criação) e criptografia em trânsito (criptografia TLS ao usar o EFS Mount Helper com a opção tls). A AWS recomenda ativar ambas. Você pode impor a criptografia em trânsito usando uma política baseada em recursos do EFS que bloqueia o mount sem TLS, exigindo as condições elasticfilesystem:ClientRootAccess e 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 = true

Verificação rápida

Teste sua compreensão dos conceitos do AWS Solutions Architect (SAA-C03) apresentados nesta lição.

Recapitulação da lição

Nesta lição, você aprendeu que: o EFS é um sistema de arquivos POSIX compartilhado que pode ser montado simultaneamente em milhares de instâncias e funções Lambda, com capacidade elástica; os Access Points fornecem isolamento por aplicação, com usuário POSIX e diretório raiz impostos; e o Intelligent-Tiering move automaticamente os arquivos acessados com pouca frequência para uma classe de armazenamento IA de menor custo. A seguir, exploraremos o FSx for Windows File Server e o Lustre para cargas de trabalho especializadas.

Perguntas Frequentes

A aula “EFS: Armazenamento de arquivos compartilhado para Linux” é grátis?

Sim — o texto completo de “EFS: Armazenamento de arquivos compartilhado para Linux” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cloud & IT Cert Prep, atualize para CoddyKit PRO. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.

O que vou aprender em “EFS: Armazenamento de arquivos compartilhado para Linux”?

Monte um sistema de arquivos EFS em várias instâncias EC2 e funções Lambda, configure modos de desempenho e throughput e controle o acesso com grupos de segurança. Você pratica Cloud & IT Cert Prep com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Cloud & IT Cert Prep?

Nenhuma experiência prévia é necessária. Cloud & IT Cert Prep no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “EFS: Armazenamento de arquivos compartilhado para Linux”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Cloud & IT Cert Prep?

Sim. Cada aula de Cloud & IT Cert Prep inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Tipos de volume EBS: gp3, io2, st1, sc1
  2. Snapshots, criptografia e RAID do EBS
  3. EFS: Armazenamento de arquivos compartilhado para Linux
  4. FSx: Servidor de arquivos Windows e Lustre
← Voltar para Cloud & IT Cert Prep