AWS Route53を使った日中間GEO DNSソリューション

1. はじめに

SBクラウド エンジニアの南(cjnan)です。
最近、旅行関連のWebサービスを稼働中のお客さんから、下記のようなご相談をいただいたので、みなさまにも共有したいと思います。

お客様:「現在稼働中のWebサービスが最近好調でアクセス数が増えてきている。調べたてみたら、どうやら中国からのアクセスが多い様子。そこで、中国にもサーバを新設しようと検討しているが、できれば日本と同じURLで稼働させたい。こんなことできますか?

グローバルのWebサービスを展開する時、よくあるパターンとして、各地域にサーバを設置し、ホスト名を別々にするパターンがありますが、UX(User experience)的にもよくないです。

そこで、この課題を解決する方法として、今回はクラウドでWebサーバのGEO DNSソリューションを紹介します。

2. GEO DNSとは

GEO DNSとは、地理データベースと接続元IPアドレスを照合しクライアントに地域ごとの異なるIPアドレスを返すDNSです。
GEO DNSを利用することで、グローバル展開を行うサービスなどでは、どの地域のユーザーにも最大限 のパフォーマンスでサービスを提供できます。
ユーザーから近いサーバに接続させる方法でアクセスを分散することもできるし、長距離によるレスポンス遅延問題も改善できます。また、エンドポイント(URLやホスト名)が一つに集約できるため、システムの設計も容易になります。

3. 「Route53」概要

GEO DNS機能を提供してくれるのが、AWSのRoute53です。
Route53には、レイテンシールーティング(Latency Routing)というクライアントに一番近いリージョンのIPアドレスを返す機能がよく使われますが、本ドキュメントのテーマであるGEO DNS機能はインターネットのネットワーク構成に拠らない、精度の高いレコードの区分けが特徴です。また、レイテンシールーティングはリージョン単位での振り分けに対して、GEO DNSでは国や州などより細かい振り分けが可能です。

Route53と一般的なDNSサーバとの違いは、以下の3つ。

  • Healthchecker機能が付いている
  • Fail over機能が付いている
  • 設定作業がAPI経由ででき、プログラムによってダイナミックに設定変更ができる

では詳しい設定内容を紹介します。

Route53には、振り分けパターンを決定する「ルーティングポリシー」を設定できます。

  • Simple:一般的なDNSと同じ方法です。
  • Weighted:重みによってIPの分けてくれるルールです。例えば、IP1の重みはx、IP2の重みはyの場合、Route53からIP1に分ける数全体のx/sum(x, y)です。
  • Failover:ロードバランサのやり方と同じように、常にHealthchecker で死活監視し、ダウンしたサーバにアクセスしないように自動調整するルールです。
  • Latency:名前の通り、レイテンシーが一番小さいサーバに指定します。ここのレイテンシー基準はリージョンになります。
  • Geolocation:アクセス請求側の国や地域などの地理情報によって近いサーバのIPを返すルールです。

ご参考までに、下図は「Latency」を設定した際の画面です。

4. 日中間GEO DNSソリューション

ここでまず、下記のようなシナリオを想定しましょう。

日本:Alibaba Cloudの日本リージョンからVMサービスECSを購入し、日本のクライアントに対してWebサービスを展開しています。

中国:中国からのアクセスが増えて来て、Alibaba Cloudの上海リージョンからVMサービスECSを購入し、中国国内のクライアントに日本と同じサービスを展開する予定です。

課題:日本で今まで使って来たURLで、中国でもサービスを提供したい。国レベルでアクセス分けたい。

ではRoute53の詳細設定を紹介します。

  1. AWSのコンソール画面を開き、「Route53」を選択し、「パブリックホストゾーン」を作成します。
    ここで入力するURLはWebサービスのURLなので、今まで日本で使われていたURLと同じです。

  2. 作成した「ホストゾーン」に「レコードセット」を設定します。
    ここでは、日本リージョンのサーバと上海リージョンのサーバの、2個のレコードを作成します。
    この際、上記で触れた「ルーティングポリシー」を設定します。
    地理「Geolocation」に設定し、中国サーバはロケーションを「China」に、日本サーバは「Default」にします。このように設定した場合、中国以外のクライアントは全部「Default」の日本側に接続されます。

これで、Route53のGEO DNSの設定が簡単に終わりました。

 

5. まとめ

本ドキュメントでは、AWS Route53のGeolocation機能を使った日中間GEO DNSソリューションを紹介しました。Route 53は可用性も非常に高く、Alibaba Cloudを含め、他社クラウドのVMサービスとも相性が良いので、GEO DNSソリューションとしてRoute 53を検討していただけるとよいかと思います。

余談:「Route53」の名前の由来

ところで、「Route53」というの名前ですが、初めて見たとき「何でRoute53の名前なんだろう」と疑問に思いました。そこで、Quaraで名前の由来を探して見たら、実はアメリカに古い歴史がある「国道66号線(Route66)」高速道路の名前を取ったようです。(←ほんと??)DNSサービスはTCP/UDPの53番ポートを利用しているから、ネットの53番道路でクライアントを目的地まで運ぶ意味で「Route53」に決めたんです。興味ある方はWIKIなどで「国道66号線」を検索してみてください。

この記事をシェアする