在 2023 年初,我们发布了 Super Slurper,这是一款数据迁移工具,使得可以轻松地将大量数据从其他云对象存储提供商复制到 R2。自从发布以来,开发人员已使用 Super Slurper 成功进行了数千次向 R2 的迁移!
虽然 Super Slurper 非常适合一次性将所有数据迁移到 R2,但在某些情况下,您可能希望随着时间的推移逐步迁移数据。也许您想避免一次性支付 AWS 数据传输的前期费用?或者您有可能永远不会访问的旧数据,而您只想迁移需要的数据?
今天,我们宣布 Sippy 开始公测,它是一种渐进式迁移服务,可根据要求将数据从 S3(其他云提供商即将推出!)复制到 R2,而无需支付通常与大量数据迁移关联的不必要的云出口费用。除了解决供应商锁定问题外,Sippy 还使压力大、耗时长的迁移成为历史。您所需要做的就是替换应用程序中的 S3 端点,或者将域附加到新的 R2 存储桶,数据就会开始复制过去。
工作原理
Sippy 是一种渐进式迁移服务,直接内置在 R2 存储桶中。通过利用应用程序流中的请求,您可以减少特定于迁移的出口费用,因为您已经支付了出口费用,可以同时将对象复制到 R2。它的工作原理如下:
当从 Workers、S3 API 或公共存储桶请求对象时,如果能找到该对象,就会从您的 R2 存储桶提供它。
如果在 R2 中找不到该对象,它将同时从 S3 存储桶返回并复制到 R2。
注意:某些大型对象可能需要多次请求才能复制。
这意味着复制对象后,后续请求将从 R2 提供,您将立即开始节省出口费用。
开始将数据从 S3 逐步迁移到 R2
创建 R2 存储桶
要开始渐进式迁移,首先需要创建一个 R2 存储桶(如果还没有的话)。要从 Cloudflare 仪表板创建新的 R2 存储桶:
登录 Cloudflare 仪表板并选择 R2。
选择“创建存储桶”。
命名存储桶,然后选择“创建存储桶”。
要了解创建 R2 存储桶的其他方法,请参阅有关创建存储桶的文档。
为 R2 存储桶启用 Sippy
接下来,为创建的 R2 存储桶启用 Sippy。在公测期间,您可以使用 API 执行此操作。下面是如何使用 cURL 为 R2 存储桶启用 Sippy 的示例:
有关开始使用的更多信息,请参阅文档。启用后,如果 R2 存储桶中还没有数据,对存储桶的请求将开始从 S3 复制数据。
curl -X PUT https://api.cloudflare.com/client/v4/accounts/{account_id}/r2/buckets/{bucket_name}/sippy \
--header "Authorization: Bearer <API_TOKEN>" \
--data '{"provider": "AWS", "bucket": "<AWS_BUCKET_NAME>", "zone": "<AWS_REGION>","key_id": "<AWS_ACCESS_KEY_ID>", "access_key":"<AWS_SECRET_ACCESS_KEY>", "r2_key_id": "<R2_ACCESS_KEY_ID>", "r2_access_key": "<R2_SECRET_ACCESS_KEY>"}'
使用 Super Slurper 完成迁移
您可以根据需要运行渐进式迁移,但您最终可能想完成迁移到 R2。为此,您可以将 Sippy 与 Super Slurper 搭配使用,轻松将尚未访问的剩余数据迁移到 R2。
接下来?
我们对公测感到高兴,但这只是一个起点。下一步,我们计划在 Cloudflare 仪表板上配置渐进式迁移,并提供分析功能,向您显示迁移的进度,并且您无需为到目前为止已复制过来的对象支付出口费用,从而节省了多少费用。
如果您希望开始将数据逐渐迁移到 R2,并对我们下一步的工作有任何疑问或反馈意见,我们鼓励您加入我们的 Discord 社区进行交流!