※ 本記事は、Tim Sammutによる”Introducing Web Application Acceleration“を翻訳したものです。
2022年6月15日
Oracle Cloud Infrastructure(OCI)Web Application AccelerationがOCIリージョンで利用できるようになったことをお知らせします。Web Application Accelerationにより、アプリケーションのパフォーマンスが向上し、レイテンシとシステム・ロードが減少することで、エンド・ユーザーのエクスペリエンスが向上します。Web Application Accelerationにより、Webブラウザおよび標準に準拠したHTTPベースのアプリケーション・クライアントがすぐに使用できるOCIロード・バランサにコンテンツ・キャッシングおよび圧縮機能が追加されます。
Web Application Accelerationの利点
アプリケーション環境に対してWeb Application Accelerationのキャッシュおよび圧縮機能を有効にすると、次の利点が得られます。
- アプリケーション・レイテンシの削減: Web Application Accelerationのキャッシング機能により、一部のロード・バランサからバックエンド・サーバーのトラフィックが不要になり、アプリケーション・レイテンシを直接削減できます。圧縮機能によって、ネットワークを介したデータの送信に必要な時間が短縮され、クライアントで発生する待機時間が短縮され、アプリケーションの応答性が向上します。
- システムの負荷とコストの削減: Web Application Accelerationのキャッシュと圧縮機能により、ネットワークとアプリケーションの負荷が軽減されます。キャッシュにより、バックエンド・サーバーがフィールド設定する必要があるリクエストの数が削減され、処理負荷が削減されます。圧縮により、ネットワーク経由で送信されるバイト数を減らします。リクエストを処理せず、バイトを送信することにより、既存の環境でWeb Application Accelerationを有効にすると、ロードおよびアプリケーションのコストを直接削減できます。
一般的な導入シナリオ
Web Application Accelerationは、HTTPSやHTTP/2で配信されるアプリケーションを含む、ほとんどのHTTPベース・アプリケーションのカスタマ・エクスペリエンスと全体的なシステム・パフォーマンスを改善します。Webアプリケーション・アクセラレーションの最も一般的なデプロイメント・シナリオには、次の例があります。
- インターネット対応Webアプリケーション: アプリケーションはOCIでホストされ、インターネット上のWebクライアントによって使用されます。これらのアプリケーションからのトラフィックは、南北のトラフィックまたは通信と呼ばれます。
- 内部Webアプリケーション: アプリケーションはOCIでホストされ、顧客自身のネットワーク内またはプライベート・ネットワーク内に存在するクライアントによってアクセスされます。
- HTTPを使用する内部アプリケーション: これらのアプリケーション、サービスまたはシステムは、他のアプリケーションで使用可能になり、Webアプリケーションとしては表示されませんが、HTTPを使用する可能性があります。このカテゴリのアプリケーションは、HTTPのリクエストとレスポンスの性質を利用し、HTTPベースのワークフローで使用可能なその他のネットワーク機能を活用できます。これらのアプリケーションからのトラフィックは、東西トラフィックと呼ばれます。
機能の概要
Web Application Accelerationには、キャッシュと圧縮の2つの主要な機能があります。
キャッシュを使用すると、ロード・バランサ自体で将来使用するために再利用可能なWebコンテンツを格納することで、Webアプリケーションを高速化できます。キャッシュ後にこのコンテンツがさらにリクエストされる場合は、リクエストをバックエンド・サーバーに転送せずにキャッシュから処理されます。このプロセスにより、アプリケーションのパフォーマンスが向上し、バックエンド・サーバーの負荷が減少します。
Webコンテンツは、アプリケーション・バックエンドによって設定された標準のcache-control HTTPレスポンス・ヘッダーによって指示されたロード・バランサにキャッシュされます。Web Application Accelerationは、バックエンドによって送信されたキャッシュ制御ヘッダーに従って、またはWeb Application Accelerationキャッシュがそのサイズ制限に近づくまで、期限切れになるまでコンテンツをキャッシュします。その場合、アクセス頻度が低いコンテンツは期限切れになる前に削除されます。これらのヘッダーがないコンテンツ、またはキャッシュに対して指示するキャッシュ制御ヘッダーがあるコンテンツはキャッシュされません。
圧縮により、Webコンテンツのネットワーク・サイズが小さくなり、アプリケーション・レイテンシが低下します。特に、レイテンシの高いネットワーク接続上のクライアントの場合、ネットワークの使用量とコストが低下します。圧縮が有効な場合、HTML、XML、javascript、CSS、JSONなどの一般的なテキストベースのコンテンツ・タイプも、gzipで圧縮されたクライアントにキャッシュ可能です。Webクライアントは、accept-encoding HTTPリクエスト・ヘッダーをgzipまたは*に設定することで、圧縮コンテンツをサポートし、必要なことを示します。Web Application Accelerationは圧縮できますが、適切なaccept-encodingリクエスト・ヘッダーなしでリクエストされるコンテンツは圧縮されません。
Web Application Accelerationの有効化
環境に対するWeb Application Accelerationの有効化は、2ステップのプロセスです。Oracle Cloud Consoleを使用してWeb Application Accelerationを構成する場合、ポリシーの作成ワークフロー中に両方のステップを実行できます。
まず、Web Application Accelerationポリシーが作成されます。このポリシーには表示名が含まれ、キャッシュまたはキャッシュおよび圧縮が有効かどうかを指定します。
その後、1つ以上のロード・バランサにポリシーを適用して1つ以上のアクセラレーションが作成されます。Web Application Accelerationポリシーはロード・バランサに適用され、ロード・バランサの特定のリスナーには適用されません。この機能は、HTTP、HTTPSまたはHTTP/2リスナーでHTTPトラフィックを使用するWebアプリケーションに固有です。Web Application Accelerationポリシーの適用は、TCPリスナーには影響しません。

