Armazenamento com AWS EFS (File System compartilhado)
Amazon Elastic File System (Amazon EFS) é um serviço que fornece um sistema de arquivos elástico simples e sem servidor.
O serviço gerencia toda a infraestrutura de armazenamento de arquivos para você, evitando a complexidade de implantar, corrigir e manter configurações complexas de sistemas de arquivos.
É compatível com a última versão do protocolo Network File System versão 4 (NFSv4.1 e NFSv4.0) e suas versões anteriores.
Várias instâncias de computação em nuvem, incluindo Amazon EC2, Amazon ECS e AWS Lambda, podem acessar o sistema de arquivos EFS ao mesmo tempo, permitindo uma fonte de dados comum para cargas de trabalho e aplicativos em execução em mais de uma instância de computação.
Com o Amazon EFS, você paga apenas pelo armazenamento usado pelo sistema de arquivos e não há taxa mínima nem custo de configuração.
O objetivo desta atividade é explorar na prática os conceitos deste serviço.
A execução requer conhecimento prévio sobre a infraestrutura global da AWS (Regiões e Zonas de Disponibilidade), além de caracteríticas básicas dos serviços AWS Virtual Private Cloud (VPC) e AWS Elastic Compute Cloud (EC2).
As opções utilizadas consideram ambiente exclusivamente para experimentação. Ambientes corporativos produtivos devem levar em consideração outros aspectos não contemplados, como segurança, capacidade, alta disponibilidade e observability.
Referência: https://docs.aws.amazon.com/pt_br/efs/latest/ug/whatisefs.html
Arquitetura base para esta atividade:
Passo 1
O primeiro passo é criar o sistema de arquivos.
-
Faça login no AWS Console.
-
Em Serviços selecione EFS.
-
Selecione o botão Criar sistema de arquivos e preencha com as informações abaixo.
- Nome:
sharefs
- Virtual Private Cloud: Selecione uma VPC de preferência
- Disponibilidade e durabilidade:
One Zone
-
Zona de disponibilidade: Selecione uma zona de disponibilidade de preferência
Guarde a informação VPC pois será necessária adiante. Mantenha as demais opções padrões.
- Nome:
-
Clique em Personalizar e preencha com as informações abaixo.
- Backups automáticos: Desmarque a opção Habilitar backups automáticos
- Gerenciamento de ciclo de vida:
Nenhum
-
Criptografia: Desmarque a opção Habilite a criptografia de dados em repouso
Mantenha as demais opções padrões.
-
Clique em Próximo.
-
Na tela Acesso à rede clique em Próximo.
-
Na tela Política do sistema de arquivos - opcional clique em Próximo.
-
Na tela Revisar e criar clique em Criar.
-
Após a criação deverá aparecer a mensagem Êxito! O sistema de arquivos (fs-xxxxxxxx) está disponível.
-
No quadro Sistemas de arquivos clique sobre o nome do sistema de arquivos.
-
Na aba Rede capture os campos ID da sub-rede e Endereço IP pois serão utilizados adiante.
Passo 2
Inicie instâncias EC2.
-
Em Serviços selecione EC2.
-
Clique em Executar instância.
-
Na tela Etapa 1: Selecione uma Imagem de máquina da Amazon (AMI) selecione a opção Amazon Linux 2 AMI e clique em Selecionar.
Mantenha as demais opções padrões.
-
Na tela Etapa 2: Escolha um tipo de instância selecione a opção t2.micro e clique em Próximo.
-
Na tela Etapa 3: Configure os detalhes da instância preencha com as informações abaixo e clicar em Próximo: Adicionar armazenamento.
- Número de instâncias:
2
- Rede: Selecione a VPC utilizada no passo anterior
- Sub-rede: Selecione o ID da Sub-rede utilizada no passo anterior
- Dados do usuário: Copie e cole o conteúdo abaixo
sudo yum -y update sudo yum -y install nfs-utils
Mantenha as demais opções padrões.
- Número de instâncias:
-
Na tela Etapa 4: Adicionar armazenamento clique em Próximo: Adicionar Tags.
-
Na tela Etapa 5: Adicionar Tags clique em Próximo: Configure o security group.
-
Na tela Etapa 6: Configure o security group selecione um Grupo de Segurança que contenha a regra abaixo e clique em Verificar e ativar.
- Type:
All traffic
- Protocol:
All
- Port Range:
All
- Source:
0.0.0.0/0
- Type:
-
Na tela Etapa 7: Review Instance Launch clicar em Executar.
-
Na tela Selecione um par de chaves … selecione um par de chaves existe ou crie um novo par de chaves e clique em Executar.
Guarde a chave pois será necessária adiante.
-
Na tela Launch Status clique em Exibir instâncias.
-
Aguarde um tempo até que as instâncias fiquem com as infos abaixo. Clique no botão Refresh para atualizar as infos.
- Estado da instância:
Executando
-
Verificação de status:
2/2 verificações aprovadas
Guarde a informação DNS IPv4 público de cada instância pois serão necessárias adiante.
- Estado da instância:
Passo 3
Configure as instâncias para utilizarem de forma compartilhada o sistema de arquivos criado no primeiro passo.
-
Abra um terminal ssh e conecte nas instâncias EC2.
Na figura abaixo com MobaXterm, os seguintes campos foram preenhidos
- Remote host: DNS IPv4 público
- Specify username:
ec2-user
- Use private key: arquivo com a chave utilizada durante criação da instância
-
Realize a montagem do sistema de arquivos com os comandos abaixo nas duas instâncias.
Substitua
{Endereço IP}
pelo valor capturado no primeiro passo dessa atividade.sudo -i mkdir /opt/sharefs mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport {Endereço IP}:/ /opt/sharefs
-
Crie um arquivo na primeira instância e verifique na outra instãncia se o arquivo existe.
Na primeira instância
touch /opt/sharefs/file_a ls -la /opt/sharefs/
Na segunda instância
ls -la /opt/sharefs/