Cloudflare R2がGA(一般公開)されてパブリックアクセス&独自ドメイン設定が可能になりました!

2022.09.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

どうも、ベルリンオフィスの小西です。

今週はCloudflareのGA Weekですね。 それに伴ってこの度、ベータ版だった Cloudflare R2 もGA(一般公開)されました。

Cloudflare R2とは

Cloudflare R2はAmazon S3互換のオブジェクトストレージサービスで、Cloudflare Workersから操作できるWorkers API、S3互換の(つまり CreateBucketListObjects などが使える)API、どちらもサポートしています。

エグレス料金はかからず、下記3つの要因のみで費用が決まる価格設定が魅力です(無料利用範囲も大きい)。

  • ストレージ … $0.015 / GB (月額)
  • クラスA操作 … $4.50 / 100万回
  • クラスB操作 … $0.36 / 100万回

今回のGAとともに「Public Access」と「Domain Access」の機能が使えるようになっていたので試してみました。

パブリックアクセス(Public Access)

これまでR2では、アップロードされたオブジェクトはデフォルトでのパブリックアクセスはできませんでした。そのためWorkers側から R2 Bucket を Bindings してオブジェクトをgetする、S3互換APIでアクセスキーを生成するなどの処理が必要でした。

このパブリックアクセスを有効化することで、外部からのアクセスが可能なPublic Bucket URLが発行されます。これにより `https://pub-{BUCKET_UNIQUE_ID}.r2.dev/{FILE_NAME}` からオブジェクトにアクセスできるようになります。

※オブジェクトアップロード時に発行されるエンドポイント( httpe://{ACCOUNT_ID}.r2.cloudflarestorage.com/{BUCKET_NAME}/{FILE_NAME} )とは別な点に注意

↓有効化はダッシュボードからワンクリックで可能です。

Cloudflare R2

ドメインアクセス(Domain Access)

バケットにドメインを直接付与することも可能になりました(これまではバインドしたWorkersを任意のドメインにルートすることなどで可能だった)。

ドメインはCloudflareアカウントで管理しているものである必要があります。

サブドメインでも指定可能です。

↓有効化する場合、ダッシュボードからドメインを入力します。

Cloudflare R2

その後DNSレコードのエイリアスの追加を許可します。

Cloudflare R2

ドメイン追加後、Statusが「Initializing」から「Active」になると利用可能です。 Cloudflare R2

先ほどのPublic Bucket URLを今回設定したドメインに差し替えてみると、そちらでもオブジェクトにアクセスできるようになっているはずです。

Cloudflareで独自ドメインを充てることで、Cloudflare Access、Cache、ボット管理などの他の機能を連携させられるのが強みです。

さいごに

無料利用範囲が非常に大きいので、個人の開発用途であればこれで賄えそうです。

  • データ保存 … 10GB / 月
  • クラスA操作 … 100万回 / 月
  • クラスB操作 … 1000万回 / 月

ファイル公開も今回で簡単になり、権限周りがシンプルかつ必要十分なのも個人的にありがたいです。

今回は試していませんが、Presigned URL(署名付きURL)機能も有効になりました。

S3互換のAPIでファイル移行が容易な点や、ダウンタイムなしの継続的マイグレーションやライフサイクル機能の実装予定もあり、利用者ターゲットが非常に明確なのが面白いです。今後ますます利用者が増えそうなサービスかと思います。

参考