O novo oficial AWS CLI suporta nativamente a maioria das funcionalidades de s3cmd
.
aws s3 sync s3://oldbucket s3://newbucket --source-region us-west-1 --region us-west-2
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.
Eu acho que você pode executar:
s3cmd --recursive cp s3://oldbucket/ s3://newbucket
Deve copiá-lo diretamente.
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:
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.
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.
Tags amazon-ec2 amazon-s3