如何将 AWS S3 存储迁移到另一个账户或服务

在这里插入图片描述
AWS 的简单存储服务 (S3) 非常适合存储大量对象,但它也是一种与许多其他竞争服务兼容的 API。如果您想离开 AWS,转移 S3 存储桶很容易。

这是如何运作的?

如果您传入和传出的两个服务都兼容 S3,您可以简单地使用类似 的实用程序rclone,配置为访问每个服务,将所有项目传输过来。例如,您可以从 S3 转移到 Digital Ocean 的兼容 Spaces 服务,或者从一个账户中的 S3 存储桶转移到另一个账户。

为了处理传输,rclone 将从源bucket中读取,找到所有需要传输的文件,并将它们克隆到目标bucket中。rclone 还可以处理文件更新,如果在传输时写入源存储桶,这会很有用。

就传输时间而言,可能需要一段时间,具体取决于存储桶的大小。文件数量也是一个问题,因为rclone 每次传输都会增加开销。如果您有数百万个或数 TB 的文件,您应该为数小时的传输时间做好准备。
幸运的是,您可以在存储桶仍在积极写入时执行大型初始传输。在最终切换之前,您可能需要一些停机时间来确保存储桶同步。如果这是一个问题,还有其他工具可用于无缝传输,包括商业工具,如NetApp Cloud Sync,可以将多个存储桶同步在一起。

一些云服务,如 Google Cloud Platform,有自己的服务可以处理传输。如果您要迁移到支持此功能的平台,您可能希望改用他们的服务。

设置 rclone

最简单的方法是rclone 在自己的服务器上设置来处理传输操作。您需要在后台运行它,或者通过一个tmux 窗口运行它,这样您就可以断开与长时间传输的连接。
rclone 可从大多数包管理器获得:

apt install rclone -y

rclone 主要用于在本地或 SSH 兼容服务器之间传输文件,因此需要一些配置来处理 S3 服务之间的传输。该文件位于:

~/.config/rclone/rclone.conf

添加具有以下配置的新块,将其连接到您的 AWS 账户(不是特定的存储桶):

[s3]
type = s3
env_auth = false
acl = private
access_key_id = ACCESS_KEY
secret_access_key = SECRET_KEY
region = REGION
location_constraint = LOCATION_CONSTRAINT

您需要使用您的访问密钥和密码填写配置,然后输入您的存储桶区域。您可以从 AWS 文档 中找到区域列表。

您需要为要转移到的其他服务填写另一个块。如果您在 AWS 账户之间移动,则需要一个单独的密钥来访问该账户。如果您要迁移到 DO Spaces 之类的服务,则需要定义另一个配置了新端点的块:

[spaces]
type = s3
env_auth = false
acl = private
access_key_id = ACCESS_KEY
secret_access_key = SECRET_KEY
endpoint = nyc3.digitaloceanspaces.com

在任何情况下,您都需要在块标题上为其指定一个新名称,因为它们是两个独立的遥控器。

执行转移

配置完成后,您将能够查看所有可能的遥控器

rclone listremotes

s3:
spaces:

在这里插入图片描述
您可以使用端点名称后跟冒号和存储桶名称来查看存储桶的内容。

rclone tree s3:source-bucket

在这里插入图片描述
然后,您可以运行同步,并使用一些额外的标志以获得最佳性能:

rclone sync source:/source-bucket \
destination:/destination-bucket \
-P -v --log-file /var/log/rclone/rclone-1.log \
--create-empty-src-dirs --s3-chunk-size 20M \
--s3-upload-concurrency 64 --checksum

该-P 标志将允许您在终端中以交互方式查看进度,并估计需要多长时间。

rclone sync 将简单地扫描源存储并更新目标存储桶。您可以在传输完成后继续修改源存储。完成后,您可以运行其他传输并继续将存储同步在一起。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mikes zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值