Route53 シリーズ 4. Route53のポリシー(2) Failover / Geolocation / Geoproximity / Multi Value
こんにちは、イムチェジョンです。
今回はRoute53ルーティングポリシーについて調べて、実際にやってみます。
前のブログで3つのルーティングポリシーを説明したので、今回は残りの4つのルーティングポリシーを説明します。
[ Route53 シリーズ ]
1. Route53を調べて、使用してみた。
2. Route53のヘルスチェックをやってみた
3. Route53ルーティングポリシー(1)- Simple / Weighted / Latency
4. Route53ルーティングポリシー(2)- Failover / Geolocation / Geoproximity / Multivalue answer
アジェンダ
- やってみる前に下準備
- Route53ルーティングポリシー
- まとめ
1. やってみる前に下準備
EC2インスタンスの構築します
前のブログで作成済みの状態なら、作成しなくても大丈夫です。
以下の設定で3つを構築します。
[ インスタンス1 ]
AMI:Amazon Linux 2 AMI
インスタンスタイプ:t2.micro
セキュリティグループ:HTTP 80
Tag:Name -> route-seoul
キーペア : 既存キーペア
及び新しいキーペア
の中で選択
リージョン:ap-northeast-2 (Seoul)
→ パブリックIP:54.180.137.58
[ インスタンス2 ]
AMI:Amazon Linux 2 AMI
インスタンスタイプ:t2.micro
セキュリティグループ:HTTP 80
Tag:Name -> route-tokyo
キーペア : 既存キーペア
及び新しいキーペア
の中で選択
リージョン:ap-northeast-1 (tokyo)
→ パブリックIP:54.168.21.245
[ インスタンス3 ]
AMI:Amazon Linux 2 AMI
インスタンスタイプ:t2.micro
セキュリティグループ:HTTP 80
Tag:Name -> route-virginia
キーペア : 既存キーペア
及び新しいキーペア
の中で選択
リージョン:us-east-1 (Virginia)
→ パブリックIP:35.173.179.167
ヘルスチェック作成
以下の設定でインスタンス(route-tokyo / route-virginia)のヘルスチェックを作成します。
ヘルスチェック名:rotue-tokyo-check
エンドポイントの監視:IPアドレス
チェック
ドメイン名:54.168.21.245
アラムの設定:No
ヘルスチェック名:route-virginia-check
エンドポイントの監視:IPアドレス
チェック
ドメイン名:35.173.179.167
アラムの設定:No
2. Route53ポリシーのハンズオン
2-1. フェイルオーバールーティングポリシー(Failover Routing Policy)
- 特定リソースが正常である場合、該当リソースにトラフィックをルーティングし、1つ目のリソースが正常でない場合、他のリソースにトラフィックをルーティングする
実際にやてみましょう。
2つのレコードを作成します。
[ 1つ目 ]
レコード名:failover
.routetest.ml
レコードタイプ:A
値:54.168.21.245
ルーティングポリシー:Failover
フェイルオーバーレコードタイプ:Primary
ヘルスチェック:rotue-tokyo-check
(Primary
の場合、必ず設定)
レコードID:tokyo
[ 2つ目 ]
レコード名:failover
.routetest.ml
レコードタイプ:A
値:35.173.179.167
ルーティングポリシー:Failover
フェイルオーバーレコードタイプ:Secondary
レコードID:virginia
レコードが追加されました。
レコード名に接続をしてみましょう。Primary
の東京リージョンのインスタンスに接続されました。
今回は強制的に東京リージョンのインスタンスのヘルスチェックをunhealthy
に作ります。
もう一回レコード名に接続してみると、virginiaのインスタンスに接続するのを確認できます。
2-2. 位置情報ルーティングポリシー(Geolocation Routing Policy)
- ユーザーの地理位置、つまりDNSクエリが発生する位置をベースにトラフィックを提供するリソースを選択
- 地理的ルーティングを使用した配布権がある位置でのみコンテンツを配布できるように制限可能
実際にやってみましょう。
2つのレコードを作成します。
[ 1つ目 ]
レコード名:geolocation
.routetest.ml
レコードタイプ:A
値:54.168.21.245
ルーティングポリシー:Geolocation
Location:Aisa
レコードID:tokyo
[ 2つ目 ]
レコード名:geolocation
.routetest.ml
レコードタイプ:A
値:35.173.179.167
ルーティングポリシー:Geolocation
Location:Default
レコードID:virginia
追加されました。
virginiaリージョンがDefault
になっていても、私がある場所はAisa
なので、東京のインスタンスで接続します。
今回はtokyo
のレコードのLocationを変更してみましょう。
Location:Aisa
→ Africa
こうなると、Africa
いる人はtokyo
のレコードに接続し、以外の人はDefault
のvirginia
のレコードに接続します。
確認をしてみると、virginia
のレコード名に接続しました。
2-3. 地理的近接性ルーティングポリシー(Geoproximity Routing Policy)
- Amazon Route 53がユーザーとリソースの地理的位置を基にトラフィックをリソースにルーティング
- Route 53がトラフィックをリソースにルーティングする地理的リージョンの大きさをバイアスの値を指定して選択的に変更可能
- ルーティングする地理的リージョンの大きさを拡張、縮小するためにバイアスの値を1~99 にを指定
2-4. 複数値回答ルーティングポリシー(Multivalue answer routing policy)
- DNSクエリに対して多数の値を返すように構成
- 複数値回答ルーティングを使用すると、各リソースのステータスを確認することもできるので、Route 53は正常リソースの値だけを返却
- ステータス確認する場合、Route 53はステータス検査が正常の場合にのみIPアドレスにDNSクエリに応答
- ステータス確認しない場合、Route 53は常にレコードが正常だと判断
実際にやってみます。
2つのレコードを作成します。
[ 1つ目 ]
レコード名:multi
.routetest.ml
レコードタイプ:A
値:54.168.21.245
ルーティングポリシー:Multivalue answer
ヘルスチェック:rotue-tokyo-check
レコードID:tokyo
[ 2つ目 ]
レコード名:multi
.routetest.ml
レコードタイプ:A
値:35.173.179.167
ルーティングポリシー:Multivalue answer
ヘルスチェック:route-virginia-check
レコードID:virginia
二つのレコードが作成されました。
接続してみると、TTLの時間ごとに交互に二つのインスタンスに接続されます。
ターミナルでドメイン情報を確認してみます。二つのレコードのIP情報が確認できます。
$ dig multi.routetest.ml (省略) ;; ANSWER SECTION: multi.routetest.ml. 300 IN A 54.168.21.245 multi.routetest.ml. 300 IN A 35.173.179.167 (省略)
3. まとめ
今回はRoute53のルーティングポリシーを調べてやってみました。
これで4つのRoute53シリーズが書き終わりました。シリーズを書きながら、Route53がどのように動いているのかを学びました。
Route53のルーティングポリシー詳しい情報はしたのドキュメントで確認できます。 https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/routing-policy.html