Webアプリケーション・アクセラレーションの概要
Webアプリケーション・アクセラレーション・サービスとそのコンポーネントの管理方法について学習します。
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アプリケーション・アクセラレーション・キャッシュをオフにします。
ロード・バランサの詳細は、Load Balancerの概要を参照してください。
このドキュメントの残りの部分では、この機能に関連する2つのリソースについて説明します。
これらのリソースは、OCIコンソール、コマンドライン・インタフェース(CLI)またはAPIを使用して管理します。
コンセプト
Webアプリケーション・アクセラレーション・サービスに関連する概念をリストし、説明します。
- アクセラレーション
- アクセラレーションとは、Webアプリケーション・アクセラレーション・ポリシーをロード・バランサにバインドするものです。Webアプリケーション・アクセラレーション・ポリシーにアクセラレーションをアタッチすると、そのポリシーにロード・バランサを割り当て、ポリシーのプロビジョニングがロード・バランサの操作に適用されます
- キャッシュ
-
ロード・バランサでキャッシュを有効にして、レイテンシを削減し、バックエンド・サーバーでの負荷の増加を回避します。
- キャッシュ・パージ
-
アクセラレーションを構成する1つ以上のロード・バランサのキャッシュは、データからパージされます。
ノート
キャッシュのパージは元に戻せないアクションです。
- 圧縮
-
圧縮は、キャッシュを選択する際のオプションです。圧縮は、バックエンド・サーバーのレスポンスを圧縮してからWebアプリケーション・ユーザーに返すことで、必要な帯域幅の量を減らします。この圧縮により、ネットワーク経由でのサーバー応答の転送速度が速くなります。現在、GZIP圧縮アルゴリズムのみがサポートされています。
- ロード・バランサ
- ロード・バランサはトラフィック・ルーティングを決定します。アクセラレーションを通じてWebアプリケーション・アクセラレーション・ポリシーを割り当てることで、ロード・バランサのパフォーマンスを向上できます。
- Webアプリケーション・アクセラレーション・ポリシー
- Webアプリケーション・アクセラレーション・ポリシーは、キャッシュおよび圧縮を使用してWebトラフィックにアクセラレーションを適用するためのパラメータを設定します。
キャッシュおよび圧縮の制限
Webアプリケーション・高速化は、キャッシュと圧縮の組合せを適用することで、ロード・バランサのトラフィックを高速化できるサービスです。
キャッシュおよび圧縮は、最大キャッシュ・サイズより小さいGETまたはHEADリクエストに対する200レスポンスに対して発生します。次のヘッダーが存在する場合、キャッシュおよび圧縮は発生しません。
-
Cache-Control: no-cache
-
Cache-Control: private
キャッシュと圧縮により、ロード・バランサでのトラフィックを大幅に高速化できます。ただし、これらの機能の使用には、次の制約があります。
-
キャッシュ
-
HEADおよびGETリクエストのみがキャッシュされます。
-
HTTPステータス・コード200を返すレスポンスのみがキャッシュされます。
-
キャッシュされたコンテンツは、キャッシュが期限切れになるかパージされるまで、バックアップされたサーバー上のコンテンツの最新状態を維持しない可能性があります。
-
コンテンツは、期限切れになるまでキャッシュされるか、ファイルがバックエンド・サーバーから削除されてもパージされます。
-
バックエンド・サーバーは、次のイベントのいずれかが発生すると、トラフィックを大幅に増加できます:
-
複数のキャッシュ・アイテムが同時に失効します。
-
キャッシュがパージされます。
- Webアプリケーション・アクセラレーション・サービスは無効になっています。
-
-
キャッシュの最大サイズは100MBです。この最大サイズに達すると、Webアプリケーション・アクセラレーション・サービスは、最大サイズを超えなくなるまで、最も少ない回数アクセスされたリソースを削除します。
100MBを超えるファイルはキャッシュできません。
-
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までレスポンスをキャッシュします。
キャッシュされたレスポンスの予想存続期間に基づいてキャッシュ時間を構成します。静的(不変)コンテンツの場合は、キャッシュを長期間構成します。コンテンツが頻繁に変更される場合は、短期間キャッシュを構成します。最良の結果を得るには、コンテンツ更新時間と一致するように有効期限をキャッシュします。
リソースのタグ付け
タグを適用するかどうか不明な場合は、管理者に問い合せてください。