Como montar um bucket S3 localmente no Linux
De várias maneiras, os buckets S3 agem como discos rígidos na nuvem, mas são apenas o armazenamento no nível do objeto, não bloqueie o armazenamento em nível como EBS ou EFS. No entanto, é possível montar um bucket como um sistema de arquivos e acessá-lo diretamente, lendo e gravando arquivos.
Os benefícios e limitações do S3 como sistema de arquivos
A mágica que faz toda essa configuração funcionar é um utilitário chamado s3fs-fuse. FUSE significa Sistema de Arquivos no Espaço do Usuário e cria um sistema de arquivos virtual montado. O s3fs faz interface com o S3 e suporta um grande subconjunto do POSIX, incluindo leitura, gravação, criação de diretórios e configuração de metadados do arquivo.
Um dos grandes benefícios do uso do S3 em relação ao armazenamento tradicional é que ele é muito eficaz no armazenamento de objetos individuais a longo prazo, sem limite no tamanho total da caçamba. Você pode armazenar 10 fotos ou 10 milhões de fotos no S3, e ele funcionará basicamente da mesma forma. Em aplicativos em que você precisa de um disco grande (e barato), o S3 faz sentido, e se o aplicativo que você está integrando deseja acesso a arquivos, essa é uma boa maneira de conectar os dois.
É claro que não é sem limitações. Embora funcione comparativamente a uma API S3 em termos de desempenho ao armazenar e recuperar arquivos inteiros, obviamente não substitui inteiramente o armazenamento em bloco conectado à rede muito mais rápido. Há uma razão pela qual essa configuração não é oficialmente suportada pela AWS, pois você terá problemas de simultaneidade com vários clientes usando arquivos, especialmente se você tiver clientes em diferentes regiões acessando o mesmo bucket. É claro que o S3 também tem essa limitação e não impede que você tenha vários clientes conectados, mas é mais aparente quando o FUSE parece dar a você um acesso direto. Acesso. Não é, e você terá que manter essas limitações em mente.
A AWS possui um serviço semelhante a esse Gateway de armazenamento, que pode atuar como um NAS local e fornece armazenamento em bloco local suportado pelo S3. No entanto, essa é mais uma solução corporativa e requer um servidor físico inteiro para implantar uma imagem do VMWare. O s3fs, por outro lado, é uma solução simples para servidor único, embora não faça muito cache.
Portanto, se você puder converter aplicativos para o uso da API S3 em vez de um FUSE, faça isso. Mas, se você estiver de acordo com uma solução hacky, o s3fs pode ser útil.
Configurando o s3fs-fusível
Comparado com o quão hacky é, é surpreendentemente fácil de configurar. O s3fs-fuse está disponível na maioria dos gerenciadores de pacotes, embora possa ser chamado s3fs em alguns sistemas. Para sistemas baseados no Debian como o Ubuntu, isso seria:
sudo apt install s3fs
Você precisará criar um usuário do IAM e dar permissão para acessar o bucket que deseja montar. No final, você receberá uma chave de acesso secreta:
Você pode colá-las no arquivo de credenciais padrão da AWS, ~ / . aws / credenciais, mas se desejar usar uma chave diferente, o s3fs suporta um arquivo de senha personalizado. Cole o ID e o segredo da chave de acesso em / etc / passwd-s3fs, no seguinte formato:
eco ACCESS_KEY_ID: SECRET_ACCESS_KEY > / etc / passwd-s3fs
E verifique se as permissões neste arquivo de chaves estão definidas corretamente, ou ele irá reclamar:
chmod 600 / etc / passwd-s3fs
Em seguida, você pode montar o balde com o seguinte comando:
nome do bloco s3fs / mnt / nome do bloco
Se isso não funcionar, você pode ativar a saída de depuração com alguns sinalizadores extras:
-o dbglevel = info -f -o curldbg
Se você deseja que isto seja montado na inicialização, você precisará adicionar o seguinte ao seu / etc / fstab:
s3fs # nome-do-balde / mnt / nome-do-fusível _netdev, allow_other, umask = 227, uid = 33, gid = 33, use_cache = / root / cache 0 0
Via: How to Geek
Nenhum comentário