A Despensa Elástica: Guia Prático do Amazon EFS
A Dor: O EBS é ótimo, mas só pode ser anexado a uma instância EC2 por vez. O S3 é infinito, mas é um armazenamento de objetos, não um sistema de arquivos tradicional. E se você precisar que múltiplos servidores leiam e escrevam nos mesmos arquivos ao mesmo tempo, como em um servidor de arquivos tradicional (NFS)?
A Solução: Amazon EFS (Elastic File System). * O que é? Um serviço de armazenamento de arquivos simples, escalável, totalmente gerenciado e elástico para cargas de trabalho Linux. * Analogia: Pense no EFS como uma "Despensa Comunitária". Cada "cozinheiro" (instância EC2) na sua cozinha pode entrar na despensa a qualquer momento para pegar a mesma "receita" (arquivo) ou guardar um "prato pronto" (resultado) para que os outros possam usar.
1. Os 3 Superpoderes do EFS
1.
Compartilhado
- Como Funciona: Milhares de instâncias EC2 (e até mesmo seus servidores locais, via Direct Connect) podem se conectar e usar o mesmo sistema de arquivos EFS simultaneamente.
2.
Elástico
- Como Funciona: O armazenamento cresce e encolhe automaticamente. Você nunca precisa provisionar o tamanho do disco. Se você tem 10 GB de arquivos, paga por 10 GB. Se amanhã adicionar 1 TB, o sistema cresce sem nenhuma intervenção. Você nunca mais se preocupará com "disco cheio" em um servidor de arquivos.
3.
Totalmente Gerenciado
- Como Funciona: A AWS cuida de todo o "trabalho pesado": replicação dos dados entre múltiplas Zonas de Disponibilidade (para alta disponibilidade), backups, patching e manutenção.
2. O Painel de Controle da Performance
O EFS te dá "botões de ajuste" para otimizar a performance e o custo para sua carga de trabalho específica.
Modo de Desempenho
- Analogia: O "Tipo de Porta da Despensa".
- Opções:
- Uso Geral (Padrão): Otimizado para baixa latência. Perfeito para a maioria das aplicações, como sistemas de gerenciamento de conteúdo e sites.
- E/S Máxima (Max I/O): Otimizado para alta taxa de transferência e operações paralelas. Ideal para análise de big data e processamento de mídia.
Classe de Armazenamento
- Analogia: As "Prateleiras da Despensa".
- Opções:
- Standard: Para arquivos acessados com frequência (a "prateleira da frente").
- Acesso Infrequente (IA): Uma classe de custo mais baixo para arquivos acessados com menor frequência (a "prateleira de cima").
Insight: Habilite o EFS Lifecycle Management para que a AWS mova automaticamente os arquivos que você não usa há algum tempo (ex: 30 dias) para a classe IA, otimizando seus custos sem esforço.
Modo de Taxa de Transferência
- Analogia: O "Tamanho do 'Balcão de Atendimento' da Despensa".
- Opções:
- Intermitente (Bursting - Padrão): A performance (taxa de transferência) escala automaticamente com o tamanho do seu sistema de arquivos. Quanto mais dados você guarda, mais rápido ele fica.
- Provisionado (Provisioned): Se sua aplicação precisa de uma alta taxa de transferência de forma consistente, mesmo com poucos dados armazenados, você pode provisionar uma performance específica, pagando por ela.
3. O Veredito do Arquiteto (Casos de Uso)
- Sistemas de Gerenciamento de Conteúdo (CMS): Múltiplos servidores web (ex: WordPress) compartilhando a mesma pasta de uploads (
wp-content/uploads
). - Diretórios Home: Um local central para os diretórios
/home
dos usuários em uma grande frota de instâncias EC2. - Big Data e Análise: Como um repositório de dados compartilhado e persistente para clusters de processamento como o EMR.
- Serviços de Aplicação: Compartilhamento de código e dependências entre múltiplos contêineres ou instâncias.
HACK PARA CERTIFICAÇÃO: A distinção entre os três tipos de armazenamento é o tópico mais importante de armazenamento na prova. * EFS é para ARMAZENAMENTO DE ARQUIVOS (FILE STORAGE). * Sua principal característica é poder ser acessado por MÚLTIPLAS INSTÂNCIAS EC2 (Linux) ao mesmo tempo. * É elástico, cresce e encolhe automaticamente com seus dados.
A Despensa Comunitária: Guia da Arquitetura e Configuração do EFS
Já sabemos o que o EFS faz: fornece um servidor de arquivos compartilhado e elástico. Agora, vamos aprender como ele funciona e como o configuramos. A chave para entender o EFS é sua arquitetura distribuída e o papel dos Destinos de Montagem.
Analogia: Pense na sua VPC como um "prédio de vários andares" e no seu sistema de arquivos EFS como a "Despensa Comunitária" central do prédio.
1. A Arquitetura da Despensa (Como o EFS Funciona)
Um Sistema de Arquivos Regional
- O que é? O seu sistema de arquivos EFS não vive em um único local. Ele é um recurso Regional, projetado para alta disponibilidade, com os dados armazenados de forma redundante em múltiplas Zonas de Disponibilidade (AZs).
- Analogia: A "Despensa" não é uma sala pequena em um único andar; é um sistema de armazenamento gigante que atende ao prédio inteiro.
A Porta de Acesso (O Destino de Montagem - Mount Target)
A Dor que Resolve: "A despensa é central, mas como um 'cozinheiro' (instância EC2) no 10º andar a acessa de forma eficiente e segura?"
- O que é? Um Destino de Montagem (Mount Target) é um ponto de acesso (um endpoint NFS) que você cria em uma sub-rede específica da sua VPC.
- Analogia: É a "Porta de Acesso à Despensa" que você instala em cada andar do seu prédio.
- Características Chave:
- Cada Destino de Montagem tem seu próprio endereço IP privado, dentro da faixa da sua sub-rede.
- O acesso a cada Destino de Montagem é controlado por Security Groups. É a "fechadura eletrônica" da porta.
A Regra de Ouro: Para garantir a resiliência e a performance, você deve criar um Destino de Montagem em cada Zona de Disponibilidade que contém instâncias EC2 que precisam acessar o sistema de arquivos.
2. O Manual de Montagem (Configurando o EFS)
Configurar o EFS é um processo de 4 etapas.
-
Crie o Sistema de Arquivos EFS: No console do EFS, você cria o sistema de arquivos. É um passo simples onde você define os atributos de performance que já estudamos.
-
Crie os Destinos de Montagem: Durante a criação, você selecionará sua VPC e as sub-redes (uma por AZ) onde deseja criar as "portas de acesso". Você também associará um Security Group a esses destinos para controlar o acesso.
-
Conecte a Instância EC2:
- Analogia: "Conectar o carrinho de mão à porta da despensa".
- Como? Você se conecta à sua instância Linux via SSH e usa o comando
mount
do Linux para "montar" o sistema de arquivos em um diretório local. Você apontará para o nome DNS do Destino de Montagem.
-
Limpe os Recursos: Após o uso, não se esqueça de deletar o sistema de arquivos EFS e as instâncias EC2 para evitar custos.
HACK PARA CERTIFICAÇÃO: Para a prova: 1. EFS é um serviço Regional de armazenamento de arquivos (NFS). 2. Para que uma instância EC2 acesse um sistema de arquivos EFS, você precisa criar um Destino de Montagem (Mount Target) na mesma VPC (e preferencialmente na mesma AZ da instância). 3. O acesso a um Destino de Montagem é controlado por Security Groups.
A Despensa em Ação: Guia Prático de Casos de Uso do Amazon EFS
Já sabemos que o EFS é a nossa "despensa comunitária" na nuvem. A pergunta fundamental que um arquiteto faz para decidir se deve usá-lo é:
"Eu preciso que MÚLTIPLOS servidores (instâncias EC2) leiam e escrevam no MESMO conjunto de arquivos ao mesmo tempo?"
Se a resposta for sim, o EFS é quase sempre a ferramenta certa. Vamos ver os cenários onde isso acontece.
O Playbook de Casos de Uso do EFS
1. Gerenciamento de Conteúdo e Servidores Web
- O Cenário Típico: Você tem uma frota de servidores web rodando um CMS como WordPress ou Drupal, atrás de um Load Balancer.
- A Dor (Por que não usar EBS?): Se um usuário fizesse o upload de uma imagem, ela seria salva no disco EBS do Servidor A. Quando outro usuário, atendido pelo Servidor B, tentasse ver a imagem, ela não estaria lá!
- Por que o EFS é a Solução Perfeita? Você "monta" a mesma pasta do EFS (ex:
/var/www/html/uploads
) em todos os seus servidores web. Agora, qualquer arquivo enviado para qualquer servidor é instantaneamente visível para todos os outros. É totalmente transparente para a aplicação.
2. Diretórios Iniciais (Home Directories)
- O Cenário Típico: Uma empresa tem muitos desenvolvedores que precisam de um diretório
/home
para guardar seus arquivos e configurações, e eles podem se conectar a diferentes instâncias EC2. - A Dor: Manter os diretórios
/home
sincronizados entre múltiplas máquinas é um pesadelo. - Por que o EFS é a Solução Perfeita? O EFS atua como um repositório central para os diretórios home. Não importa em qual instância EC2 o desenvolvedor faça login, seu diretório
/home
estará sempre lá, consistente e disponível.
3. Análise de Big Data
- O Cenário Típico: Um cluster de processamento de dados (como o Amazon EMR) precisa analisar um grande conjunto de dados (dataset).
- A Dor: Como fazer com que dezenas ou centenas de nós de processamento acessem o mesmo dataset de forma eficiente e paralela?
- Por que o EFS é a Solução Perfeita? O EFS fornece um armazenamento compartilhado, de alta taxa de transferência e consistente que serve como a "fonte da verdade" para os dados que serão processados pelo cluster.
4. Backups de Banco de Dados
- O Cenário Típico: Você precisa de um local central para armazenar os "dumps" de backup de múltiplos servidores de banco de dados.
- A Dor: Fazer o backup em um disco local (EBS) de cada servidor dificulta a centralização e o gerenciamento.
- Por que o EFS é a Solução Perfeita? O EFS apresenta um sistema de arquivos padrão (NFS) que pode ser facilmente montado a partir de servidores de banco de dados. Ele se torna um destino de backup centralizado, acessível por toda a sua frota.
5. Fluxos de Trabalho de Mídia
- O Cenário Típico: Uma produtora de vídeo tem um fluxo de trabalho onde um editor, um engenheiro de som e um artista de efeitos especiais precisam trabalhar nos mesmos arquivos de vídeo brutos de 500 GB.
- A Dor: Mover arquivos de mídia gigantes entre diferentes estações de trabalho é lento e ineficiente.
- Por que o EFS é a Solução Perfeita? O EFS atua como o repositório central de alta performance. Todos os artistas, em suas respectivas instâncias EC2, montam o mesmo sistema de arquivos e trabalham nos mesmos arquivos de origem, simplificando drasticamente o fluxo de trabalho.
INSIGHT DE ARQUITETO (O "Quando NÃO Usar"): O EFS é fantástico para o que faz, mas não é um banco de dados. Para cargas de trabalho que exigem latência de milissegundos e milhões de pequenas transações (como um carrinho de compras de e-commerce), o EFS não é a ferramenta certa. Para isso, você usaria um banco de dados como o Amazon DynamoDB ou Aurora.
HACK PARA CERTIFICAÇÃO: A pergunta sobre armazenamento na prova quase sempre se resume a isto: * Precisa de um disco para UMA instância? -> EBS. * Precisa guardar arquivos/backups e acessá-los pela internet? -> S3. * Precisa de um servidor de arquivos compartilhado para MÚLTIPLAS instâncias Linux? -> EFS.