Montar sistemas de arquivos do S3 no Amazon EC2
Para montar sistemas de arquivos do S3 em uma instância do EC2, é necessário usar o auxiliar de montagem do S3 Files. O auxiliar de montagem ajuda a montar sistemas de arquivos do S3 em instâncias do EC2 que executam as distribuições compatíveis. Ao montar um sistema de arquivos, o assistente de montagem define um novo tipo de sistema de arquivos de rede chamado s3files, que é totalmente compatível com o comando mount padrão no Linux. O auxiliar de montagem também comporta a montagem automática de um sistema de arquivos do S3 no momento da inicialização da instância, usando entradas no arquivo de configuração /etc/fstab em instâncias Linux do EC2. O auxiliar de montagem faz parte da coleção de ferramentas de código aberto que é instalada com o cliente do S3 Files (amazon-efs-utils).
Pré-requisitos para montar em instâncias do EC2
Você precisa ter um sistema de arquivos do S3 com pelo menos um destino de montagem disponível.
A instância do EC2 deve estar na mesma zona de disponibilidade que o destino de montagem que será usado para montar o sistema de arquivos.
Um perfil de instância do IAM deve estar vinculado à instância do EC2 com as permissões necessárias para o S3 Files. Para obter detalhes, consulte Perfil do IAM para anexar o sistema de arquivos a recursos de computação da AWS.
Os Grupos de segurança necessários devem ter sido configurados.
O pacote amazon-efs-utils foi instalado na instância do EC2. Para obter mais informações, consulte Cliente do S3 Files.
Como o auxiliar de montagem funciona?
Quando um comando de montagem é emitido, o auxiliar de montagem executa as seguintes ações:
Recupera credenciais do IAM do perfil de instância do EC2.
Inicializa o processo efs-proxy para estabelecer uma conexão criptografada por TLS com o destino de montagem.
Inicia o processo de supervisor do amazon-efs-mount-watchdog, que monitora a integridade das montagens de TLS. Esse processo é iniciado automaticamente na primeira vez em que um sistema de arquivos do S3 é montado.
Monta o sistema de arquivos no ponto de montagem especificado.
O assistente de montagem usa o TLS versão 1.2 para se comunicar com seu sistema de arquivos. O uso do TLS requer certificados, e esses certificados são assinados por uma autoridade de certificação confiável da Amazon. Para obter mais informações sobre o funcionamento da criptografia, consulte Segurança para o S3 Files.
O auxiliar de montagem usa as seguintes opções de montagem otimizadas para o S3 Files:
| Opção | Valor | Descrição |
|---|---|---|
nfsvers |
4.2 | Versão do protocolo NFS. |
rsize |
1048576 | Define o número máximo de bytes de dados que o cliente NFS pode receber para cada solicitação READ da rede como 1.048.576 (1 MB), o maior disponível, para evitar queda de desempenho. |
wsize |
1048576 | Define o número máximo de bytes de dados que o cliente NFS pode enviar para cada solicitação WRITE da rede como 1.048.576 (1 MB), o maior disponível, para evitar queda de desempenho. |
hard |
— | Define o comportamento de recuperação do cliente NFS após a expiração de uma solicitação, para que as solicitações NFS sejam repetidas indefinidamente até que o servidor responda. |
timeo |
600 | Define como 600 decissegundos (60 segundos) o valor de tempo limite que o cliente NFS usa para aguardar por uma resposta antes de realizar novas tentativas de uma solicitação de NFS. |
retrans |
2 | Define como 2 o número de vezes que o cliente NFS tentará executar novamente uma solicitação antes de tentar executar outra ação de recuperação. |
noresvport |
— | Informa o cliente NFS para usar uma nova porta de origem TCP não privilegiada quando uma conexão de rede é restabelecida. O uso de noresvport ajuda a garantir que o sistema de arquivos tenha disponibilidade ininterrupta após um evento de reconexão ou recuperação de rede. |
Além disso, o auxiliar de montagem usa automaticamente as opções de montagem tls e iam ao montar um sistema de arquivos do S3, pois o S3 Files exige essas opções para estabelecer uma conexão. Isso ocorre porque o S3 Files sempre monta um sistema de arquivos usando criptografia TLS e autenticação do IAM, que não podem ser desabilitadas.
Como montar um sistema de arquivos do S3 em uma instância do EC2?
-
Conecte a instância do EC2 por meio do Secure Shell (SSH) ou do EC2 Instance Connect no console do EC2. Para ter mais informações, consulte Conexão com a instância do EC2.
-
Crie um diretório
/mnt/s3filespara usar como ponto de montagem do sistema de arquivos com o seguinte comando:sudo mkdir /mnt/s3files -
Monte um sistema de arquivos do S3:
FS="{YOUR_FILE_SYSTEM_ID}" sudo mount -t s3files $FS:/ /mnt/s3files -
Confirme se o sistema de arquivos está montado.
df -h /mnt/s3filesVocê verá uma resposta semelhante à seguinte:
Filesystem Size Used Avail Use% Mounted on{s3files-dns}8.0E 129M 8.0E 1%{path/to/mount}Também é possível verificar a montagem do sistema de arquivos e inspecionar as opções de montagem listando o conteúdo do ponto de montagem local. Se a montagem for bem-sucedida, esse comando mostrará os respectivos detalhes, inclusive suas opções de montagem, para o diretório específico.
findmnt -T /mnt/s3files
Para ter informações detalhadas sobre os comandos de montagem, acesse a documentação do GitHub
Agora você pode ler e gravar objetos do S3 como arquivos no caminho de montagem local usando operações padrão do sistema de arquivos. Se você tiver objetos em seu bucket do S3, poderá visualizá-los como arquivos usando os comandos a seguir.
ls /mnt/s3files
É possível monitorar o armazenamento, o desempenho, as conexões de cliente e os erros de sincronização do sistema de arquivos usando métricas do CloudWatch.
Como montar um sistema de arquivos do S3 em uma instância do EC2 usando pontos de acesso
Ao montar um sistema de arquivos usando um ponto de acesso, o comando mount inclui as opções de montagem access-point-id.
sudo mount -t s3files -o accesspoint=access-point-idfile-system-id/mnt/s3files
em que:
access-point-idé o ID do ponto de acesso.file-system-idé o ID do sistema de arquivos do S3.
Montar automaticamente sistemas de arquivos do S3 quando a instância do EC2 é iniciada
Por meio da atualização do arquivo /etc/fstab, é possível configurar uma instância do EC2 e montar automaticamente um sistema de arquivos do S3 quando a instância é iniciada ou reiniciada. O arquivo /etc/fstab contém informações sobre sistemas de arquivos e é usado pelo sistema operacional para determinar quais sistemas de arquivos devem ser montados no momento da inicialização.
Atenção
Use a opção _netdev, que serve para identificar sistemas de arquivos de rede, ao montar o sistema de arquivos automaticamente. Se _netdev estiver ausente, a instância do EC2 poderá deixar de responder. Isso ocorre porque os sistemas de arquivos de rede precisam ser iniciados depois que a instância de computação inicia suas redes. Para ter mais informações, consulte A montagem automática falha e a instância não responde.
É possível usar o auxiliar de montagem para configurar uma instância do Amazon EC2 e montar automaticamente um sistema de arquivos do S3 quando a instância é iniciada:
Atualize o arquivo
/etc/fstabdo EC2 com uma entrada para o sistema de arquivos do S3.Anexe um sistema de arquivos do S3 ao criar uma instância do EC2 usando o assistente de inicialização de instâncias do EC2.
Atualizar o arquivo /etc/fstab
Execute as etapas a seguir para atualizar o /etc/fstab em uma instância Linux do EC2 para que ela use o auxiliar de montagem e remonte automaticamente um sistema de arquivos do S3 quando for reiniciada.
-
Abra o arquivo
/etc/fstabem um editor e adicione a seguinte linha ao arquivo:file-system-id:/mount-directorys3files _netdev 0 0Em que:
file-system-idé o ID do sistema de arquivos do S3 (por exemplo,fs-0123456789abcdef0).mount-directoryé o diretório do ponto de montagem na instância do EC2 (por exemplo,/mnt/s3files)._netdevespecifica que o sistema de arquivos é de rede, garantindo que a instância aguarde a disponibilidade da rede antes de tentar realizar a montagem.
Salve o arquivo e feche o editor.
-
Teste a entrada do fstab montando todos os sistemas de arquivos no fstab:
sudo mount -a -
Verifique se o sistema de arquivos está montado:
findmnt -Tmount-directory
Usar a opção nofail
Recomendamos adicionar a opção nofail à entrada do fstab em ambientes de produção. Essa opção permitirá que a instância inicialize mesmo se a montagem do sistema de arquivos falhar:
file-system-id:/mount-directorys3files _netdev,nofail 0 0
Montagem automática com um ponto de acesso
Para montar automaticamente usando um ponto de acesso do S3 Files, inclua a opção accesspoint:
file-system-id:/mount-directorys3files _netdev,accesspoint=access-point-id0 0
Montagem automática com um subdiretório
Para montar automaticamente um subdiretório específico do sistema de arquivos, especifique o caminho:
file-system-id:/path/to/directorymount-directorys3files _netdev 0 0
Usar o assistente de inicialização de instâncias do EC2
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/
. Escolha Executar instância.
Siga esta documentação para iniciar uma instância do EC2 usando o assistente de inicialização de instâncias no Console da AWS. Antes de escolher Iniciar instância, configure a rede e adicione o sistema de arquivos do S3 conforme mostrado nas etapas a seguir.
Selecione uma sub-rede em Configurações de rede.
-
Selecione o grupo de segurança padrão que a instância do EC2 possa acessar o sistema de arquivos do S3. Não é possível acessar a instância do EC2 por Secure Shell (SSH) usando esse grupo de segurança. Para acesso por SSH, posteriormente, será possível editar a segurança padrão e adicionar uma regra para permitir SSH ou um novo grupo de segurança que permita SSH. É possível usar as seguintes configurações:
Tipo: SSH
Protocolo: TCP
Intervalo de portas: 22
Fonte: Qualquer lugar 0.0.0.0/0
Na seção Armazenamento, selecione Sistemas de arquivos e escolha S3 Files.
No menu suspenso do sistema de arquivos, você verá seus sistemas de arquivos na zona de disponibilidade com base na sub-rede selecionada anteriormente nas configurações de rede. Escolha o sistema de arquivos do S3 que você deseja montar. Se você não tiver nenhum sistema de arquivos, escolha “Criar um sistema de arquivos” para criar um.
Insira um caminho de montagem local na instância do EC2 na qual você deseja montar o sistema de arquivos (por exemplo,
/mnt/s3files).Um comando será gerado para montar o sistema de arquivos e adicioná-lo ao fstab. É possível optar por adicionar o comando aos dados do usuário ou executá-lo manualmente na instância do EC2 depois que ela for iniciada. Dessa forma, a instância do EC2 será configurada para montar o sistema de arquivos do S3 na inicialização e sempre que for reinicializada.
Escolha Executar instância.
Montar sistemas de arquivos do S3 por meio de outra VPC
Quando você usa uma conexão de emparelhamento da VPC ou um gateway de trânsito para conectar VPCs, as instâncias do Amazon EC2 que estão em uma VPC podem acessar os sistemas de arquivos do S3 em outra VPC.
Um gateway de trânsito é um hub de trânsito de rede que pode ser usado para interconectar as VPCs e as redes on-premises. Para obter mais informações sobre como usar os gateways de trânsito da VPC, consulte Conceitos básicos de gateways de trânsito no Guia de gateways de trânsito da Amazon VPC. Uma conexão de emparelhamento de VPC é uma conexão de rede entre duas VPCs. Esse tipo de conexão permite direcionar o tráfego entre elas usando endereços privados IPv4 ou IPv6. Você pode usar o emparelhamento da VPC para conectar VPCs na mesma região da AWS ou entre regiões da AWS. Para ter mais informações sobre emparelhamento da VPC, consulte O que é emparelhamento de VPC? no Guia do usuário da Amazon VPC.
Ao montar um sistema de arquivos por meio de uma VPC diferente, é necessário resolver o destino de montagem manualmente. Você deve usar o endereço IP dos destinos de montagem na zona de disponibilidade correspondente da forma a seguir e substituir mount-target-ip-address, file-system-id e mount-directory por seus próprios valores.
sudo mount -t s3files -o mounttargetip=mount-target-ip-addressfile-system-idmount-directory
Para garantir alta disponibilidade do sistema de arquivos, recomendamos sempre usar um endereço IP de destino de montagem que esteja na mesma zona de disponibilidade que o cliente NFS.
Também é possível usar o Amazon Route 53 como seu serviço DNS. No Route 53, é possível determinar os endereços IP de destino de montagem de outra VPC por meio da criação de uma zona hospedada privada e o conjunto de registros de recurso. Para acessar mais informações sobre como fazer isso, consulte Trabalhar com zonas hospedadas privadas no Guia do desenvolvedor do Amazon Route 53.
Para ver mais detalhes sobre a montagem por meio de outra VPC, acesse ReadMe no GitHub
Montar sistemas de arquivos do S3 em uma região da AWS diferente
Se você estiver montando um sistema de arquivos do S3 por meio de outra VPC que esteja em uma região da AWS diferente da região em que o sistema de arquivos se encontra, será necessário editar o arquivo s3files-utils.conf. Em /etc/amazon/efs/s3files-utils.conf, localize as seguintes linhas:
#region = us-east-1
Remova o comentário da linha e substitua o valor pelo ID da região na qual o sistema de arquivos está localizado, caso não esteja na us-east-1.
Em seguida, é necessário especificar o IP do destino de montagem no comando mount depois de alterar a região na configuração:
sudo mount -t s3files -o mounttargetip=mount-target-ip-addressfile-system-idmount-directory
Desmontar um sistema de arquivos do S3
Para desmontar um sistema de arquivos do S3 conectado a uma instância do EC2 que esteja executando Linux, use o comando umount da seguinte forma:
umountmount-directory
Recomendamos não especificar nenhuma outra opção umount. Evite configurar quaisquer outras opções umount que sejam diferentes dos valores padrão. É possível verificar se o sistema de arquivos do S3 foi desmontado executando o comando findmnt. Se a desmontagem for bem-sucedida, o comando findmnt no diretório de montagem não produzirá nenhuma saída.