Como sincronizar arquivos Linux A Amazon S3

AWS S3 é o serviço de armazenamento em nuvem da Amazon, que permite armazenar arquivos individuais como objetos em um bucket. Você pode fazer upload de arquivos da linha de comando para seu servidor Linux ou até mesmo sincronizar diretórios inteiros com o S3.

Se você deseja compartilhar arquivos apenas entre instâncias do EC2, pode usar um volume EFS e montá-lo diretamente em vários servidores, eliminando completamente a "nuvem". Mas você não deve usá-lo para tudo, porque é muito mais caro que o S3, mesmo com acessos pouco frequentes ativados.

índice

  1. Restringir o acesso do S3 a um usuário do IAM
  2. Sincronização de arquivos com s3cmd
  3. Outra opção: AWS CLI
  4. Backups completos: Restic, Duplicidade

Restringir o acesso do S3 a um usuário do IAM

Seu servidor provavelmente não precisa de acesso root completo à sua conta da AWS, portanto, antes de fazer qualquer tipo de sincronização de arquivos, você deve criar um novo usuário do IAM para usar em seu servidor. Com um usuário do IAM, você pode limitar seu servidor para gerenciar apenas seus buckets do S3.

No IAM Management Console, crie um novo usuário e ative "Acesso programático".

Você será solicitado a escolher as permissões para este usuário. Crie um novo grupo e dê a ele a permissão "AmazonS3FullAccess".

Em seguida, você receberá uma chave de acesso e uma chave secreta. Tome nota destes; você precisará deles para autenticar seu servidor.

Você também pode atribuir manualmente permissões S3 mais granulares, como permissão para usar um bucket específico ou apenas fazer upload de arquivos, mas limitar o acesso apenas ao S3 deve ser bom na maioria dos casos.

Sincronização de arquivos com s3cmd

s3cmd é um utilitário projetado para simplificar o trabalho com o S3 a partir da linha de comando. Ele não faz parte da AWS CLI, portanto, você precisará instalá-lo manualmente a partir do gerenciador de pacotes da sua distribuição. Para sistemas baseados em Debian como o Ubuntu, será:

 sudo apt-get install s3cmd

Depois que s3cmd estiver instalado, você precisará conectá-lo ao usuário do IAM que você criou para administrar o S3. Configurar com:

 s3cmd --configurar

Você será solicitado a fornecer a chave de acesso e a chave secreta fornecidas pelo IAM Management Console. Cole-os aqui. Existem algumas outras opções, como alterar os endpoints para S3 ou habilitar a criptografia, mas você pode deixar todos eles padrão e apenas selecionar "Y" no final para salvar suas configurações.

Para fazer upload de um arquivo, use:

 s3cmd coloca o arquivo s3://bucket

Substituição de "bucket" pelo nome do seu bucket. Para recuperar esses arquivos, execute:

 s3cmd obter s3://bucket/remotefile localfile

E, se você quiser sincronizar em um diretório inteiro, execute:

 s3cmd diretório de sincronização s3://bucket/

Isso copiará todo o diretório para uma pasta no S3. Na próxima vez que você executá-lo, ele copiará apenas os arquivos que foram alterados desde a última vez que foi executado. Ele não removerá nenhum arquivo, a menos que você o execute com a opção --delete-removed .

s3cmd sync não será executada automaticamente, portanto, se você quiser manter esse diretório atualizado periodicamente, precisará executar esse comando regularmente. Você pode automatizar com cron ; Abra seu crontab com crontab -e e adicione este comando no final:

 0 0 * * * diretório de sincronização s3cmd s3://bucket >/dev/null 2>&1

Isso sincronizará "diretório" com "balde" uma vez por dia. A propósito, se crontab -e bloquear você do vim , você poderá alterar o editor de texto padrão com export VISUAL=nano; , ou o que preferir.

s3cmd tem muitos subcomandos; você pode copiar entre buckets com cp , mover arquivos com mv e até criar e excluir buckets da linha de comando com mb es rb , respectivamente. Use s3cmd -h para obter uma lista completa.

Outra opção: AWS CLI

Além de s3cmd , existem algumas outras opções de linha de comando para sincronizar arquivos com o S3. A AWS fornece suas ferramentas com a AWS CLI. Você precisa do Python 3+ e pode instalar a CLI do pip3 com:

 pip3 instalar awscli --upgrade --user

