Cloudflareはこのほど、Amazon S3からCloudflare R2にデータをコピーするインクリメンタルデータ移行サービス Sippyのオープンベータを発表した。Sippyは、既存のアプリケーションフロー内のリクエストを活用し、同時にオブジェクトをR2にコピーすることで、移行特有のegress料金を最小限に抑えるように設計されている。
今年の初めに、Cloudflareは他のオブジェクトストレージプロバイダーからCloudflare R2に大量のデータをコピーするデータ移行ツールであるSuper Slurperを発表した。新しいオプションは、開発者がアクセスされたデータのみを移動したいシナリオを対象としている。CloudflareのシニアプロダクトマネージャーであるPhillip Jones氏と、CloudflareのプリンシパルシステムエンジニアであるVlad Krasnov氏は、既存の Super Slurper に対する Sippy の利点を次のように説明している。
Super Slurperは、すべてのデータを一度にR2に移行したい場合に最適ですが、時間をかけて段階的にデータを移行したいシナリオもあります。例えば、AWSのデータ転送料金の一時的な前払いを避けたい場合はどうでしょう。または、もうアクセスされないであろうレガシーデータから、必要なものだけを移行したい場合はどうでしょうか。
新しいオプションは、クライアントとソース・オブジェクト・ストレージの中間層として機能する。Workers、S3 API、またはパブリック・バケットからオブジェクトがリクエストされた際、同一のオブジェクトが見つかればCloudflare R2から提供される。もし無ければ、オブジェクトはソースであるS3バケットから返却されると同時にR2へとコピーされる。putやdeleteなど、R2に対する全ての操作は機能し続ける。Jones氏とKrasnov氏はこう付け加える。
Sippyはベンダーのロックインに対処するだけでなく、ストレスと時間のかかる移行を過去のものにします。アプリケーション内のS3エンドポイントを置き換えるか、ドメインを新しいR2バケットにアタッチするだけで、データのコピーが開始されます。
ドキュメントでは、cURLを使って既存のR2バケットでSippyを有効にする方法を紹介している。
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>"}'
Cloudflareは、ダッシュボードから段階的な移行設定ができるようにし、移行の進捗状況や、コピーされたオブジェクトのegress料金がどれだけ節約できたかを示すアナリティクスを提供する予定だ。
Sippyは現在オープンベータ版で、移行元としてAmazon S3のみをサポートしている。バースデーウィーク中には、AmazonのIPv4税の支払いを回避する方法、reCAPTCHAの代替手段であるTurnstileの一般提供、およびSQLクエリを高速化し、クラウドマネージドデータベースの負荷とコストが削減されるサービスであるHyperdriveなど、Cloudflareが「レガシークラウドプロバイダー」と呼ぶものからの移行をターゲットとしたその他の発表もあった。