1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS初心者】なぜCloudFrontは速いのか〜リバースプロキシ・CDN・エッジロケーションから理解する〜

1
Posted at

はじめに

「CloudFront を使うと速くなる」と聞いて導入しているけれど、
なぜ速くなるのか を自分の言葉で説明できるでしょうか?

この記事は、CloudFront を「なんとなく速いサービス」として使っている
AWS 初心者を対象に、リバースプロキシ・CDN・エッジロケーション という
3つの観点から、CloudFront の仕組みを整理します。

読み終えた時点で、リバースプロキシ・CDN・エッジロケーションの3つの用語を使って、
「なぜCloudFrontは速いのか」を自分の言葉で説明できるようになることがゴールです。

第1章 リバースプロキシとは

1-1 定義

webサーバー側に配置され、クライアントからのリクエストを受けて、必要に応じてwebサーバーへ転送する中継サーバー

image.png

* 説明の都合上、リバースプロキシをキャッシュサーバーとして解説しますが、それ以外の機能を持つものもあります。(ロードバランサーやTLS終端など)

1-2 メリット

  • webサーバーへの通信・処理の削減
  • webサーバーの運用負荷軽減

クライアントA, B, Cが同じコンテンツをwebサーバーにリクエストする場面を考えます。
**クライアントBが初回、A・Cはキャッシュが既にある状態(2回目以降)**とします。

image.png

図の通り、初回のBだけがwebサーバーまで取りに行き、
A・Cはリバースプロキシのキャッシュから即返却されます。
結果、webサーバーが実際に処理するリクエストは3回中1回だけになります。

第2章 CDNとは

2-1 定義

ざっくり言うと、第1章のリバースプロキシを世界中に分散配置し、
クライアントの最寄りからコンテンツを返す仕組み
です。

下の図のように、各クライアントは「自分の最寄り」のリバースプロキシと通信します。

image.png

2-2 DNSによる最寄り判定

どのリバースプロキシがクライアントの最寄りなのかの判定を担うのがDNSです。

image.png
*DNSが「最寄り」を判定する際は、リクエスト元のIPアドレスと、接続先を選ぶためのネットワーク情報をもとに、応答が最も速い(ネットワーク的に近い)サーバーを返しています。

第3章 CloudFrontとは

3-1 定義

第2章のCDNを、AWSがサービスとして提供しているのがCloudFrontです。

3-2 エッジロケーション

分散配置されたリバースプロキシ1つ1つのことを指し、CloudFrontがコンテンツのキャッシュを保持しておくためのサーバーです。

image.png

第4章 クライアントがCloudFrontを経由してコンテンツを取得するまで

ここまでの説明をもとに、実際のリクエストでどう連携するかを通しで見てみます。

  1. クライアントがDNSに、example.com に対応するIPアドレスを問い合わせる
  2. DNSがリクエスト元のIPアドレスをもとに最寄りのエッジロケーションを判定し、そのIPアドレスをクライアントに返す
  3. クライアントが、受け取ったIPアドレス宛(= 最寄りのエッジロケーション)にコンテンツをリクエストする
  4. エッジロケーションがキャッシュを確認する
    • キャッシュヒット時: そのままクライアントに返す
    • キャッシュミス時: オリジンにコンテンツを取りに行き、キャッシュに保存してからクライアントに返す

image.png

第5章 なぜCloudFrontは速いのか

CloudFront は、リバースプロキシを世界中に分散配置したCDNを、
AWS がサービスとして提供するものでした。
そして、分散配置されたリバースプロキシ1つ1つがエッジロケーションです。

つまり、CloudFront が速い理由は、次の2つです。

  1. DNS がクライアントから最寄りのエッジロケーションを返す → クライアントとサーバーがネットワーク的に近くなる(通信が速くなる)
  2. エッジロケーションがキャッシュを返してくれる → 元のサーバー(オリジン)まで取りに行く回数が減る

参考

1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?