Cloudflare Rules でリダイレクトやキャッシュ設定を実施する

2021.12.15

こんにちは、yagiです。

前回の記事 では、Cloudflareへ接続する方法を記載しました。

今回はCloudflare Rules を利用して、リダイレクトの設定やキャッシュ設定を簡単に実施する方法について、紹介したいと思います。

CloudflareのPage Rulesを理解した上で設定する(Page Rulesチュートリアル) 

Cloudflare Rules とは

Page Ruleでは、リクエストが定義されたURLパターンの1つに一致する時は、いつでも特定のアクションがトリガーされます。Page Ruleの作成方法と利用できる様々な設定について説明します。

Rules では、上記URL にある通り、特定のURLに対して、様々なアクションを行うようコンソール上から設定を行うことが可能ですが、今回はリダイレクトの設定とキャッシュ設定について紹介したいと思います。

リダイレクトの設定について

特定のURLに対して、コンソール上でリダイレクトを設定することができます。 URLの指定にはワイルドカードの使用が認められているため、URLをパターン化して定義することが可能です。

まずは、左サイドのRules からPageRules を選択します。 Create Page Rule を押下します。

なお、前回Freeプランで作成したアカウントのためルールの設定上限数は3となっています。こちらはプラン変更にて引き上げ可能となります。

例えば、

https://www.XXXXXXXX-test.de

といったURLを、

https://XXXXXXXX-test.de

にリダイレクトしたい場合は、 以下のように設定できます。

Save and Deploy を押下して登録します。一覧に設定された Rule と残りの上限数が表示されます。

キャッシュの設定について

キャッシュについての設定もコンソール上で行うことができます。

まずは全体の設定について紹介します。左タブの Caching から Configuration を選択します。

今回は、Caching Level を Standard 、 Browser Cache TTL を RespectRespect Existing Headers にてそれぞれ設定しています。

次にRulesで個別にキャッシュのルールを設定することができます。 デフォルトでのキャッシュファイルは以下のページにある通りとなっていますので、それ以外のファイルをキャッシュさせたい場合は、個別にRulesで設定します。

Default cached file extensions

Rulesではキャッシュ対象のサイトのURL全体(https://www.XXXXXXXX/*)に対して、Cache Level をCache Everything に設定し、Browser Cache TTL を一ヶ月、Edge Cache TTLを7days に設定しています。

設定した後の効果の確認として、キャッシュヒット率を以下より確認できます。 こちらを参照しながら、コンソール上でチューニングを行うことが可能です。

チューニングの結果、90%以上のヒット率が確認出来、体感的にも表示スピードが大幅に改善されました。オリジンからの配信も大幅に減らすことが出来、負荷軽減に繋がっています。

新機能 Transform Rules の設定について

前回の記事 で記載した構成で、Cloudflareを必ず経由させた通信をさせるため、 新機能である Transform Rules を使って、Cloudflareを通過した通信についてHTTPSリクエストヘッダーに静的な値を追加し、AWS WAF をCloudFrontの手前に設置してその値がない場合は通信をブロックする、という設定を実施しました。

Transform Rules から以下のように簡単に設定ができます。

以下のサポートページにも説明が記載されています。

Add an HTTP request header with a static value 

AWS WAF側でのルール設定は以下の通りです。

この後、AWS側でKinesis FirehoseからS3へログを保存させるよう設定すれば、完了です。

結論

Cloudflare Rules を活用して、リダイレクトルールやキャッシュ周り、HTTPヘッダーの追加など、コンソールから簡単に設定する方法をご紹介しました。

コンソール上での操作もシンプルでわかりやすく、簡単で、関連ドキュメントの説明も充実しているので、活用しやすかったです。