Meu plano atual de mover um bucket S3 da região AWS us-west-1
para a região AWS us-west-2
, mantendo o mesmo nome de bucket, parece altamente ineficiente, pois copia o bucket inteiro duas vezes:
# Create new bucket in us-west-2
aws s3 mb s3://temp-bucket --region us-west-2
# Copy files from old to new bucket in us-west-2
aws s3 sync s3://my-bucket s3://temp-bucket --source-region us-west-1 --region us-west-2
# Delete the old bucket in us-west-1
aws s3 rb --force s3://my-bucket
# Create new bucket in us-west-2
aws s3 mb s3://my-bucket --region us-west-2
# Copy files from old to new bucket
aws s3 sync s3://temp-bucket s3://new-bucket
Como posso mover com eficiência um bucket S3 para uma nova região da AWS, mantendo o mesmo nome de bucket?
Você não pode. Para piorar a situação, você também não pode renomear um balde e pode levar até 24 horas para que o nome antigo do balde esteja disponível para reutilização.
Há uma pequena alternativa ao que você tem aí: em vez de executar comandos AWS CLI, você pode configurar a replicação entre regiões entre os buckets. Coloque tudo no balde us-west-2 e comece a usá-lo temporariamente. Remova o bucket us-east-1, aguarde 24 horas, recrie o bucket em us-west-2 e use a replicação na mesma região para colocar tudo no novo bucket.
Isso elimina a possibilidade de uma interrupção na sessão da CLI local, interrompendo a replicação, e mantém o bucket atualizado constantemente até que você remova os buckets antigos. Sugiro fazer uma rápida análise dos custos envolvidos na configuração disso.
Uma alternativa é usar o console AWS para iniciar as transferências de arquivos:
Ainda é necessário criar um novo bucket duas vezes, mas a cópia é bastante rápida:
Observe que a movimentação de dados entre diferentes regiões da AWS acarreta um custo.