目的
SAAの勉強用にRoute53を学んだらとっても面白かったので
備忘録レベルで私の理解を残しておく。
SAA資格取得を志すどこかの誰かの参考になってくれたら幸い。
Route53について
Route53とはAWSが提供するフルマネージド型のDNS運用サービスである。今回はシンプルにクライアントがAWS内のEC2インスタンスで稼働しているWebコンテンツにアクセスする例を考える。このケースでRoute53の最も多いのが、ELBのエンドポイントにルーティングするという使われ方だ。システムの規模やリソースの稼働状況、地理的な要因などさまざまな状況に合わせて適切なルーティングを実現できる。
次から大きく3つに分けて解説していく
- ルーティングポリシー(7つ)
- シンプルルーティング
- 荷重ルーティング
- フェイルオーバールーティング
- 位置情報ルーティング
- 地理的近接ルーティング
- 複数回答ルーティング
- レイテンシールーティング
- レコード
- ホストゾーン
ルーティングポリシー
シンプルルーティング
これは最も標準的なDNSとしての使われ方である。
クライアントがアクセスしたいURLのドメイン名に対してELBのエンドポイントを返してあげるという構成だ。
荷重ルーティング
こちらは異なる性能のEC2インスタンスが3つ稼働している場合、ルーティングに重みを付けをすることで最も性能の高いEC2インスタンスへアクセスさせるといった使い方ができたりする。
フェイルオーバールーティング
稼働中のEC2インスタンスが3つとも障害により停止してしまった場合、Route53側でリソースのヘルスチェックの結果からクライアントへ「現在サービスの障害復旧中です」といったページへルーティングできる機能。sorryページなんて言ったりする。sorryページは通常、S3の静的Webコンテンツに配置されていたりする。primaryにELBをセットし、SecondaryにS3のWebコンテンツエンドポイントに向ける。
位置情報ルーティング
クライアントの位置情報を元に最適なリソースを提供するようにルーティングできる機能。例えば日本に住んでいるクライアントからのアクセスに対して日本語のWebコンテンツにルーティングさせたりなど。
地理的近接ルーティング
位置情報ルーティングと少し混同するが、こちらはクライアントがアクセスしてきた地点から最も近いリソースへルーティングさせてできるだけ低遅延で返すことを目的としている。
複数回答ルーティング
3つのEC2インスタンスが稼働しているとする、ランダムでヘルスチェックを行い、問題なければルーティングする。問題あれば別のリソースのヘルスチェックをして問題なければルーティングする。といった使われ方を実現する機能である。
レイテンシールーティング
最も遅延がないリソースへルーティングする機能である。
レコード
DNSサーバにはさまざまなレコードを登録することができるがRoute53にはAliaceレコードという特別なレコードがある。こちらはドメイン名(Zone Apex)とELBエンドポイントなどのAWSリソース名を紐付けしておくことができる。CNAMEレコードも同様な設定が可能だが以下の点で優れている。
- 可用性:
AWSエンドポイントは予告なく変更されたりするらしいが、Aliaceの場合は変わってもAWSが変更後のエンドポイントに再登録してくれる。これにより予期せぬアクセスエラーや手動による変更作業の負荷軽減を実現できる。最高である。 - レイテンシー:
CNAMEレコードに登録した場合、クライアントからのドメイン要求に対して一度エンドポイント名を返し、再度エンドポイントに紐づくIPアドレスを返却しなくてはならない。しかし、Aliaceの場合は一回のアクセスでエンドポイントに紐づくIPアドレスを返却することが可能なのである。素晴らしい。どちらの場合もエンドポイントとIPアドレスを紐づけるAレコードの登録は必須であるが。
ホストゾーン
- パブリックホストゾーン:インターネット上で公開され、グローバルにアクセス可能。こちらが普通のDNSサーバとしての機能。
- プライベートホストゾーン:指定されたVPC内のみで利用され、インターネットからはアクセス不可。こちらはVPC内で名前解決する時の使われ方。
終わりに
のちのちちゃんと図を入れます。