この度、弊社ゼロエグレス料金 オブジェクトストレージプラットフォームであるCloudflare R2の3つの新機能を発表します。
イベント通知:R2バケット内のデータが変更されると、自動的にWorkersを起動し、アクションを実行します。
Super Slurper Google Cloud Storage:Google Cloud StorageからCloudflare R2に簡単にデータを移行できます。
アクセス頻度の低いプライベートベータ:頻繁にアクセスされないデータの保存にかかる費用を削減します。現在、プライベートベータ提供中です(サインアップはこちら)。
イベント通知オープンベータ
データのライフサイクルは、R2バケットにアップロードした直後に止まらないことが多くなっています。イベントデータを変換してデータウェアハウスにロードしたり、メディアファイルを後処理したりする必要が発生することがあるでしょう。弊社では、R2のイベント通知をオープンベータでリリースします。これにより、変化を続けるデータによってアプリケーションやワークフローを構築できるようになります。
イベント通知は、データに変更があるたびにキューにメッセージを送信することで動作します。これらのメッセージはコンシューマーWorkerによって受信され、そこで必要なアクションを定義できます。
R2バケットでイベント通知を有効にするには、以下のWranglerコマンドを実行しまてください(bucket_nameとqueue_nameはそれぞれバケット名とキュー名に置き換えてください):
R2バケットへのイベント通知の設定方法、およびベータ期間中の制限事項については、ドキュメントをご参照ください。
wrangler r2 bucket notification create <bucket_name> --event-type object-create --queue <queue_name>
Google Cloud Storage向けSuper Slurper
Super Slurperは、Google Cloud Storage(GCS)からCloudflare R2にデータを移行できるようになりました。弊社では昨年、1回限りの包括的なデータ移行を高速に、信頼性が高く、かつ簡単に行えるようにすることを目指し、Super Slurperをリリースしました。移行VMを円光する必要はなく、複雑なリトライロジックを実装する必要もありません。以来、何千人もの開発者がSuper Slurperを活用し、AWS S3からR2へペタバイト規模のデータを移行しています。これにより、Google Cloud Storageをご利用になっているお客様は、Cloudflare R2にデータを移行し、Cloudflareのゼロエグレス料金の恩恵を受けられるようになっています。
GCSからのデータ移行を開始するには
Cloudflareのダッシュボードで、R2→Data Migrationを選択します。
ファイルを移行するを選択します。
ソースバケットプロバイダにGoogle Cloud Strageを選択します。
バケット名と関連する認証情報を入力し、Nextを選択します。
R2バケット名と関連する認証情報を入力し、Nextを選択します。
移行の詳細を確認の上、ファイルを移行するを選択します。
移行ジョブのステータスは、ダッシュボードでいつでも確認できます。Super Slurperの使用方法は、こちらからドキュメントを参照してください。
アクセス頻度の低いプライベートベータ
弊社は、新たにプライベートベータストレージクラスに「Infrequent Access」を導入しました。アクセス頻度の低いデータ(ロングテールのユーザー作成コンテンツ、ログなど)が関連するユースケースでは、Infrequent Accessを使用することで、パフォーマンスと耐久性を維持しながら、ストレージに支払う費用を抑えることができます。
以下は、新たなInfrequent Accessストレージクラスを用い、Workersを使ってオブジェクトをR2バケットにアップロードする例を示しています。
オブジェクトをInfrequent Accessに直接アップロードするだけでなく、オブジェクトのライフサイクルポリシーを定義し、一定期間が経過してデータに頻繁にアクセスする必要がなくなった場合、データをInfrequent Accessに移動させることもできます。将来的には、データのストレージクラスを自動的に最適化することで、手動でルールを作成する手間を省き、変化するデータアクセスパターンに対応できるようにする予定です。
# wrangler.toml
[[r2_buckets]]
binding = 'MY_BUCKET'
bucket_name = '<YOUR_BUCKET_NAME>'
# index.ts
export default {
async fetch(request: Request, env: Env): Promise<Response> {
if (request.method === "PUT") {
await env.MY_BUCKET.put("myobject", request.body, storageClass: "InfrequentAccess");
return new Response("Put object successfully!");
}
return new Response("Not a PUT!");
}
}
Infrequent Accessストレージクラスに保存されたデータの場合、料金の構成要素はR2でお馴染みのものと同様で、ストレージ、クラスAオペレーション(書き込み、リスト)、クラスBオペレーション(読み取り)、データ検索(処理)となっています。データ検索は、Infrequent Accessストレージクラスのデータを検索する際にGB単位で課金され、低価格でストレージを提供できます。これは、アクセス頻度の低いデータ用に最適化されたストレージからデータを取得するために必要な追加の計算リソースを反映したものです。また、いざデータを使用する必要が生じた場合でも、エグレス料金はかかりません。
.tg {border-collapse:collapse;border-spacing:0;} .tg td{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px; overflow:hidden;padding:10px 5px;word-break:normal;} .tg th{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px; font-weight:normal;overflow:hidden;padding:10px 5px;word-break:normal;} .tg .tg-nltl{background-color:#f56b00;text-align:left;vertical-align:top} .tg .tg-0lax{text-align:left;vertical-align:top}
Component | Price |
---|---|
Storage | $0.01 / GB-month |
Class A Operations | $9.00 / million requests |
Class B Operations | $0.90 / million requests |
Data Retrieval (Processing) | $0.01 / GB |
Egress (or Data Transfer) | $0 - No Charge |
構成要素
価格
ストレージ
$0.01 / GB月
クラスAオペレーション
$9.00 / 100万リクエスト
クラスBオペレーション
$0.90 / 100万リクエスト
データ検索(処理)
0.01 ドル/GB
エグレス(またはデータ転送)
$0 - 変更なし
Infrequent Accessのプライベートベータへの参加にご関心の方へ
プライベートベータのウェイティングリストにご登録ください。
ご意見をお聞かせください
ぜひ、ご意見をお聞かせください!R2やデータ移行サービスに関するご意見は、Cloudflare Developer Discordにご参加ください。R2について詳しくお知りになりたい方は、まずはR2の開発者向けドキュメントをご覧いただくか、節約額を計算できるPricing Calculatorをご利用ください。