3
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?

More than 3 years have passed since last update.

Oracle Cloud Infrastructure(OCI) WAFのキャッシュを使ってWebページのレスポンス改善

Posted at

はじめに

OCIのWAFにはキャッシュ機能があります。(静的コンテンツのみ)
利用の際にはWAF以外の費用は掛かりません。

OCIのWAFを使うことで、Webページの画像読み込み 10MB 10秒が1秒に改善できました。
htmlページもキャッシュが効いて早くなりますが、わかりやすい画像データにフォーカスして説明しています。

本記事はその設定内容と結果を記載しています。

  • ※注意
    • WAFのキャッシュ容量は1WAFポリシー(1インスタンス)毎に1GBです。
    • 動的コンテンツには対応していません。
    • 他にも細かにキャッシュ対象を指定したりできない為、ヒット率の確認などができない為、CDNの代わりとは言い難い機能です。

環境

  • NGINX Webサーバにサンプルのhtmlを配置し、10MBの画像を表示できるようにしています。
  • フレキシブル・ロードバランサ(パブリック)(以後、FLB)を配置し、FLB経由で外部公開。SSL/TLS化。
  • WAFを設置し、TLS/SSL化。設定等はこちらのQiitaが分かりやすいと思います。
  • 自身の持っているドメインを用いて検証。ここでは sample.work ドメインとしています。(※実際のドメインではありません)

image.png

手順

キャッシュ・ルールの追加

WAFポリシーを開き、画面左下の「キャッシュ・ルール」を選択
「キャッシュ・ルールの追加」を押下
image.png

キャッシュ・ルールの設定

名前:<任意>
アクション:キャッシュ
キャッシュ期間:99秒(最長)
条件:「/」 に設定し、全てのパスで有効とした

image.png

WAFキャッシュポリシー設定後のイメージ

image.png

WAF キャッシュ設定反映確認

設定変更後、反映までに10分~30分かかるのでしばらく待つ
反映後、OCICLIで以下コマンドで有効になっている事を確認
(OCIDはサンプルです)

oci waas caching-rule list --waas-policy-id ocid1.waaspolicy.oc1..aaaaaaaav6ea7samplesamplesampleqnera
{
  "etag": "W/\"2021-06-27T05:59:00.587Z\""
}

テスト

通常読み込み

PCのGoogle Chromeで、デベロッパーツールを表示しながらURLにアクセス。
Shiftを押しながらF5キーで画面を再読み込み、キャッシュがクリアな状態でアクセスする。
画像データの読み込みに10秒かかっていることが分かる。

  • Network タブでページ読み込みの全体の時間を確認

image.png

  • Networkタブで「10MB.png」をクリックし、「Timing」タブを確認

image.png

※参考
ここで仮にF5キーのみを押下し画面を再読み込みすると、ブラウザのキャッシュから応答している事が分かる。これはWAFのキャッシュを用いていない

image.png

WAFキャッシュにより 10秒が1秒になった結果

上述の後、99秒以内にShiftを押しながらF5キーで画面を再読み込み

WAFからのレスポンスヘッダを見ると、キャッシュにHITしている旨がわかる

  • Networkタブで「www.sample.work」をクリックし、「Header」タブを確認

image.png

  • Networkタブで「10MB.png」をクリックし、「Timing」タブを確認

image.png

APPWNDIX

キャッシュアウトしたらどうなる?(99秒後)

WAFからのレスポンスヘッダから、キャッシュヒットが期限切れ(EXPIRED)になったことがわかる
この時、ページ読み込みは10秒かかる

image.png

キャッシュをパージする方法

OCI WAF側のキャッシュを削除する場合以下を実行する
反映には設定変更同様に10分から30分かかる

※注意:対象の指定はできず、WAFポリシー全体に関係する

APIでの実行可能。ここではOCICLIを用いている

oci waas purge-cache --waas-policy-id ocid1.waaspolicy.oc1..aaaaaaaav6ea7imnsamplesamplesample6fdulil6qnera

{
  "opc-work-request-id": "ocid1.waasworkrequest.oc1..aaaaaaaaspnjxsc4uibqvase2yb66a3lxroeth2wn2exg53n5z2wd5fvewza"
}

参考資料

3
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
3
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?