Webアプリケーション・アクセラレーションの概要

Web Application Accelerationサービスとそのコンポーネントの管理方法について学習します。

Web Application Accelerationは、キャッシュと圧縮の組合せを適用することで、レイヤー7 HTTPロード・バランサでトラフィックを高速化できるサービスです。この速度拡張の組合せは、Webアプリケーション・アクセラレーション・ポリシーとして構成されます。このポリシーには、キャッシュまたはキャッシュおよび圧縮が含まれます。Webアプリケーション・アクセラレーション・ポリシーを作成した後、ポリシーをロード・バランサにポリシーのアクセラレーション・リソースとして割り当てます。

Web Application Accelerationサービスは、通常のOracle Cloud Infrastructureのお客様が無料で利用できます。Free Tierユーザーは使用できません。

アクセラレーションは、特定のロード・バランサへのポリシーのバインドです。同じWebアプリケーション・アクセラレーション・ポリシーを複数のロード・バランサに適用する場合は、ロード・バランサごとに個別のアクセラレーション・リソースを作成できます。

Webアプリケーション・アクセラレーションでは、次のレスポンス・タイプを圧縮できます。

  • application/atom+xml

  • application/geo+json

  • application/javascript

  • application/x-javascript

  • application/json

  • application/ld+json

  • application/manifest+json

  • application/rdf+xml

  • application/rss+xml

  • application/xhtml+xml

  • application/xml

  • font/eot

  • font/otf

  • font/ttf

  • image/svg+xml

  • text/css

  • text/html

  • text/javascript

  • text/plain

  • text/xml

ノート

  • 圧縮レスポンスを取得するには、リクエストにAccept-Encodingヘッダーが必要です。

  • Cache-Controlレスポンス・ヘッダー値privateおよびno-storeは、Web Application Accelerationキャッシュをオフにします。

ロード・バランサの詳細は、Load Balancerの概要を参照してください。

このドキュメントの残りの部分では、この機能に関連する2つのリソースについて説明します。

これらのリソースは、OCIコンソール、コマンドライン・インタフェース(CLI)またはAPIを使用して管理します。

コンセプト

Web Application Accelerationサービスに関連する概念をリストして説明します。

加速
加速とは、ロード・バランサにWebアプリケーション・アクセラレーション・ポリシーをバインドするものです。高速化Webアプリケーション・アクセラレーション・ポリシーにアタッチすると、そのポリシーにロード・バランサが割り当てられ、ポリシーのプロビジョニングがロード・バランサの操作に適用されます
キャッシュ

ロード・バランサでキャッシュを有効にして、レイテンシを削減し、バックエンド・サーバーでの負荷の増加を回避します。

キャッシュ・パージ

加速を構成する1つ以上のロード・バランサのキャッシュは、データのパージされます。

ノート

キャッシュのパージは元に戻せないアクションです。

圧縮

圧縮は、キャッシュを選択する際のオプションです。圧縮は、バックエンド・サーバーのレスポンスを圧縮してからWebアプリケーション・ユーザーに返すことで、必要な帯域幅の量を減らします。この圧縮により、ネットワーク経由でのサーバー応答の転送速度が速くなります。現在、GZIP圧縮アルゴリズムのみがサポートされています。

ロード・バランサ
ロード・バランサによってトラフィック・ルーティングが決定されます。ロード・バランサのパフォーマンスを向上させるには、Webアプリケーション・アクセラレーション・ポリシーをアクセラレーションを介してロード・バランサに割り当てます。
Webアプリケーション・アクセラレーション・ポリシー
Webアプリケーション・アクセラレーション・ポリシーは、キャッシングと圧縮を使用してWebトラフィックに加速を適用するためのパラメータを設定します。

キャッシュおよび圧縮の制限

Web Application Accelerationは、キャッシュと圧縮の組合せを適用することで、ロード・バランサでトラフィックを高速化できるサービスです。

キャッシュおよび圧縮は、最大キャッシュ・サイズより小さいGETまたはHEADリクエストに対する200レスポンスに対して発生します。次のヘッダーが存在する場合、キャッシュおよび圧縮は発生しません。

  • Cache-Control: no-cache

  • Cache-Control: private

