コンテンツ配信ネットワーク

最終更新: 2025-07-10 20:16:44 +0800 +0800
tags: Cdn | Dns | Networking
原文は英語で書かれています。あなたはAI翻訳版を読んでいます。

コンテンツ配信ネットワーク(CDN)は、ユーザーに近いエッジロケーションからコンテンツを 配信します。静的アセットをキャッシュでき、プロバイダーによっては動的トラフィックを プロキシし、TLS を終端し、攻撃をフィルタリングし、接続を最適化できます。オリジンは 権威あるアプリケーションであり続け、CDN は明示的なキャッシュおよびルーティング ポリシーを持つ仲介者です。

ドメインを CDN に接続する #

運用者は https://origin.example.net などのオリジンを設定し、www.example.com 用の CDN ディストリビューションを作成します。プロバイダーは example.cdnprovider.net などのホスト名を提供します。運用者はその後、通常は CNAME として www.example.com をそこへ向ける DNS レコードを作成します。

text
www.example.com.  CNAME  example.cdnprovider.net.

エッジでは、CDN が要求されたホスト名を使ってディストリビューションを識別し、適切な Host ヘッダーをオリジンへ転送します。TLS SNI と HTTP の Host ヘッダーが意図した 仮想ホストを識別するため、多数のサイトでエッジ IP アドレスを共有できます。

DNS apex には SOA レコードと NS レコードも保持する必要があるため、通常 CNAME を 含められません。プロバイダーは A/AAAA エイリアス機能、対応している場合の ANAME/ALIAS レコード、または委任 DNS でこれに対応します。正確な動作は DNS プロバイダーによって異なります。

キャッシュ動作を意図的に選択する #

キャッシュキーには通常、ホスト名、パス、選択したクエリパラメーター、選択した リクエストヘッダーまたは Cookie が含まれます。すべての Cookie を含めると キャッシュ効率が失われ、レスポンスを変える値を省略すると、あるユーザーのコンテンツが 別のユーザーに開示される可能性があります。

HTTP キャッシュディレクティブを明示的に設定します。バージョン付きアセットは通常、 長期間キャッシュできます。

text
Cache-Control: public, max-age=31536000, immutable

HTML と個人化されたレスポンスには、より短い有効期間、再検証、または private/no-store が必要になることがよくあります。パージ操作は例外的な修正に 便利ですが、コンテンツアドレス付きファイル名と予測可能な TTL の方が、日常的な 無効化メカニズムとして信頼できます。

TLS、オリジン、セキュリティ #

CDN 証明書は訪問者向けホスト名を対象にする必要があります。CDN からオリジンへの 通信にも HTTPS を使用し、オリジン証明書を検証し、攻撃者がエッジの制御を迂回できない ようオリジンへのアクセスを制限します。プラットフォームによっては、公開された CDN の送信元範囲へのファイアウォール、相互 TLS、署名付きオリジンリクエストの要求を 意味します。

アクセス判断でクライアントが提供する転送ヘッダーに依存しないでください。CDN が 信頼できるヘッダーを設定するよう構成し、オリジンが CDN からのものだけを受け入れる ようにします。起動前に、認証パス、パージ認可、オリジンタイムアウト、エラー キャッシュのキャッシュルールを確認します。

コメント

GitHub で閲覧・コメントする(投稿にはログインが必要です)