Amazon Route53の説明とRoute53とEC2との関連について

はじめに

システムの写真

AWSが提供する権威ドメインネームシステム(DNS)サービスであるAmazon Route 53(以下、Route53)ですが、このサービスは、可用性が高く低レイテンシーなアーキテクチャでDNSサービスを実現するマネージドサービスです。これを利用することにより、オンプレミス環境におけるDNSサーバーの設計/構築/維持管理の負荷が不要となります。今回はそんなRoute53についての概要についてご紹介いたします。また簡単ではありますがEC2とRoute53との関連についても触れます。

DNS(Domain Name System)とは

DNSはインターネット上の「アドレス帳」のことです。ユーザーとしては表向きにはgoogle.co.jpのようなドメイン名を通じてWebサイトにアクセスしますが、内部的にはドメイン名ではなくIPアドレスの形でサイトを探索しています。インターネットに接続されているPCにはユニークなIPアドレスが割り当てられ、これを手掛かりにサイトの場所を探すからです。ところがIPアドレスのような意味のない英数字を人間が認識することは大変であるため、DNSサーバーを利用することにより、IPアドレスを、ドメイン名という意味のあるわかりやすい形で記述できるようにします。

ホストゾーン

Route53はAmazonの提供するDNSサービスですが、上記の「アドレス帳」にあたる部分をRoute53ではホストゾーンと呼んでいます。ドメイン/サブドメイン内のDNSリソースレコードを管理するホストゾーンを作成して登録します。登録したホストゾーンは、4つのトップレベルドメイン(*.com/*.co.uk/*.org/*.net)の異なるロケーションに配置されたDNSサーバーで管理されます。AWSではRoute53のみSLA(サービスを提供する事業者が契約者に対し、どの程度のサービス品質を保証するかを提示したもの)を100%で定義しています。ホストゾーンにはパブリックホストゾーンとプライベートホストゾーンの2種類があり、ホストゾーンを作成時にどちらかを選ぶ必要があります。インターネット上に公開されるドメインの情報を管理するパブリックホストゾーンと、VPCで構成されたプライベートネットワークにおいてDNSドメインのレコードを管理するプライベートホストゾーンです。

エイリアスレコード

AWSサービスは、エンドポイントのIPアドレスが動的に変化するため、Aレコード(ドメイン名とIPを紐付けるレコード)の設定を行うことができません。このような場合一般的にはCNAMEレコード(ドメイン名に別名をつけることができるレコード)で別名を登録しますが、Route53の特徴的な機能の1つに、CNAMEレコードと似た処理を行うエイリアスレコードがあります。エイリアスレコードの場合、CNAMEレコードと比較してレスポンスが高速であり、S3/CloudFront/ELBロードバランサーへのクエリが無料になる利点があります。

ポリシーベースのルーティング

Route53のトラフィックルーティングは、従来のDNSサービスのように事前に定義されている静的リソースレコードに戻づいて応答するだけではありません。ポリシーで定義されたルールに基づいて状況に応じて動的に転送先を変更するポリシーベースのルーティングとなっています。具体的には以下の複数のルーティングポリシーに従い、クライアントからのクエリ要求にルールを適用して応答します。Route53のルーティングポリシーの種類は以下の通りです。

ポリシー名説明
シンプルルーティング(Simple)従来のDNSと同様に事前に設定された値に基づいてDNSクエリに応答
加重ルーティング(Weighted)複数のエンドポイントに対して重みづけを設定し、より重み付けの高いエンドポイントリソースにより多くのルーティングがなされる
レイテンシールーティング(Latency)AWSリージョン間の遅延が少ない方のリソースにルーティングされる
フェイルオーバールーティング(Failover)ヘルスチェックの結果に基づき、利用可能なリソースにのみルーティングされる
位置情報ルーティング(Geolocation)クライアントの位置情報に基づき、ルーティングされる

DNSフェイルオーバー

DNSフェイルオーバーとは、ヘルスチェックによりエンドポイントのリソースの正常性をチェックし、正常な場合のみルーティングされるようにしてDNSクエリに応答する仕組みです。Route53のヘルスチェックは、エンドポイントに到達可能か/使用可能か/機能中であるかを世界中の複数の場所から定期的に確認します。Route53は、ヘルスチェックで正常と確認できたエンドポイントのみをDNSクエリへの応答として返します。またヘルスチェックの結果、1つも正常なエンドポイントが存在しない場合は、Route53は逆にすべてのエンドポイントを正常とみなしてDNSクエリに応答します。

EC2とRoute53

具体的な例として、仮にAWSを利用し、独自ドメインを持つWebサーバーを構築したい場合にDNS関連で行わなければならない作業について簡単に記述します。EC2インスタンス(仮想サーバ)を作成するとAWSではEC2インスタンスに対して自動でグローバルIPとドメインが割り当てられます。ここで割り当てられるドメインとIPは定期的に更新されるため、仮にEC2インスタンスをWebサーバとしたい場合、インターネットに公開するドメイン、IPアドレスとしては問題があります。そこでグローバルIPを固定して独自ドメインと紐づける、DNSの設定を行う必要があります。必要な手順は、Elastic IP(固定IPアドレス)をEC2へアタッチしてグローバルIPを固定することと、ホストゾーンを作成し(*ホストゾーン1つにつき毎月0.5ドルの料金が発生する)、Elastic IPと公開したい取得済み独自ドメイン名を紐づける手順となります。これを行うことにより、独自ドメインを持つWebサーバーをインターネット上に公開することが可能となります。

おわりに

今回はAmazon Route 53についての概要をご紹介させていただきました。Amazon Route 53はAWSが提供するDNSマネージドサービスであり、簡単にDNSサービスを構築できるため、これだけのためにAWSを利用する場合もあるほど便利なサービスとなっています。管理者の手間を大幅に省くことができますので、ぜひこの機会に導入を検討してみてはいかがでしょうか?

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です