キャッシュと圧縮により、ロード・バランサでのトラフィックを大幅に高速化できます。ただし、これらの機能の使用には、次の制約があります。

  • キャッシュ

    • HEADおよびGETリクエストのみがキャッシュされます。

    • HTTPステータス・コード200を返すレスポンスのみがキャッシュされます。

    • キャッシュされたコンテンツは、キャッシュが期限切れになるかパージされるまで、バックアップされたサーバー上のコンテンツの最新状態を維持しない可能性があります。

    • コンテンツは、期限切れになるまでキャッシュされるか、ファイルがバックエンド・サーバーから削除されてもパージされます。

    • バックエンド・サーバーは、次のイベントのいずれかが発生すると、トラフィックを大幅に増加できます:

      • 複数のキャッシュ・アイテムが同時に失効します。

      • キャッシュがパージされます。

      • Webアプリケーション・アクセラレーション・サービスは無効です。
    • キャッシュの最大サイズは100MBです。この最大サイズに達すると、Webアプリケーション・アクセラレーション・サービスは、最大サイズを超えなくなるまでアクセスされたリソースを削除します。

      100MBを超えるファイルはキャッシュできません。

      ノート

      Webアプリケーション・アクセラレーション・サービスのキャッシュ・サイズを増やすようにリクエストできます。詳細は、サービス制限の引上げのリクエストを参照してください。

    • Set-Cookieヘッダーを返すレスポンスはキャッシュされません。

    • Oracleでは、情報がリークする可能性があるため、動的ページをキャッシュしないことをお薦めします。

  • 圧縮:

    • 以前に圧縮を有効にしたときに圧縮を無効にすると、Webアプリケーションのユーザーがデータ・ダウンロードの増加に伴ってリクエスト・レイテンシが増加する可能性があります。

デフォルトでは、レスポンスは10分間キャッシュされます。バックエンド・サーバーによって返されるレスポンスにキャッシュ時間レスポンス・ヘッダーのいずれかを設定することで、キャッシュ時間を構成できます。

次のキャッシュ時間ヘッダーがサポートされています。

  • Cache-Control: max-ageまたはs-maxageディレクティブを選択して、キャッシュ時間を設定します。両方のディレクティブは、レスポンスがキャッシュに格納される時間(秒)を示します。たとえば、Cache-Control: max-age=300はレスポンスを300秒間キャッシュします。max-ageディレクティブとs-maxageディレクティブの両方が存在する場合、s-maxageが優先されます。

  • 期限切れ: レスポンスが期限切れとみなされる日時を指定します。HTTP日付形式(RFC2616)のみを使用して日付/時間を指定します。たとえば、Expires: Mon, 20 Feb 2023 12:45:26 GMTは、この日付までレスポンスをキャッシュします。

  • X-Accel-Expires: レスポンスのキャッシュ時間を秒単位で指定します。ゼロ(0)の値は、レスポンスのキャッシュを無効にします。値が@接頭辞で始まる場合、Epoch以降の絶対時間を秒単位で設定します。レスポンス時間は、この時間までキャッシュされます。たとえば、X-Accel-Expires: 300はレスポンスを300秒間キャッシュします。X-Accel-Expires: @1676901818は、2023年2月20日月曜日14:03:38 GMTまでレスポンスをキャッシュします。

キャッシュされたレスポンスの予想存続期間に基づいてキャッシュ時間を構成します。静的(不変)コンテンツの場合は、キャッシュを長期間構成します。コンテンツが頻繁に変更される場合は、短期間キャッシュを構成します。最良の結果を得るには、コンテンツ更新時間と一致するように有効期限をキャッシュします。

リソースのタグ付け

リソースにタグを適用すると、ビジネス・ニーズに応じてそれらを整理しやすくなります。リソースの作成時にタグを適用することも、後から必要なタグでリソースを更新することもできます。タグの適用に関する一般情報は、 リソース・タグを参照してください。
ノート

タグを適用するかどうか不明な場合は、管理者に問い合せてください。