如何才能有效地将 S3 存储桶移动到新的 AWS 区域,同时保持相同的存储桶名称?

如何才能有效地将 S3 存储桶移动到新的 AWS 区域,同时保持相同的存储桶名称?

我目前的计划是将 S3 存储桶从 AWS 区域移动us-west-1到 AWS 区域us-west-2,同时保持相同的存储桶名称,这似乎非常低效,因为它将整个存储桶复制两次:

# 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

如何才能有效地将 S3 存储桶移动到新的 AWS 区域,同时保持相同的存储桶名称?

答案1

你不能。更糟糕的是,你也无法重命名存储桶,而且可能需要长达 24 小时才能重新使用旧存储桶名称。

除了运行 AWS CLI 命令之外,您还可以设置跨区域复制在存储桶之间。将所有内容放入 us-west-2 存储桶中,开始临时使用该存储桶。删除 us-east-1 存储桶,等待 24 小时,在 us-west-2 中重新创建存储桶,然后使用同区域复制将所有内容放入新存储桶中。

这消除了本地 CLI 会话中断导致复制停止的可能性,并使存储桶始终保持最新状态,直到您删除旧存储桶。我建议快速查看一下设置此项所涉及的成本。

答案2

一种替代方法是使用 AWS 控制台启动文件传输:

在此处输入图片描述

在此处输入图片描述

仍然需要创建两次新存储桶,但复制速度相当快:

在此处输入图片描述

请注意在不同的 AWS 区域之间移动数据招致成本。

相关内容