CDN の可能性を最大限に引き出す5つの方法
オンラインコンテンツを配信する企業の多くが配信システムの一部としてコンテンツ配信ネットワーク (CDN) を使用しています。一般的な主なメリットには、配信の高速化と安全性の向上や、最先端のコンテンツ管理システムとのより緊密な統合などが挙げられます。CDN が提供するログファイルは、課金状況や全体的なステータスの把握に役立ちます。有料会員の認証に CDN を利用している企業もあります。CDN を配信システムの一部として導入することのメリットについては、すでに多くの資料があります。そこでこのブログ記事では、皆様のビジネスの拡大と改善にお役立ていただけるよう、「あまり知られていない」CDN を導入すべき理由についてご紹介します。特に以下のポイントに焦点を当てます。
高度なキャッシュ
コンテンツの最適化
包括的なセキュリティ対策
エッジの利用によるスケールアップ
可視性に基づく判断
高度なキャッシュ
CDN の仕組みは通常、極めてシンプルです。画像や JavaScript、CSS など、Web ページを構成するコンポーネントは、ほとんどまたはまったく変化することがないため、基本的にロジックを適用せずに、簡単にキャッシュできます。コンテンツを永続的にキャッシュするよう設定することも可能で、これによりクラウドコストの節約やデータ送信コストの削減などのメリットが得られます。
しかし、キャッシュ可能なコンテンツは、実は他にもたくさんあります。たとえば、HTML ページや API ルート、GraphQA クエリなど、通常イベントドリブン型と呼ばれるオブジェクトなどもキャッシュ可能です。番組やドラマのエピソードのリスト、ユーザー設定、ビデオマニフェスト、API レスポンスなどはすべて、何か (イベント) が変わるまで、変化しません。データベースや API などの抽象化レイヤーにクエリする場合も、恐らくキャッシュできます。これは最先端の CDN のほとんどで、非常に迅速にコンテンツをネットワークからパージできるため です。つまり、30分の有効期限 (TTL) を割り当て、期限が切れた後、オリジンに再度リクエストを送信して繰り返し再検証を行い、オリジンのリソースを拘束する代わりに、「永続的に」または無効にするまでキャッシュに保存することができます。
データベースへのクエリなど、特に多くのコンピューティングリソースを使用するワークロードにおいて、より多くのデータをキャッシュすることでコストを大幅に削減できます。
そのような戦略は、グローバルパフォーマンスの一貫した改善につながります。さらに最先端の CDN は、真に動的な、または完全にキャッシュ不可能なコンテンツや Web ページの要素にも対応できます。また、CDN を使用する場合、エンドユーザーにより近い場所で TLS 接続が行われるため、接続の開始が早まります。オリジンへの TCP 接続は維持されたままなので、接続のセットアップや切断にリソースが使用されるのを回避できます。
コンテンツの最適化
オリジンやアプリケーションレイヤーで行っている最適化のほとんどが、恐らくネットワークエッジでも可能です。例として、Fastly エッジクラウドプラットフォームの画像最適化機能を見てみましょう。画像を最適化することで、ストレージとコンピューティングのコ ストを抑えられます。この機能には他にも多くのメリットがありますが、ユースケースのひとつとして、UI をアップデートして更新する際に、必要な画像を一つひとつ再加工せずに済むことが挙げられます。また、大規模なエンジニアリング作業によってアプリケーションのツールを変更する必要なく、WebP や AVIF などの新しいファイル形式のメリットをすぐに活用できます。
HTML や CSS、JavaScript ファイルを圧縮する際、CDN で圧縮と展開を行うことで、コンピューティングサイクルとエンジニアリングリソースの節約が可能になります。さらに、Brotli のような新しい圧縮アルゴリズムがリリースされると、すぐにそれを活用することができます。これらは、エッジでほんの少しコードを作成するだけで実現できます。
包括的なセキュリティ対策
CDN はセキュリティを実装し、強化するのに最適な場所です。CDN は容量が大きく、正当なトラフィックによるスパイク (スポーツのライブイベントで大勢の視聴者が殺到する場合など) や、悪意のある DDoS 攻撃 などによるトラフィックスパイクなど、大量のトラフィック急増に対応できます。また CDN によって、オリジンやアプリケーションのロケーションを隠すことができるため、ハッカ ーが侵入できる攻撃対象領域を縮小することができます。IP アドレス制限とプライベートピアリングをセットアップして、アアプリケーションへのアクセスを制限できます。
コンテンツを配信する企業は、非常に大規模な DDoS 攻撃や、アカウント乗っ取り、クレデンシャルスタッフィング、クレジットカード詐欺などの的を絞った小規模な攻撃に対する保護対策の導入を検討する必要があります。毎日のように新たな攻撃が発生しています。今日の DDoS 攻撃の規模は数テラビットに及んでいますが、ほとんどのアプリケーションは、このような規模のトラフィックの処理を想定して構築されていないため、対応できません。
CDN は規模の大きい攻撃をブロックするのに非常に有効ですが、ユーザーの動作や新たな脅威からの保護には、より細かなアプローチが必要です。そのため大半の CDN は、このような脅威に対応できる WAF サービスを提供しています。実際、CDN はすべてを安全に実行できる素晴らしいソリューションです。例えば、レイヤー7の HTTP または HTTPS のトラフィックではないものすべてをエッジで処理することで、すぐに保護を大幅に強化できます。
攻撃がアプリケーションに到達する前に CDN で検出してブロックできます。レート制限などの機能により、攻撃者をエッジでブロックし、正当なユーザーのみがアプリケーションを利用できるようにすることが可能になります。また、セキュリティポリシーをエッジで施行することで、スピードとパフォーマンスを向上させながらコアアプリケーションへの負荷を軽減します。トークン認証から仮想パッチまで、さまざまなセキュリティ対策をエッジで実行できるため、悪質なトラフィックが貴重なデータやアプリケーションに到達する前に効果的に検出してブロックできます。
エッジコンピューティング
CDN にはさまざまな種類があり、それぞれ仕組みも異なりますが、今日の CDN の多くがエッジコンピューティング機能を備えています。WebAssembly を使用しているものもあれば、Docker やその他のタイプの仮想サンドボックスを使用しているものもあります。提供する機能セットや価格モデル、サポートする言語も異なります。多くのことを実行できるエッジコンピューティングは、マイクロサービスを構築し、スケールアップするのに最適です。
以上のことを踏まえ、認証をアプリケーションではなく、ユーザーに近いエッジで行うことをお勧めします。また、地理的位置やデバイスの種類などの属性に基づいてコンテンツをカスタマイズしたり、特定のコンテンツをユーザーに勧めたりすることもできます。さらに、エッジで各ユーザーのエクスペリエンスをパーソナライズし、高度な A/B テストなどの実験を行うことも可能です。WebAssembly のような新しいテクノロジーがエッジでサポートされている場合は、これらを安全でパフォーマンスの高いサン ドボックス環境で実行できます。これにより、エンジニアは JavaScript や Golang、Rust など、好きな言語を使ってアプリケーションを構築できるので、開発者の生産性が増し、より優れたプロダクトを構築して開発者の満足度も高まります。
可視性
次に、可視性について見てみましょう。CDN は本質的に膨大な量のデータを処理しています。特にリアルタイムのログ機能と統計機能によって、日々の運用を改善できます。(これらの機能がリアルタイムでない場合、グローバルインシデントやローカルな問題を特定して対処することができません。)
また、履歴データを分析することで、アーキテクチャに関してより優れた判断を行い、今後の構築と改善に活かすことができます。テストを実施する場合は、ログデータを調べて結果が適切だったかどうか、または別の方法を使用する必要があるかどうかを確認できます。
さらに CDN のログによって、キャッシュや最適化に関する戦略が効果的でない分野を特定して改善し、コストを削減できます。ログを確認し、アプリケーションの悪用または乱用を試みるユーザーが使用している新しいタイプの巧妙な手法を検出し、データに基づいた決定を行うことができます。リアルタイムログは、サービス障害の原因を修正し、顧客が Web アプリを使用できなくなることで収益にマイナス影響を及ぼすダ ウンタイムを回避するのに役立ちます。アプリを常に利用可能な状態に維持することで、ブランドの評判も高まります。
最後になりますが、CDN は専門のネットワークエンジニアチーム、自動化ツール、冗長性のあるネットワークを擁しているという重要なポイントに留意してください。CDN はルートを最適化し、インターネット環境の影響や DDoS 攻撃、収益に打撃を与えるサービス障害、ダウンタイムなどから保護し、結果的にお客様とお客様のサービスを利用するユーザーのエクスペリエンス向上につながります。
Chris が Content Delivery Summit 2022 で行ったこれらのトピックに関する発表をこちらでご覧いただけます。undefined