CDN(コンテンツ配信ネットワーク)はどのように機能しますか?


37

アカマイをCDNとして採用。私が理解していることから、クライアントがページをリクエストすると、リクエストはアカマイの中央サーバーに送られ、クライアントの場所に応じてアカマイのエッジサーバーをピックアップし、クライアントからの後続のリクエストはこのエッジサーバーに直接送られます。私の質問は:

クライアントがWebサイトを(名前で)要求する場合、DNSが名前をAkamaiセントラルサーバーのIPアドレスに解決し、クライアントに渡すと、クライアントはこのIPアドレスを保持し、その後の要求はどのようになりますかAkamaiエッジサーバーのIPアドレスに直接アクセスするにはどうすればよいですか?

または、CDNを使用している場合、CDNサーバーがDNS解決自体を行う必要があるということですか?

Google、Amazon、Facebookのような大物は独自のCDNサーバーを持っていますか、それともアカマイのようなサードパーティのCDNプロバイダーに依存していますか?GoogleとYahoo!を言う どちらもAkamai CDNを使用してから、Yahoo!のコンテンツを使用します とGoogleは同じサーバー上にありますか?それは潜在的なセキュリティ問題を引き起こしませんか?

回答:


27

サイト全体をCDNでホストするのではなく、コンテンツのみをホストます。

しばらく前に、同様の質問に答えたことがわかりました。akamaihd.netは何をしているのですか?

データ要求フローWikiMediaによる画像

あなたのサイトは参照しhttp://akamai/myfile.extます。これはmyfile.extからリクエストされakamaiます。akamaiその後、実際のコンテンツサーバーにHTTPリダイレクトを送信できます。

さて、最後のステップがキャッシュされると、すばらしいことに、今後のリクエストはすべて最も近いコンテンツサーバーに送られます。

それはどのように機能しますか?

このWebサイトを想定してみましょう。

<html>
  <body>
    <img src="http://cdn/oliver.png" />
  </body>
</html>

このウェブサイトを自分のウェブサーバーにリクエストします。.htmlファイルはされないでホストされていますcdn。どちらも私のウェブサーバーのDNSではありません。

最初のリクエスト

それで、私のブラウザはそのHTMLファイルを取得し、それを解析します。参照画像を見つけ、それがにあることをメモしhttp://cdn/oliver.pngます。そのファイルを要求します。

そのためには、のIPアドレスを見つける必要がありますcdn。この例では、そのIPアドレスは10.10.10.10です。

そのIPアドレスを使用して、cdnサーバーに接続して要求できます/oliver.png

ジオロケーション

cdn「実現男はドイツからのものであることを!」。したがって、私が望んでいた素晴らしい写真を私に送信する代わりに、次のようなHTTPリダイレクトを送信します。

/oliver.pngはここにありません。それは10.10.33.33/oliver.png

そのため、私のブラウザーは10.10.33.33(できれば私の近くにある)画像を要求します。

マジ?

これがすべてのCDNの仕組みだと言っているわけではありませんが、1つのアプローチになります。

また、クエリを送信した人の場所に応じて、名前検索の結果が異なるDNSデーモンを実装することもできます。
しかし、これが実際に行われているとは思えません。しかし、それを適切に設定する方法が想像できないかもしれません。それがどのように機能するかについては、ふわふわの答えを参照してください。

CDNを実行するのは誰ですか?

ほとんどのグローバルプレーヤーは、何らかの方法で独自のコンテンツ配信ネットワークを持っています(またはそう推測します)。一部のプロバイダーは、特定のサービスをより大きなCDNにオフロードするだけです(MicrosoftがMSDNダウンロードで行うように)。そして、これはどういうわけかあなたの第二の主題に触れるかもしれません。

これを考慮してください、MSDNでMicrosoftは製品のダウンロードを提供しています。これらのダウンロードは、アカマイによって提供されます。そのダウンロードのURLを特定できれば、Microsoftに連絡することなく製品をダウンロードできます。

それはセキュリティ上の問題ですか?そうではありません。ダウンロードされているものは(プロダクトキーによって)まだ保護されているからです。

しかし、他のデータはどうですか?

データがセキュリティ関連である場合、CDNマテリアルではありません。何かをできるだけ広く利用したくない場合は、CDNに入れないください


サイトがsomewebsite / file.txtであるとします。Akamai DNSが使用されていると言います。次に、クライアントからの最初のまさにリクエストは何らかのウェブサイトに行きますか、それとも最初のまさにリクエスト自体はアカマイに行きますか?
p2pnode

そして、おそらくHTTPリダイレクトとそれらが達成できることを理解していないので、AkamaiエッジサーバーのIPアドレスを使用する方法をクライアントがどのように知っているのかという疑問が残ります。 all ..
p2pnode

@ p2pnode:少し答えを拡大しました。うまくいけば、それはあなたが疑問に思っていることを含んでいます。
デアホッホステープラー

