Como mover o bucket S3 para um local diferente

18

Usamos o S3 para armazenar milhões de entradas em nossa webapp, agora movemos tudo para o EC2, servidores da UE, e também queremos mover esses dados do S3 para a UE. Mas o balde que usamos é nos EUA e parece não haver nenhuma ferramenta para mover todo o conteúdo da caçamba para baldes diferentes.

Há também um problema sobre como sincronizar os dados mais tarde quando mudamos para o intervalo UE, os dados que serão criados enquanto a migração estava sendo executada.

    
por skrat 20.04.2010 / 16:45

5 respostas

18

O novo oficial AWS CLI suporta nativamente a maioria das funcionalidades de s3cmd .

link

aws s3 sync s3://oldbucket s3://newbucket --source-region us-west-1 --region us-west-2
    
por 13.01.2014 / 00:54
5

Eu acho que você pode executar:

s3cmd --recursive cp s3://oldbucket/ s3://newbucket

Deve copiá-lo diretamente.

    
por 12.08.2010 / 15:37
3

Eu não conheço uma solução empacotada para fazer isso, mas é essencialmente apenas um intervalo LIST e, em seguida, PUT-copy cada objeto do intervalo US para o intervalo UE. A API PUT-copy suporta "if-modified-since" e "if-none-match", para que você possa executá-lo repetidamente sem duplicar o esforço: link

Para uma migração ao vivo, sugiro a seguinte abordagem:

  1. Primeira etapa opcional: se você tiver uma quantidade enorme de dados para migrar, considere usar o AWS Import / Export para capturar o primeiro instantâneo dos dados em um dispositivo físico nos EUA e enviá-lo fisicamente para a UE. Isso pode economizar tempo e dinheiro.
    • Configure um script para migrar dados dos EUA para a UE usando a correspondência if-modified-since ou if-none-conforme descrito acima. Torne-o inteligente o suficiente para não chocar dados recentes da UE com dados obsoletos dos EUA (uma vez que você chegar ao passo 5 abaixo). Execute-o continuamente em um loop até que os dois buckets estejam aproximadamente no mesmo estado.
    • Modifique seu aplicativo da web para PUT dados para os depósitos dos EUA e da UE ao mesmo tempo e, ao mesmo tempo, continue obtendo dados exclusivamente dos EUA.
    • Continue a executar seu script de migração até ter certeza de que os intervalos estão exatamente no mesmo estado (ou o mais próximo possível, dada a consistência eventual).
    • Modifique o aplicativo da web novamente para OBTER dados exclusivamente do bloco da UE.
    • Agora você pode desativar seu script de migração.
    • Procure por eventuais anomalias de consistência e limpe-as.
    • Modifique o aplicativo da Web para interromper o envio de dados para o intervalo nos EUA.
    • APAGAR tudo no balde dos EUA.

Você pode querer usar o Armazenamento de Redundância Reduzida no S3 durante a migração para obter taxas de dados mais baratas e tempos de resposta mais rápidos, já que os dados são apenas uma duplicata dos dados dos EUA.

    
por 02.06.2010 / 21:43
1

Você também pode considerar a configuração da replicação entre regiões, que permite copiar e manter dados de sincronização entre regiões

    
por 14.04.2015 / 11:56
0

Eu trabalhei bastante com o S3 e nunca encontrei uma ferramenta que fizesse isso nativamente. No entanto, não seria tão difícil usar alguns scripts de sincronização s3cmd-sync para manter dois intervalos em sincronia com cada um deles. outro.

    
por 20.04.2010 / 17:34