LoginSignup
0
0

【AWS】CloudFrontのざっくりとした仕組み

Last updated at Posted at 2024-01-02

背景

CloudFrontに対する理解がレベル1からレベル2に上がったので備忘録します。

概要

以下を記載する。

  • CloudFrontの仕組み
    • CDNとは
    • CloudFrontの仕組み
  • 今後調査したいこと

CloudFrontの仕組み

CloudFrontを一言で言うと、「CDNを実現するためのAWSサービス」です。
なので、CloudFrontを理解するにはまずCDNを知る必要があります。

CDNとは(超簡潔ver)

CDNとは、Webコンテンツの配信を高速化するための仕組みです。
オリジンサーバーの情報を世界中のキャッシュサーバーが代わりに配信することで、配信を高速化します。
例えば、キャッシュサーバーがオリジンサーバーより物理的に近いことにより、配信が高速化されます(下図)
CDNの仕組み.png

他にもCDNによって配信を高速化できる理由はありますが、ここでは以上の説明に留めます。
(もっと知りたい方はこちらなど参照)

CloudFrontの仕組み

前述の通り、CloudFrontは「CDNを実現するためのAWSサービス」です。
つまり、CloudFrontを使うことで、Webコンテンツの配信を高速化することができます。
どのようにしてCDNが実現されているのか、以下で簡単に説明します。

前提

Webコンテンツ配信者はCloudFrontを利用するために、オリジンサーバーとCloudFrontの紐付けを行います。
その際、オリジンサーバーのドメインとは別に、CloudFrontからもドメインが発行されます(xxx.cloudfront.net)。
クライアントがWebコンテンツを閲覧する際は、xxx.cloudfront.netにアクセスし、Webコンテンツを閲覧します。

CloudFrontを用いたWebコンテンツ配信の流れ

以下の流れでWebコンテンツが配信されます(こちら参照)

  1. クライアントはxxx.cloudfront.netへWebコンテンツをリクエストする
  2. DNSは1のリクエストを受領し、最適なキャッシュサーバー(ex.物理的に近い)へルーティングする※1
  3. キャッシュサーバーはクライアントにWebコンテンツを配信する※2

このように、CloudFrontを用いると、エンドユーザーはキャッシュサーバーからWebコンテンツの配信を受けることができ、CDNが実現されていることがわかります。

※1…CloudFrontでは"キャッシュサーバー"ではなく"CloudFront POP"と呼ばれる。
※2…リクエストの内容がキャッシュサーバーにない場合、キャッシュサーバーはオリジンサーバーへデータを問い合わせる。

今後調査したいこと(自分用メモ)

前述の「DNSから最適なキャッシュサーバーへのルーティング」について追加調査を行たい

  • クライアントは物理的位置に関わらずxxx.cloudfront.netへリクエストを飛ばすため、裏側で位置情報を元に最適なキャッシュサーバーを特定する処理があると推察できる
  • 前述の説明ではまるでDNSがその処理を行っていると解釈できるが、ワイの認識ではDNSはそのような機能を持たない
  • なので、どこで最適なキャッシュサーバーの特定が行われているのかが気になる
  • 論点は以下と考えられる
    • DNSがクライアントに返却するのは何のIPアドレスか(キャッシュサーバーorその他)
    • Reqの流れはどうなっているか
      • クライアント → DNS → ??? → キャッシュサーバー
      • クライアント → DNS → クライアント → ??? → クライアント → キャッシュサーバー
      • クライアント → DNS → クライアント → ??? → キャッシュサーバー

※2024/01/08追記
↑の答えを見つけた。cloudfront内のdnsリゾルバが位置情報を使って最適なキャッシュサーバーのIPアドレスを返却するっぽい(参考リンク)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0