Não conheço uma solução empacotada para fazer isso, mas é essencialmente apenas uma lista de buckets e, em seguida, copia PUT cada objeto do bucket dos EUA para o bucket da UE. A API PUT-copy suporta "if-modified-since" e "if-none-match", para que você possa executá-la repetidamente sem duplicar esforços:
http://docs.amazonwebservices.com/AmazonS3/2006-03-01/ API / index.html? RESTObjectCOPY.html
Para uma migração ao vivo, sugiro a seguinte abordagem:
- Primeira etapa opcional: se você tiver uma quantidade enorme de dados para migrar, considere usar o AWS Import / Export para capturar a primeira captura instantânea dos dados em um dispositivo físico nos EUA e enviá-los fisicamente para a UE. Isso pode economizar tempo e dinheiro.
- Configure um script para migrar dados dos EUA para a UE usando o if-modified-since or if-none-match, conforme descrito acima. Faça com que seja inteligente o suficiente para não acumular dados recentes da UE com dados antigos dos EUA (quando você chegar à etapa 5 abaixo). Execute-o continuamente em um loop até que os dois baldes estejam aproximadamente no mesmo estado.
- Modifique seu aplicativo Web para colocar dados nos baldes dos EUA e da UE ao mesmo tempo, continuando a OBTER dados exclusivamente dos EUA.
- Continue executando o script de migração até ter certeza de que os buckets estão exatamente no mesmo estado (ou o mais próximo possível, dada a consistência eventual).
- Modifique o aplicativo Web novamente para OBTER dados exclusivamente do bloco da UE.
- Agora você pode desativar o script de migração.
- Procure eventuais anomalias de consistência e limpe-as.
- Modifique o aplicativo Web para parar de COLOCAR dados no balde dos EUA.
- EXCLUIR tudo no balde dos EUA.
Convém usar o Armazenamento de redundância reduzida S3 no seu bloco da UE 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.