Isso instalará o comando aws , que você pode usar para interagir com os serviços da AWS. Você deve configurá-lo da mesma maneira que o s3cmd, o que pode ser feito com:

 aws configurar

Você será solicitado a inserir a chave de acesso e a chave secreta para seu usuário do IAM.

A sintaxe da AWS CLI é semelhante a s3cmd . Para fazer upload de um arquivo, use:

 aws s3 cp arquivo s3://bucket

Para sincronizar uma pasta inteira, use:

 pasta de sincronização aws s3 s3://bucket

Você pode copiar e até sincronizar entre repositórios com os mesmos comandos. você pode usar a aws help para obter uma lista completa de comandos ou ler a referência de comando em seu site.

Backups completos: Restic, Duplicidade

Se você deseja fazer backups grandes, pode usar outra ferramenta em vez de um utilitário de sincronização simples. Ao sincronizar com o S3 com s3cmd ou a AWS CLI, todas as alterações feitas substituem os arquivos atuais. Como a principal preocupação com o armazenamento de arquivos na nuvem geralmente não é a falha da unidade, mas a exclusão acidental sem acesso ao histórico de revisões, isso é um problema.

A AWS oferece suporte ao controle de versão de arquivos, o que resolve um pouco esse problema, mas você ainda pode usar um programa de backup mais poderoso para lidar com isso, especialmente se estiver fazendo backup de toda a sua unidade.

Duplicidade é um utilitário simples que faz backup de arquivos na forma de volumes TAR criptografados. O primeiro arquivo é um backup completo e, portanto, os arquivos subsequentes são incrementais e armazenam apenas as alterações feitas desde o último arquivo.

Isso é muito eficiente, mas restaurar a partir de um backup é menos eficiente, pois o processo de restauração terá que seguir a cadeia de alterações para chegar ao estado final dos dados. O Restic resolve esse problema armazenando dados em blocos criptografados desduplicados e mantendo um instantâneo de cada versão para recuperação. Desta forma, o estado atual dos arquivos pode ser facilmente referenciado e cada revisão ainda pode ser acessada.

Ambas as ferramentas podem ser configuradas para funcionar com o AWS S3, bem como com vários outros provedores de armazenamento. Como alternativa, se você quiser fazer backup apenas de suas instâncias do EC2 baseadas em EBS, poderá usar snapshots incrementais do EBS, embora isso seja mais caro do que o backup manual para o S3.

  • Como ver qual CPU está no seu Chromebook (e quão rápido é)
  • Suco de Jamu é o tônico saudável que seu corpo precisa neste verão

descubra mais conteúdo

Google Pixel Watch também tem detecção de queda, mas não até o próximo ano

As melhores xícaras de café aquecidas de 2022

Como automatizar seu iPhone com base na hora, atividade ou localização

"Isso deve ter sido antes do meu tempo"

Por que a NASA enviou Snoopy para a Lua? – Revisão Geek

O que é uma carga fantasma?

Deixe uma resposta Cancelar resposta

O que é um servidor S3?

O Amazon S3 é um serviço de armazenamento de objetos criado para armazenar e recuperar qualquer volume de dados de qualquer local. É um serviço de armazenamento simples que oferece excelente durabilidade, disponibilidade, desempenho, segurança e escalabilidade praticamente ilimitada a custos muito baixos.

Quando usar o S3?

O S3 é um sistema de armazenamento de objetos em nuvem escalável (PaaS). Os usos mais comuns são como backup de dados e arquivos e aplicativos devido ao custo e facilidade de acesso.

O que causa S3?

Causas: insuficiência ventricular esquerda (aumento do volume diastólico final na insuficiência cardíaca sistólica), insuficiência valvar mitral ou aórtica, hipertireoidismo, anemia, fístula arteriovenosa. O terceiro tom fisiológico pode ocorrer em crianças e adolescentes saudáveis.

Como funciona o Amazon S3?

O Amazon S3 armazena dados como objetos em buckets. Um objeto consiste em um arquivo e, opcionalmente, em quaisquer metadados que descrevam esse arquivo. Para armazenar um objeto do Amazon S3 , faça upload do arquivo que deseja armazenar em um bucket.

Ir arriba