[初心者向け]Route53のトラフィックルーティングを実装する

2020.03.31

こんにちは、沖縄在住の下地です。

先月受講したAWS-SAA(ソリューションアーキテクトアソシエイト)の際にRoute53について面白いそうだなと思い基本的なルーティングポリシーについて実装したのでまとめたいと思います。

実装するルーティングポリシー

実装内容としては、コンソール画面で選択できる6つの方法について行います。

  1. シンプルルーティング
  2. 加重ルーティング
  3. レイテンシールーティング
  4. 位置情報ルーティング
  5. 複数値回答ルーティング
  6. フェイルオーバールーティング

今回の実装は、コンソール画面で確認できるルーティングポリシーの実装をメインにするため、ApacheをインストールしたEC2を下記リージョンに配置し、Route53にてホストゾーンを作成した状態からスタートします。

  • 東京
  • バージニア
  • シドニー
  • フランクフルト

シンプルルーティング

シンプルルーティングポリシーの作成手順を図に示します。

レコードセットの作成から、値のところにEC2のIPv4パブリックIPアドレス(IPアドレス)を入力します(この際に複数のIPアドレスを登録することが可能です)。ルーティングポリシーでシンプルを選び作成します。

レコードセット登録後にドメイン名を検索すると登録したIPアドレスのサーバーから応答がきます(複数のIPアドレスを登録するとランダムで応答が返ります)。

加重ルーティング

加重ルーティングポリシーの作成手順を図に示します。

値に1つのIPアドレス(ここでは東京リージョン)を入力します。ルーティングポリシーで加重を選択すると重量とセットIDの入力項目が出てきますので下記のように入力し作成を行います。

  • 重量: 50
  • セットID: test1

同じ手順でバージニアとシドニーリージョンのIPアドレスを用いて作成します。作成時に重量の合計が100になるようにします。作成後の図を示します。

50%は東京リージョンのサーバーの応答が返るように設定しているため、設定後にドメインを確認すると東京リージョンのサーバーの結果が返される回数が多くなりました。

レイテンシールーティング

レイテンシールーティングポリシーの作成手順を図にまとめます。

値にIPアドレス(東京リージョン)を入力し、ルーティングポリシーの設定でレイテンシーを選択すると、設定したIPアドレスのリージョンが選択されますのでセットIDをtest1として作成します。

同様にバージニアとシドニーのEC2のIPアドレスを使用し作成しました。作成後の図をまとめます。

レイテンシールーティングポリシーは応答時間の短いサーバーの結果を返しますので、日本からのアクセスだと東京リージョンのサーバーの結果が返ってきました。また、設定した東京リージョンを削除して確認するとシドニーリージョンの結果が返ってくるようになりました。

位置情報ルーティング

位置情報ルーティングポリシーの作成手順を図にまとめます。

位置情報ルーティングポリシーで位置情報を選択します。登録するIPアドレスは東京リージョンにしますので場所をアジアにします。セットIDはtest1として設定し作成します。

同様にバージニア(北米)とフランクフルト(欧州)の設定を行いました。作成後の図を載せます。

このように登録することで、アクセス位置情報に基づいて応答するサーバーを変化することができるようになります。

複数値回答ルーティング

複数値回答ルーティングは、ヘルスチェックでNGになったIPアドレスは返却されずに正常なサーバーにのみアクセスすることができます。そのためにヘルスチェックの登録からはじめます。

ヘルスチェックの登録

下記の図の手順でヘルスチェックの登録を行います。

可用性のモニタリング項目からヘルスチェックの作成を選択します

東京リージョンのIPアドレスのヘルスチェックを登録するため、赤枠で示した場所に必要情報を記入します。

今回はヘルスチェックの動作確認を行うだけですので、アラームの作成はせずに進めます。

ヘルスチェック動作確認

作成後はすべて正常になっています。

ここでバージニアリージョンのインスタンスに入りアパッチを停止します。

$ sudo service httpd stop
Stopping httpd:          [  OK  ]

停止後に確認するとバージニアリージョンのステータスが異常になりました。

複数値回答の登録

作成したヘルスチェックの機能を使用して図に示すように、以下の項目を入力し作成します。

  • 値: IPアドレス(東京リージョン)
  • ルーティングポリシー: 複数値回答
  • セットID: test1
  • ヘルスチェックとの関連付: はい
  • 関連するヘルスチェック: 東京リージョンに紐づくヘルスチェック

バージニア、シドニー、フランクフルトもそれぞれに関連するヘルスチェックを選択し作成します。

現在、バージニアのヘルスチェックで異常が出てますのでそれ以外のサーバーに接続します。

フェイルオーバールーティング

最後にフェイルオーバールーティングポリシーの実装を行います。フェイルオーバーはプライマリに登録したサーバーのヘルスチェックが失敗するとセカンダリを表示します。そのため、東京リージョンをプライマリ、シドニーリージョンをセカンダリにして実装します。

プライマリの設定

セカンダリの設定

プライマリとセカンダリ登録後は図のようになります。

東京リージョンのサーバーに問題がある場合はシドニーリージョンのサーバーが表示されるようになりました。

まとめ

各種ルーティングポリシーを実装することでRoute53理解が深まりました。また、ヘルスチェックの実装など基本的ですが大事な設定周りなどを実装もできて良かったです。実際に実装してみてRoute53は奥が深そうだと思いましたので次の機会にさらに深掘りしたいと思いました。

参考URL