先日、AWS環境で高可用性構成を作成した際にCloudFrontを使用しました。
その中で設定に手間取ったポイントがありましたので備忘録も兼ねて記しておきます。
作成したAWS環境で高可用性構成 というのが何か知りたい方は以下もご覧いただけますと幸いです。
なお、AWSプランや管理画面はよく変更されるため、2026年3月時点の設定であることをご理解ください。
CloudFrontとは?サービス内容を解説
CloudFrontは、AWS(Amazon Web Services)が提供するCDN(Content Delivery Network)サービスです。
簡単に言うと、「世界中に配置されたキャッシュサーバーを使って、Webサイトの画像や動画、HTMLなどのコンテンツをユーザーに素早く届ける仕組み」です。
競合サービスとしてはCloudflare、Akamai、Fastlyなどがありますが、AWSで環境を構築しているならCloudFront一択です。
CloudFrontを導入するメリット
導入すると以下のようなメリットがあります。
- ページキャッシュ:ページや画像などをキャッシュしてユーザーへ渡すため、オリジンであるWebサーバー等へのアクセスを抑えてコストダウン&負荷耐性が向上
- エッジロケーション:ユーザーと物理的に近いデータセンターにキャッシュを保持してユーザーへ渡すため、表示速度の向上につながる
- AWSコンポーネントとの親和性:AWS連携が容易でサービス間でのデータ転送量が安い
- 無料枠:小規模なサイトであれば実質無料で使用できることも珍しくない
- セキュリティ向上:CloudFrontが間に入りユーザーがWebサーバーを直接見ないためセキュリティが向上・WAF設定も可能
無料枠を超えるアクセス数の多いサイトは費用がかかりますが、高スペックなサーバーを動かし続けるより安く済む場合が多いでしょう。
WordPressでCloudFrontを使用する場合の注意点
メリットは大きいですが、注意点もあります。
- ログイン状態のページがキャッシュされる
- カスタムポリシーを使用できるプランに制限がある
ログイン状態のページがキャッシュされる問題と解消方法
CloudFrontはユーザーがページへアクセスした場合に、
キャッシュがあればキャッシュを返す
キャッシュが無ければオリジンからページを取得しキャッシュを生成
という動作を行います。
そこで問題になるのが、ログイン状態のユーザーです。
WordPressでログインをしている場合、ページ上部の admin bar のようにWordPressログイン状態にのみ表示される要素が存在するため、これをCloudFrontがキャッシュしてしまうと一般ユーザーにも admin bar が表示されるような事態となってしまいます。
つまり、WordPressにログインしたユーザーをキャッシュ対象外にする必要があります。
設定にはCloudFrontのカスタムポリシー作成が必須となりますので、以下の手順でカスタムポリシーを作成のうえCloudFrontのビヘイビアに登録します。
- AWSコンソールからCloudFrontの管理画面を開き、左メニューからポリシーの管理ページを表示

- ページ下部の「キャッシュポリシーを作成」
- cookie「指定された cookie を含める」を選択し以下の3つを追加しポリシーを作成する
comment_author_*、wp-postpass_*、wordpress_logged_in_*

- CloudFrontのディストリビューション、ビヘイビア設定の「デフォルト(*)」を選択し編集
- キャッシュポリシーで作成したカスタムポリシーを選択、オリジンリクエストポリシーをAllViewerに設定し保存

これはWordPressのログインセッションに使用するcookieを持っていればログインユーザーとして扱い、ページをキャッシュしない&キャッシュを表示しない という設定です。
カスタムポリシーを使用できるプランに制限がある
なんと、CloudFrontのディストリビューションが定額料金プランのFreeプラン(0$)・Proプラン(月額15$)はカスタムポリシーが選択できず、ビジネスプラン(月額200$)以上を選べという案内が表示されます。
学習目的や収益の少ないサイトでこの負担は現実的ではありません。
しかし、従量課金プラン(Pay as you go) を使用すればビジネスプランでなくともカスタムポリシーを使用することが可能です。
従量課金プランでも一定の範囲内であれば無料で使用が可能ですので、学習用や小規模なサイトであれば従量課金プランで始めて、アクセス数が増え収益が出るならビジネスプランへの変更を検討するのがよさそうです。
無料枠については今後変更される可能性があるため、AWS公式の情報をご確認のうえ検討してください。
まとめ
最初は定額プランのFreeプランで設定していたのでカスタムポリシーが設定できず手間取りました。
学習目的でお金をかけたくなかったため、従量課金プランでも無料枠があってくれてラッキーでした。
とはいえCloudFront自体はかなり安価なので、よほど記事がバズったりしなければ高額な請求などは無いかなとは思います。