1
これによりパフォーマンスが大幅に低下することはありませんか?単一のTCPストリームで発生するすべてのデータ転送の代わりに、複数のストリームが使用され、ハンドシェークなどのオーバーヘッドが増加します
。– Akash

@Akash:通常、すべてにCDNを使用するのではなく、個々の大きなファイルのみを使用します。したがって、実際には、これは問題ではありません。
デアホッホステープラー

11

CDNへのかなり一般的なアプローチは、「エニーキャスト」として知られているものを使用することです。これがどのように機能するかは、分散サーバーが、宛先としてそのサーバーに応答するDNSと同じ場所にあることです。たとえば、異なるホスティング施設に3つのサーバーがあり、それぞれのDNSがすべてIPアドレスをサーバーの正規のアドレスであると主張している場合があります(たとえば、呼び出しますcontent.example.com)。DNSesはそれぞれ同一のグローバルIPアドレスを持つように構成され、その後、サーバの施設のそれぞれは、BGPは、それがそうことを確認するために更新されます使用し、最も近いサーバー勝利へのルート-あなたは上の名前の検索を行う際にcontent.example.com、最速/最も近いです/ most available DNSは、HTTPサーバーで要求に応答します。

このように、GeoIPのトリックは必要ありません。また、インターネットの異種性のために、物理的な場所とは関係ない場合もある場合もありますが、常に最も高速なサーバーによってコンテンツが提供されます。

アカマイは少なくとも部分的にこのように機能することを理解しています。


5

Origin PullタイプのCDNも利用できます。

Amazon Cloudfrontはこの手法を使用できます。

割り当てられたサーバー名を指すmedia.example.comのようなCNAMEを設定し、すべてのコンテンツをサーバーに残します。CDN経由で配信する画像とコンテンツの場合、URLでmedia.example.comを使用します。要求はサーバーネットワークに送られ、コンテンツが利用できない場合、サーバーはサーバーからコンテンツをプルします。システムに入れられると、コンテンツは需要が存在する場所に最も近いサーバーファームに配信され、割り当てられたTTLのためにそこに残ります。サーバーは、TTLが期限切れになりCloudfrontが更新するまで、キャッシュされたコンテンツのトラフィックを認識しなくなります。


1

アカマイはこの方法では機能しません。さまざまなCDNの動作は異なりますが、アカマイは特にWebサーバーのエニーキャストを行いません。

NYのユーザーが望んでいるwww.acme.com場合、acme.comのネームサーバーはAkamaiネームサーバーにリダイレクト(「代理人」)します。Akamaiネームサーバーは、質問をしているマシンが(IPアドレスに基づいて)どこにあるかを確認し、最も近い/最良のAkamaiサーバーのIPアドレスを返しますwww.acme.com


使い方?Akamaiネームサーバーは、ユーザーから直接、またはAkamaiネームサーバーに委任するユーザーDNSサーバーからリクエストを受信しますか?では、ユーザーの場所ではなく、DNSサーバーの場所に基づいて位置情報を取得しますか?
odiszapc 14

0

AkamaiのCDNがどのように機能するかについてのすばらしい要約は、ここにあります

要するに:

  • CDNサーバーには、アカマイのDNSサーバーを指すCNAMEレコードがあります。
  • クライアントブラウザーがCDNサーバーに対して行う最初の要求は、ユーザーの近くにあるAkamaiサーバーのIPアドレス(「エッジサーバー」と呼ばれる)で応答するDNSがDNSをルックアップすることです。
  • これらのエッジサーバーは、他のユーザーから最近リクエストされた場合、ローカルキャッシュから静的要素を提供でき、アセットのコピーを取得するためにサーバーに戻る必要さえありません。
  • 存在しない要素またはキャッシュできないページは、アカマイネットワークを介してホストの近くの別のエッジサーバーにルーティングされます。そのエッジサーバーは、ホストサイトへの実際の要求を行い、それらをネットワーク経由で元のエッジサーバーに渡し、そこからエンドユーザーに返されます。
  • エッジサーバーはアカマイ独自のプロトコルを使用して内部的に通信し、ボトルネックを迂回してルーティングするため、トラフィックはパブリックインターネットを経由するよりもはるかに速く流れる可能性があります。

また、上記のブログ投稿で述べたように、一部の大企業は独自のサーバーを使用してDNSを解決しているため、CDNを使用する利点の一部が無効になる場合があります。


-2

CDNはエニーキャストDNSで機能します。エニーキャストDNSはエニーキャストIPで動作します。エニーキャストIP:複数のサーバーに1つのIPを割り当てます。ユーザーがDNSリゾルバを要求すると、そのクエリは最も近いサーバーによって処理され、サーバーからのデータを最小の遅延で提供します。


これは、既存のはるかに充実した回答をどのように改善しますか?
チェンムンカ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.