マルチ CDN とは何か : 実装に役立つ8つのベストプラクティス
レジリエンス、スケーラビリティ、パフォーマンスの向上。これらはマルチ CDN の導入で得られるメリットの一部です。しかし複数の CND を使用すると、お使いのシステムが複雑化する問題も起こりえます。このブログ記事では、マルチ CDN 戦略を成功させる8つのヒントをご紹介します。
マルチ CDN とは何か
マルチ CDN とは、数あるプロバイダーが提供する複数の CDN を、ひとつの大きなグローバルネットワークに統合するソリューションです。マルチ CDN は、大規模な配信の高速化を可能にします。
マルチ CDN の8つのベストプラクティス
1. コンテンツを種類別にグループ化
コンテンツパーティショニングは、コンテンツを種類別 (HTML、JS、CSS、画像、動画、API など) にグループ化し、特定の CDN を各コンテンツタイプに割り当てる一般的なアプローチです。サイズが固定された静的アセット (CSS や JS) や静止画像は、マルチ CDN アーキテクチャへの移行が簡単です。また、最低限の共通要素に基づいてマルチ CDN アーキテクチャを構築するのではなく、HTML 向けのインスタントパージのようなコンテンツタイプに特化した機能を備えた CDN を選択することも可能です。
さらに、コンテンツパーティショニングによって、トラフィック分散に関する意思決定を合理化できます。詳細は、Etsy のマルチ CDN 戦略におけるコンテンツパーティショニング (スライド45) に関するアプローチについてご確認ください。
2. トラブルシューティングのために一貫性のあるヘッダーを使用
ヘッダーの一貫性を確保しておくと、問題を診断する際に役立ちます。可能であれば、お使いの CDN ベンダーが標準化された共通のデバッグヘッダーを採用するようにし、これらのヘッダーで得られた情報を公開します。情報の種類には、「パス上でどのノードにヒットしたのか?」、「リクエスト ID は何か?」、「キャッシュヒットだったのか、それともキャッシュミスか?」、「最初の CDN サーバーがリクエストを受け取ってからどれくらいの時間を要したか?」といった内容が考えられます。Catchpoint の CEO である Mehdi Daoudi 氏は、CDN をデバックする際に一貫性のあるヘッダーがいかに必要であるかを説明しています。
3. ワーキングセットに一貫性のあるハッシュを導入
ワーキングセットに一貫性のあるハッシュを導入すると、オブジェクトを提供する CDN の動的な選択において決定性を可能な限り確保し、すべての CDN のキャッシュヒット率を増加させることができます。DNS がトラフィックの5% (20件のリクエストの内1件) の配信経路をランダムに選択するように設定し、ワーキングセットが大規模な場合、エンドユーザーのパフォーマンスを最適化できず、オリジンのデータ転送量に多くのコストを費やすことになります。
4. CDN のスタッキング
スタッキングによって、ひとつの CDN を単一または複数のその他のベンダーの背後に置き、CDN の複数の階層を作成します。このアプローチのメリットには、リクエストの統合や、TCO の削減に繋がるグローバルキャッシュヒット率の向上などが挙げられます。ただしライブストリーミングのシナリオでは、コンテンツが動的であるため、従来の CDN のスタッキング方法ではあまり効果を発揮できない点にご注意ください。スタックされた中間層 CDN の全ての POP によって、同じライブストリームがリクエストされ続けるためです。
一方、Fastly のメディアシールドはまったく異なるアプローチを採用しています。マルチ CDN を使用する大規模なライブ動画配信サービスプロバイダーは、ひとつまたは複数のエッジ CDN とオリジンの間にメディアシールドを配置することで、マルチ CDN のデプロイを最適化できます。その結果、オリジンのオフロードを大幅に向上してオリジンのデータ転送コストを削減しながら、エンドユーザーのパフォーマンス改善を実現します。メディアシールドは、同じコンテンツに対する複数のリクエストをひとつのリクエストにまとめてオリジンに送信する点が通常の CDN スタッキングと異なります。これにより、スケーラビリティを確保しつつオリジンのインフラストラクチャのサイズを縮小し、TCO を削減することが可能になります。
5. 一貫性のあるモニタリングパラメーターの確立
マルチ CDN 戦略を採用すると、コンテンツ配信に最適な CDN を選択してパフォーマンスを向上することができます。しかしこれには、各 CDN のパフォーマンスの状況に対する可視性が必要です。一貫性のあるモニタリングパラメーターを使用することで、各プロバイダー間の CDN パフォーマンスを簡単かつ迅速に比較し、マルチ CDN の実装を細かく調整できるようになります。こうしたパラメーターをシンセティックモニタリングとリアルユーザーモニタリング (RUM) のツール に設定し、すべての CDN を可能な限り同じ条件のシナリオでモニタリングしてください。モニタリング戦略に一貫性がないと、オブジェクトサイズの違いや、キャッシュヘッダーおよび検証回数の不一致、不揃いの DNS TTL などにより、混乱が生じます。
6. サードパーティのレポート、ロギング、モニタリングの導入
すべての CDN がトラフィックに関するリアルタイムの可視性を提供するわけではありませんが、マルチ CDN 環境においては重要な役割を担います。ストリーミングログは、エンドユーザーのトラフィックパターンに対する透明性と理解を得るのに最適です。リアルタイムログの統合機能により、Splunk や Sumo Logic、Azure Data Explorer (ADX)、BigQuery といったツールと連携し、「ブラックボックス化」(ログの取得に数分あるいは数時間かかる) した CDN では得られなかったインサイトの利用が可能になります。また、ユーザーのブラウザやプレーヤー、CDN、オリジンを含むエンドツーエンドのモニタリングを通じてより詳しいコンテキストを確認することで、問題の発生後すぐにそれを特定できるようになります。
7. 複数の権威 DNS プロバイダーを使用
単一の権威 DNS プロバイダーを使用する場合、インフラストラクチャースタックの単一障害点になる可能性があります。そのため、エニーキャストベースのアプローチを採用する2つの権威プロバイダーを使用するのが、現在、業界のベストプラクティスとされています。これは特にマルチ CDN アーキテクチャにおいて重要です。DNS プロバイダーが DDoS 攻撃を受けても、顧客のクエリに応答するネームサーバーがゼロになることがなく、地域のパフォーマンスに基づいて一貫性も確保されるからです。
ビデオコンテンツプロバイダーは、マニフェストまたはプレイヤーの配信方法に基づいてマルチ CDN 環境でトラフィックのルーティングを行う選択肢を認識する必要があります。こうした配信方法や、その他の重要なマルチ CDN プラクティスに関する詳細は、Fastly が提供しているマルチ CDN に関するリサーチの概要をご覧ください。
8. プロバイダー間の機能の等価性と文化的な適合性
IaC (Infrastructure as Code) が一般化している現在では、検討している CDN で何ができるか (または何ができないか) という点やビジネスニーズに基づいて CDN を選択する必要があります。サポートの負荷やコストの削減、解決までの平均時間の短縮、すべてのユーザーに対するサイトやアプリケーションのパフォーマンス向上などが求められ、それらは収益の増加にもつながることがよくあります。言い換えると、簡単に実装・管理できる高度な機能を備えた CDN が必要です。
複数の CDN を効果的に使用するには、プロバイダー間で同じレベルのツールセットを使用することをお勧めします。通常、運用チームはマルチ CDN の実装を最低限の共通要素に合わせて調整します。例えば、3つの機能豊富な CDN と基本的な CDN をひとつ利用している場合、基本的な機能セットのみがマルチ CDN アーキテクチャ全体で使用できます。しかし、基本的な CDN をより機能豊富な CDN に切り替えると、より高度な機能をデプロイ全体で利用可能にする機能の等価性を確保できます。
マルチ CDN の使用を開始する際は、文化面での適合性も検討しなければなりません。お客様の企業と緊密に寄り添い支援するような CDN サポートチームが必要です。お客様が直面する問題の迅速な解決に向けて積極的に協力してくれるチームの存在が不可欠なのです。例えば Etsy は自社で使用する CDN ベンダーが自社の技術チームと文化的に適合していることを確認するだけでなく、必要に応じてエンジニアリングリソースにアクセスできるような環境作りも行いました。
さらに詳細を知りたい方へ
今回のブログ記事で紹介したベストプラクティスを実行することで、新しい CDN をより簡単に選択・移行できます。CDN のパフォーマンスに関してさらに詳しく知りたい方は、パフォーマンスの検証やキャッシュヒット率の測定方法の改善に関する Fastly のブログ記事をご覧ください。