Ir para o conteúdo

Como transferir grandes quantidades de dados de um bucket do Amazon S3 para outro?

5 minuto de leitura
0

Quero transferir pelo menos 1 TB de dados de um bucket do Amazon Simple Storage Service (Amazon S3) para outro bucket.

Resolução

Para transferir grandes quantidades de dados de um bucket do Amazon S3 para outro, use um dos seguintes métodos:

  • AWS Command Line Interface (AWS CLI)
  • Replicação entre regiões (CRR) ou replicação na mesma região (SRR)
  • Operações em Lote do Amazon S3
  • S3DistCP com o Amazon EMR
  • AWS DataSync

Observação: se você receber erros ao executar comandos da AWS CLI, consulte Solucionar problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

AWS CLI

Para melhorar o tempo de transferência de dados, divida a transferência em várias operações mutuamente exclusivas. Por exemplo, use a AWS CLI para executar várias operações paralelas, como aws s3 cp, aws s3 mv ou aws s3 sync. É possível criar mais threads de upload ao usar os parâmetros --exclude e --include para filtrar as operações por nome de arquivo.

Observação: como os parâmetros --exclude e --include são processados no lado do cliente, os recursos em sua máquina local podem afetar o desempenho da operação.

Para copiar uma grande quantidade de dados de um bucket para outro, execute os seguintes comandos:

Observação: os nomes dos arquivos começam com um número.

  1. Execute o seguinte comando cp para copiar os arquivos com nomes que começam com os números de 0 a 4:

    aws s3 cp s3://source-awsexamplebucket/ s3://destination-awsexamplebucket/ --recursive --exclude "*" --include "0*" --include "1*" --include "2*" --include "3*" --include "4*"
    
  2. Execute o seguinte comando cp em uma segunda operação da AWS CLI para copiar os arquivos com nomes que começam com os números de 5 a 9:

    aws s3 cp s3://source-awsexamplebucket/ s3://destination-awsexamplebucket/ --recursive --exclude "*" --include "5*" --include "6*" --include "7*" --include "8*" --include "9*"
    

Também é possível personalizar os seguintes valores de configuração do S3 da AWS CLI para melhorar o tempo de transferência de dados:

  • Use multipart_chunksize para definir o tamanho de cada parte que a AWS CLI carrega em um upload de várias partes para um arquivo individual. É possível dividir um arquivo maior em partes menores para obter velocidades de upload mais rápidas. 
    Observação: para um upload de várias partes, é possível carregar um único arquivo em, no máximo, 10.000 partes diferentes. Verifique se o tamanho do bloco definido concilia o tamanho do arquivo da parte e o número de partes.
  • Use max_concurrent_requests para definir o número de solicitações que é possível enviar ao Amazon S3 de uma só vez. O valor padrão é 10, mas é possível aumentá-lo para um valor maior. Verifique se sua máquina tem recursos suficientes para suportar o número máximo de solicitações simultâneas.

CRR ou SSR

Configure a CRR ou SSR no bucket de origem para permitir que o Amazon S3 replique automaticamente novos objetos do bucket de origem para o bucket de destino. Para filtrar os objetos que o Amazon S3 replica, use um prefixo ou tag. Para mais informações, consulte Elementos do arquivo de configuração de replicação.

Depois de configurar a replicação, o Amazon S3 replica somente novos objetos para o bucket de destino, não os que já existem. Para mais informações, consulte Replicar objetos já criados com replicação em lote e O que não é replicado com configurações de replicação?

Operações em Lote do Amazon S3

É possível usar as Operações em lote do Amazon S3 para copiar vários objetos com uma única solicitação. Ao criar um trabalho de operação em lote, é possível usar um relatório de inventário Amazon S3 para especificar os objetos nos quais o Amazon S3 executa a operação. Ou é possível usar um manifesto CSV para especificar um trabalho em lote. Em seguida, as Operações em Lote do Amazon S3 chamam a API para realizar a operação.

Depois que o trabalho da operação em lote for concluído, você receberá uma notificação e um relatório de conclusão opcional.

S3DistCp com o Amazon EMR

A operação do S3DistCp no Amazon EMR pode copiar paralelamente um grande número de objetos em buckets do Amazon S3. O S3DistCp primeiro copia os arquivos do bucket de origem para os nós de trabalho em um cluster do Amazon EMR. Em seguida, a operação grava os arquivos dos nós de processamento no bucket de destino. Para mais informações, consulte Sete dicas para usar o S3DistCp no Amazon EMR para mover dados de forma eficiente entre o HDFS e o Amazon S3.

Importante: como você deve usar o Amazon EMR com o S3DistCp, não deixe de conferir os preços do Amazon EMR.

AWS DataSync

Para usar o AWS DataSync para mover grandes quantidades de dados de um bucket do Amazon S3 para outro bucket, você deve criar um local de transferência. Para um bucket de uso geral, consulte Criar local de transferência para um bucket de uso geral do Amazon S3. Para um bucket Outpost, consulte Criar local de transferência para S3 em bucket Outposts.

Observação:

Informações relacionadas

Como identifico os custos de transferência de dados no Amazon S3?

AWS OFICIALAtualizada há um ano