0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Google Cloud Storage (GCS) を画像ストレージとして使って Cloudflare の無料枠の CDN で節約する

Last updated at Posted at 2025-08-15

GCS の課金は「保存しているデータ量」「オペレーション料金」「ネットワーク料金」があります。

GCS に置いた画像を公開して、 html の img タグなどでアクセスすると、アクセスのたびにネットワーク料金がかかるわけですが、 Cloudflare の無料の CDN を使うことで、画像に一度アクセスしたら、キャッシュの保存期間が切れるまでは CDN から読み込むので、料金を節約できると ChatGPT に教えてもらったので設定してみました。

私は初心者です、 ChatGPT に聞きながら書きました、間違いなどありましたら教えていただけると幸いです m(_ _)m

参考

上記参考を見ながら、わからない部分は ChatGPT に聞きながら進めた内容を記載しています。

前提

  • CDN 配信用にドメインを取得しておく
    • samplestorage.net
      • 今回はお名前.com でこの投稿用に取得しました
  • Cloudflare のアカウントを持っている
  • GCP のアカウントを持っている

この投稿に記載しているバケットなどはすでに削除しました

Cloudflare とドメインの設定

Cloudflare の設定画面に自分のドメインを入れて「続行」

1.png

フリープランを選択

2.png

タイプ「CNAME」を選択、名前「cdn」、ターゲット「c.storage.googleapis.com」を入力、プロキシ(オレンジ雲)はONにして、次の画面に進む。

※私はここで間違って入力して、後から Cloudflare の設定画面で編集しましたが、挙動などに違いはないはず

3.png

↓3だけお名前.comの画面から設定をしました

5.png

お名前.comの画面で設定↓

6.png

ネームサーバー設定後に Cloudflare の設定画面から先に進もうとしましたが、ネームサーバーの設定が反映されるまで時間かかるという都合で、エラーになりました。
数時間ぐらい経つと Cloudflare からメール↓が来て、自動で設定が完了までされたことを確認できました。

gmail のスクショ

7.png

ドメインの所有権をGoogleに証明

自分のドメイン名と同じ名前でバケットを作る必要があるが、今のままだとドメイン名の使用が承認されてないことのエラーが GCS の画面でバケット作成時に出てしまいます。

バケット名 cdn.samplestorage.net を作成するには、そのドメイン名の使用が承認されていることを確認する必要があります。確認の手順については、「バケットに名前を付ける」ステップのリンクに従ってください。

スクリーンショット 2025-08-15 19.16.02.png

なのでドメインの所有権を証明する作業をします。

Google Search Console を開く

8.png

画面の指示に従って操作するだけで DNS の設定まで自動で行ってくました↓

この投稿を書く前に何度か試してましたが、以下のような画面操作ではなくても、自分でお名前.comのDNSの設定画面から TXT レコードを設定しても証明まですることができました。

スクリーンショット 2025-08-15 19.22.39.png

スクリーンショット 2025-08-15 19.23.09.png

9.png

スクリーンショット 2025-08-15 19.24.09.png

GCS の設定

バケット作成

バケット名に「cdn.samplestorage.net」を入力

スクリーンショット 2025-08-15 19.33.35.png

Region (単一リージョン)で日本国内にしておけば良い思います

スクリーンショット 2025-08-15 19.34.47.png

「このバケットに対する公開アクセス禁止を適用する」のチェックを外す

スクリーンショット 2025-08-15 19.38.55.png

それ以外はデフォルトの設定で作成しました

画像などを公開する設定

「権限」タブから新しいメンバーを「allUsers」、ロールを「Storage オブジェクト閲覧者」に設定する

どうでもいいですが、ロールの別の選択肢に「Storage バケット閲覧者」という似てる項目もあり、こちらを間違って設定してしまうと、画像が公開 URL からアクセスできなくてはまってました。

10.png

いらすとやから適当な画像をバケットにアップロードしました

11.png

12.png

ブラウザから URL を直リンクで画像にアクセスできたことを確認できました

スクリーンショット 2025-08-15 19.52.28.png

CDN から画像にアクセス確認とキャッシュの設定

ここまでの設定がうまくいっていれば https://cdn.samplestorage.net/ファイル名 で GCS の画像にアクセスができるはず

13.png

以下、 ChatGPT に聞いた設定をそのままやってみました

ChatGPT によると GCS 側のキャッシュ設定が短いと、Cloudflare側だけ設定しても短時間で取り直してしまう場合がある、とのことだがこの挙動についてまでは確認しませんでした

Cloudflare の設定画面からブラウザのキャッシュ時間を最大にする

スクリーンショット 2025-08-15 19.57.29.png

ページルールを設定

AI によると「オリジンキャッシュコントロール」を「OFF」、「エッジキャッシュTTL」を長く設定(1年など) にすると Cloudflare のサーバー側でキャッシュされるとのことです

スクリーンショット 2025-08-15 20.02.02.png

スクリーンショット 2025-08-15 21.23.41.png

AI によると「cf-cache-status」が「HIT」ならばキャッシュされている状態であり、それが確認できました。
また、Age が増えるほど長くキャッシュされているとのことでした

17.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?