ロード・バランサへのWeb Application Accelerationポリシーの適用を通じてアクセラレーションが作成されると、ロード・バランサはそのポリシーによって指示されたキャッシュまたは圧縮の実行を開始します。
Web Application Accelerationの監視と運用
Web Application Accelerationにより、メトリックおよびロギングがアクセラレーションごとに生成されます。メトリック・エクスプローラやAPIなど、OCI Monitoringのすべての機能を使用して、Oracle Cloud Consoleのアクセラレーションの下に表示されるデフォルト・グラフにメトリックを表示できます。
Web Application Accelerationは、OCIロギングと統合して、Web Application Accelerationによって確認されるリクエストおよびキャッシュと圧縮の影響を可視化します。キャッシュの場合、ログには、レスポンス・コンテンツがキャッシュから提供された(キャッシュ・ヒット)か、そうでないか(キャッシュ・ミス)が含まれます。圧縮の場合、ログは圧縮ありおよび圧縮なしのサービス済コンテンツのサイズを示します。
次のスクリーンショットは、キャッシュから提供されるレスポンスと圧縮されたレスポンスのログ・エントリを示しています。Consoleでアクセラレーションを表示し、「リソース」セクションから「ログ」を選択し、表からログ名を選択すると、アクセラレーションの類似のログを表示できます。

キャッシュ無効化は、Webアプリケーションでキャッシュを利用する顧客にとって重要なワークフローです。キャッシュ無効化またはパージにより、ロード・バランサのキャッシュからアイテムが削除され、Webクライアントが次回リクエストしたときに、以前は有効にキャッシュされていたコンテンツがバックエンドから取得されます。Web Application Accelerationでは、Oracle Cloud Console、CLIおよびAPIを使用した、アクセラレーションごとにキャッシュの無効化がサポートされます。Consoleから、アクセラレーション詳細ビュー内の「キャッシュのパージ」ボタンを使用します。

まとめ
Web Application Accelerationにより、すべてのHTTPベース・アプリケーションのカスタマ・エクスペリエンスが向上します。標準ベースのシングルリング・メカニズムをキャッシュ制御およびアクセプト・エンコーディングHTTPヘッダーの形式で使用することで、Web Application Accelerationを、安全かつ操作しやすい方法で既存のアプリケーションに統合できます。
Web Application Accelerationについてさらに学習し、使用環境で有効にするには、ドキュメントを参照してください。
