AWS CLF(Cloud Practitioner)対策

Route 53とCloudFront

Route 53 と CloudFront

このレッスンを終えると、DNS と CDN がそれぞれ何をしているかを役割として説明でき、リージョン・アベイラビリティーゾーン・エッジロケーションの3階層を区別できるようになります。

自分でサイトを公開したときの2つの手間

サーバーを1台建てて公開したとき、まずドメインを買い、DNS の管理画面で A レコードにサーバーのグローバル IP を書きました。これでドメイン名から IP アドレスを引けるようになり、ブラウザがたどり着けます。

その後、海外からのアクセスが遅いという話が出たかもしれません。日本のサーバー1台に世界中からアクセスが来れば、物理的な距離のぶんだけ遅くなります。画像や CSS のような変わらないファイルまで毎回日本まで取りに来るのは無駄です。ここで各国にキャッシュサーバーを置くという発想が出てきます。

この2つの手間に対応するのが Amazon Route 53 と Amazon CloudFront です。

Route 53 は DNS

Route 53 は AWS のマネージド DNS サービスです。ドメイン名を IP アドレスやリソースに変換する電話帳の役目を担います。ドメインの登録そのものもできます。

CLF で押さえるのは、単なる名前解決だけでなくルーティングポリシーを持つ点です。

ポリシー何をするか
シンプル常に同じ宛先を返す
加重割合を決めて複数の宛先に振り分ける。段階的なリリースに使う
レイテンシー応答が速いリージョンへ誘導する
位置情報アクセス元の国や地域で宛先を変える
フェイルオーバーヘルスチェックが失敗したら待機系へ切り替える

ヘルスチェックと組み合わせて障害時に別リージョンへ切り替えられる点が、可用性の文脈でよく問われます。

CloudFront は CDN

CloudFront はコンテンツ配信ネットワーク (CDN) です。世界中に配置されたエッジロケーションにコンテンツをキャッシュし、利用者に一番近い場所から返します。効果は次の2つです。

  • 距離が縮まるので表示が速くなる
  • 元のサーバー (オリジン) へのアクセスが減るので負荷とデータ転送量が下がる

オリジンには Amazon Simple Storage Service (S3) のバケットでも、EC2 でも、AWS の外にあるサーバーでも指定できます。加えて AWS WAF や AWS Shield と組み合わせやすく、攻撃をエッジで受け止められる点もよく出ます。

3つの階層を整理する

ここでこの章の要になる階層をはっきりさせます。

  • リージョン — 東京や大阪のような地理的に離れた地域。データをどの国に置くかを決める単位
    • アベイラビリティーゾーン — 1つのリージョンの中にある、電源や建屋が分かれた複数のデータセンター群。障害に備えて分散させる単位
  • エッジロケーション — リージョンとは別に世界中に多数置かれた配信拠点。CloudFront や Route 53 が使うキャッシュと受付の場所であり、ここでサーバーを起動するわけではない

エッジロケーションはアベイラビリティーゾーンの下位ではありません。用途がまったく違う別系統の拠点で、数はリージョンよりずっと多くなります。

試験ではこう出る

  • 「ドメイン名を登録したい」「DNS サービスはどれか」 — Route 53
  • 「障害時に別リージョンへ自動的に切り替えたい」 — Route 53 のフェイルオーバールーティング
  • 「世界中の利用者への配信を高速化したい」「静的コンテンツをキャッシュしたい」 — CloudFront
  • エッジロケーションを使うサービスはどれか」 — CloudFront
  • 地理的に離れた場所にも置きたい」 — リージョン
  • 高可用性を確保したい」 — 複数のアベイラビリティーゾーン

引っ掛けとして、配信の高速化に対して Auto Scaling や ELB を選ばせる選択肢が並ぶことがあります。どちらも実在しますが、負荷を分散するだけで利用者との距離は縮まりません。距離という語が出たら CloudFront です。

まとめ

  • Route 53 は DNS とドメイン登録を担い、ルーティングポリシーで振り分けやフェイルオーバーもできる
  • CloudFront は CDN で、エッジロケーションのキャッシュにより高速化とオリジン負荷軽減を行う
  • リージョンは地域、アベイラビリティーゾーンはその中の分離されたデータセンター群、エッジロケーションは配信拠点
  • 高速化はエッジ、高可用性はマルチ AZ、地理的分散はリージョンという対応で読む
生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア
編集 LuaGate編集部

復習ミニクイズ

日本にあるサーバーで公開している Web サイトについて、海外からの画像や CSS の読み込みが遅いという声が上がっています。表示を速くするために最も適切なサービスはどれですか。