こんにちは、クラウドインテグレーション2部 技術1課 宮形 です。
Amazon Route 53 の位置情報ルーティングを使うことで、クライアントの世界の位置毎に異なる名前解決を返すことができます。
ルーティングポリシーの選択 - Amazon Route 53
例えば、北米からのアクセスは AWS バージニア北部リージョンの Webシステムへ、それ以外は 東京リージョン の Webシステムへ誘導するといったことができます。
そんな位置情報ルーティングですが、動作確認をどのように行えばよいのか疑問になりました。 わざわざ北米まで行くのも大変ですし、現地に協力者が居るとも限りません。
私が思いついた手っ取り早い方法は AWS CloudShell の利用でした。AWS CloudShell はAWSリージョン毎に用意されていますので、そこから動作確認を行えば地域毎の名前解決を簡単に確認できるはずです。
実際にやってみた結果を本BLOGでご紹介いたします。
Webサーバーの準備
東京リージョンと、バージニア北部リージョン にそれぞれ AWS の EC2 で Webサーバーを用意しました。Amazon Linux 2 に Apache をインストールして、リージョン毎に異なる Webページを配置します。
sudo yum install httpd sudo systemctl start httpd cd /var/www/html sudo vi index.html
- 東京リージョンのEC2
This server is located in Tokyo.
- バージニア北部のEC2
This server is located in Virginia.
Amazon Route 53 位置情報ルーティングの設定
すでに ホストゾーンの設定は終わっている前提とします。 Amazon Route 53 コンソールより [ホストゾーン] - [対象ホストゾーン (例では test.miyagata.xxx) ] を選択します。
対象ホストゾーンのページで [レコードを作成] をクリックします。
「レコードのクイック作成」の画面になった場合は、[ウィザードに切り替える] をクリックします。
「ルーティングポリシー」より [位置情報] のチェックを入れ、「次へ」を選択します。
「レコードを設定」の画面になります。本件では レコード名を [geodns.test.miyagata.xxx] とし、レコードタイプは [A] としました。 画面を下スクロールします。[位置情報レコードを定義] を選択します。
東京リージョンのEC2向けのレコードを設定します。[場所] は [デフォルト] としました。
続けて、バージニア北部リージョンのEC2向けのレコードを設定します。[場所] は [北米] としました。
内容を確認して [レコードを作成] を選択します。
下記のように無事レコードが登録されました。
動作確認
とりあえず自分パソコンで nslookup してみると、日本国内なので デフォルト のレコードが返されました。
AWS CloudShell から動作確認
AWSマネージメントコンソールから AWS CloudShell を起動して、下記コマンドを実行しました。
curl http://geodns.test.miyagata.xxx
東京リージョンでの結果
バージニア北部リージョンでの結果
curl を実行したAWSリージョン毎に異なるWebシステムへルーティングされているようです。 無事、Amazon Route 53 位置情報ルーティング の期待通りの動作を確認できました。
まとめ
今回は AWS CloudShell で簡易的な確認でしたが、Webブラウザ上からも確認したい場合は Windows の EC2 や WorkSpaces を用意してGUI上から行う方法も検討できます。
一時的な動作確認に利用するコンピューティングリソースを瞬時に用意できる、AWS クラウドのメリットを体験することができてよかったです。