概要

パフォーマンスの測定は、Web アプリケーションの速度を向上させる機会を見極めるための出発点です。測定されるパフォーマンスは、CDN を使用したコンテンツ配信の品質と、Web アプリケーションの設計方法に影響されます。この記事では、コンテンツ配信のパフォーマンスを測定するためのベストプラクティスに焦点を当てています。この手法は、CDNのベンチマーキング(新しいCDNの展開など)、マルチCDNアーキテクチャでのCDNの切り替え、およびCDN構成の継続的な変更(HTTP/3などの新しいプロトコルの展開など)にとって重要です。最も関連性が高く正確な CDN パフォーマンスデータを取得するには、テスト条件、つまり測定技術とテスト条件を慎重に選択する必要があります。

Amazon CloudFront フラッシュトーク:ベストプラクティス

測定テクニック

アプリケーションレベルのパフォーマンス測定のための総合テスト

合成テストは、オペレーターがユーザーがWebアプリケーションをロードするシナリオをシミュレートする測定手法です。ChromeのLighthouseなどのツールを使用してオペレーターのコンピューターから WebPageTest.orgなどのツールを使用してデータセンターから簡単に行うことができます。また、CatchpointやCloudWatch Syntheticsなどのツールを使用して、世界中のデータセンターやISPバックボーンに展開されている高度なプローブネットワークから行うこともできます。

このアプローチは、ウェブアプリケーションのコードのパフォーマンス(例えば、JavaScriptがページロードに与える影響)を理解するのに役立ちます。コードリリースプロセスのさまざまなステップ (製品化前の環境での合成テストなど) で、コード更新後のアプリケーションパフォーマンスの改善または回帰を監視する方法として推奨されます。

ただし、CDNのパフォーマンスを測定する場合、合成テストでは不十分です。たとえば、合成テストプローブは通常、実際のユーザートラフィックを伝送しないネットワークに設置され、すべてのCDNのルーティングシステムが最適化されているわけではありません。さらに、合成テストによって生成されるトラフィックは、実際のトラフィック負荷と比較して比較的少ないため、CDN がトラフィックの増加によってネットワークを温める方法がよく反映されていません。このような理由から、CDN のベンチマークにはリアルユーザー測定 (RUM) 技術を使用することが推奨されます。を読む

CDN レベルのパフォーマンス測定のためのリアルユーザー測定

CloudFront などの CDN のパフォーマンスを測定したい場合は、CloudWatch RUM などのツールを使用して、リアルユーザー測定 (RUM) 技術を使用することを検討してください。RUM は、ユーザーの視点から見たウェブアプリケーションのパフォーマンスに関する最も正確なデータを提供します。CloudWatch RUM では、CDN のパフォーマンスが、最大コンテンツペイント (LCP) などのアプリケーションのコアウェブバイタルにどのように影響しているかを把握できます。また、RUM を使用して CDN のパフォーマンスをビジネス KPI (ユーザー訪問数、売上など) と関連付けることもできます。CloudWatch RUM を使用するには、ウェブページに javascript タグを追加する必要があります。javascriptは、接続ステップ(DNSルックアップ、TCP接続など)の内訳やコアウェブバイタルの内訳を含むページの読み込み時間などのデータをブラウザAPIから収集し、ダッシュボード用にCloudWatch RUMに送信します。ブラウザの種類、ユーザーの国、特定のページ ID などの特定のディメンションでフィルタリングすることで、CDN のパフォーマンスを分析できます。

CDNがこれらのディメンションのいずれか(特定のページや地域など)でレイテンシーを示している場合は、範囲外のディメンション内のリクエストのネットワーク指標を掘り下げてください。TCP接続時間が遅い場合は、ルーティングが最適ではない可能性があります。キャッシュミスで最初のバイトまでの時間が遅い場合は、送信元が遅いことを示している可能性があります。CloudFront サーバー側のトラブルシューティングを CloudWatch RUM と組み合わせて使用することで、さらに範囲を絞り込み、レイテンシーの問題を把握できます。

Amazon CloudWatch のリアルユーザーモニタリング

CDN ベンチマークのベストプラクティス

CloudFront などの CDN をベンチマークするための偏りのないテスト条件を設定するには、以下のベストプラクティスを検討してください。

  • トラフィックの大部分 (最小でも 20%) を各 CDN に送信して、CDN の実際のパフォーマンスを大規模に測定します。CloudFront のような CDN は、ウォーミングした場合 (例:キャッシュが格納されている、TCP 接続プールがウォームされている、DNS エントリが ISP によってキャッシュされる) と、規模に応じてパフォーマンスが向上します。
  • すべてのCDNについて同じ条件でベンチマークテストを実施します。同量のトラフィックを各 CDN に同時に、同じユーザーベースに送信します。
  • 適切な時間にわたってテストを実施してください。たとえば、ロングテールのコンテンツを配信する場合、CDN はキャッシュにデータを格納してキャッシュヒット率を安定状態まで上げるのに数日かかる場合があります。
  • 圧縮、画像最適化、プロトコル (HTTP/3とH2、TLS1.3とTLS1.2、IPv6とIPv4)、オリジンアクセラレーション (オリジンシールド) など、同じ機能を持つCDNを設定します。

Pulsar by NS1やCitrix Intelligent Traffic Managementなど、トラフィックステアリング用のサードパーティソリューションの中には、アプリケーション外部のソースから収集された独自のRUMデータが含まれているものがあります。このようなツールを使用する場合は、CDN のパフォーマンスベンチマークについて考える際に、次の点を考慮してください。

  • CDN は同じ条件でテストされていますか?同様の構成と最適化。
  • ディメンションごとにどれくらいのデータポイントが収集されますか? データポイントが多いほど、より正確なベンチマーキング(CDNのウォーミング、統計エラーなど)
  • テストされたオブジェクトはアプリケーションと同じ特性を持っていますか(例:静的オブジェクトと動的、小さなオブジェクトと大きなオブジェクト、人気のあるオブジェクトと一般的でないオブジェクトなど)
  • これらのツールの中には、独自の CDN で RUM テストを実行できるものもあります。ユーザーがCDNで体験するパフォーマンスをより適切に反映するため、このオプションを検討してください。
  • アプリケーションに関連するパフォーマンス指標 (レイテンシー、スループット、P50 対 P90) と可用性を最も適切に組み合わせてください。たとえば、ラージオブジェクトのダウンロードは、レイテンシーよりもスループットの影響を受けやすくなります。

リソース

このページはお役に立ちましたか?