できること
Cloudflare R2の公開バケットにHTMLをアップロードし、発行されたパブリックURLを相手に送るだけでページを確認してもらえます。Cloudflareのエッジネットワーク経由で配信されるため、日本国内からのアクセスは高速で、モバイル回線からでも快適に表示されます。
R2はS3互換APIを持つため、既存のS3向けCI/CDワークフローを少ない修正で流用できます。コスト面ではS3より安価でエグレス料金がかからない点も魅力です。ただしこれらはインフラとしての優位性であり、レビュー運用に必要な「誰がいつ見たか」「期限後にアクセスを止められるか」とは別の話です。
- 相手がログインなしで開ける状態か確認する
- PCとスマホで最低1回ずつ表示を確認する
- 内部情報・個人情報・不要な外部送信が残っていないか見る
- レビュー期限と修正時の差し替え方を決めておく
できないこと
R2の公開バケットはURLを知る全員が閲覧可能であり、特定のメールアドレスやパスワードによる認証を標準機能として提供していません。Cloudflare AccessをR2のカスタムドメインに設定することで認証ゲートを追加できますが、設定にはCloudflare Teamsのライセンスと独自ドメインの準備が必要です。
公開期限の自動管理もR2単体では行えません。R2にはS3のObject Expirationに相当するライフサイクルルールがありますが、オブジェクトを削除するだけで「期限切れページ」を表示する機能はなく、削除後は単に404が返るだけです。レビュアーに期限が切れたことを伝える手段がありません。
認証と期限の違い
ギガサイト便では、アップロード時にパスワード・メール認証・会社ドメイン認証を選択して発行でき、レビュアーは設定された認証をパスしないとページが開きません。R2でこれを実現するにはCloudflare WorkersでカスタムJWT認証を実装するか、Cloudflare Accessを設定する必要があり、どちらも一定の技術知識と時間が必要です。
期限設定については、ギガサイト便なら「7日後に自動失効」を選択するだけです。R2でLifecycleルールを組み合わせても、削除後の体験(レビュアーが「期限切れ」と理解できるページが表示されない)の差が残ります。期限管理を確実に行いたいなら専用サービスの方が運用コストが低くなります。
- 誰でも見てよい: URL共有のみでもよいが、検索除外は確認する
- 特定の相手だけ: パスワードまたはメール認証を使う
- 会社内だけ: 会社ドメイン認証を検討する
- 短期レビュー: 期限を設定して古いURLを残さない
差し替え・レビュー運用
R2でコンテンツを更新するには、wrangler CLIかS3互換APIで同じキー名でファイルをアップロードし直します。Cloudflareのキャッシュが残る場合はCloudflareダッシュボードの「キャッシュのパージ」機能でURLを指定してクリアできます。差し替え後はレビュアーに「強制リロード(Ctrl+Shift+R)してください」と伝えるのが確実です。
レビューフローを定型化する場合、R2へのアップロード→URLをSlackに投稿→レビュー完了後にオブジェクト削除という手順をRunbookとして整備しておくと属人化を防げます。ただし削除の実行漏れが発生しやすいため、定期的にバケットの内容物を棚卸しするスクリプトを組んでおくことを推奨します。
- 確認してほしい観点を3つ以内に絞る
- 期限と返信先を明記する
- 修正後も同じURLで見られるか伝える
- 最終版と途中版が混ざらないようタイトルを付ける
向いているケース早見表
R2公開バケットが向くのは「公開しても問題のない静的コンテンツの継続配信」「S3からの移行でインフラコスト削減が目的」「Cloudflare Workers連携を前提としたカスタム認証を構築できるチーム」です。一方ギガサイト便が向くのは「社外の特定人物への一時的な共有」「機密情報を含むレビューページ」「期限管理を確実にしたい」ケースです。
シンプルな判断基準として「認証と期限を設定UIで管理したいか、自分で実装・保守したいか」という問いが役立ちます。後者を選ぶ技術力とコストがあるならR2+Workers、そうでなければ専用サービスを選ぶのが合理的です。
よくある質問
Cloudflare R2の公開バケットURLをSNSで拡散されてしまった場合、即座にアクセスを止める方法はありますか?
バケットをカスタムドメイン経由で公開している場合はCloudflare Accessを有効化してアクセスを止められます。パブリックバケットのR2.dev URLの場合はバケットのパブリック設定を無効化することで対応できますが、DNS伝播に時間がかかります。
R2公開バケットにアップロードしたHTMLにCloudflare Accessで認証を追加するとき、レビュアーはどんな手順でアクセスしますか?
レビュアーはURLを開くとCloudflareのログイン画面にリダイレクトされ、許可されたメールアドレスにワンタイムコードが送られます。GoogleやMicrosoftのOAuthログインも設定次第で使えます。
R2とギガサイト便を組み合わせて使う場合、どのような役割分担が考えられますか?
プロダクション配信や長期公開コンテンツはR2で行い、社外レビューや期限付きの一時共有はギガサイト便で行うという分担が合理的です。用途ごとにツールを使い分けることで管理が明確になります。