ナレッジコミュニケーションの大柳です(@oyngtmhr)。
16日目はAzure Traffic Managerです。DNSレベルでアクセスを制御することで、可用性やレスポンスを向上させることができます。
概要
Azure Traffic Managerは、あるエンドポイントへのアクセスを、DNSを使って複数のエンドポイントにトラフィックを分散することができます。
機能
・ルーティング方法
4つののルーティング方法があります。
優先順位:エンドポイントに1~1000の優先度をつけてルーティングを行います。トラフィックは優先度が最小のエンドポイントに振り分けられます。最優先のエンドポイントが利用不可になった場合は、次に優先度の小さいエンドポイントに振り分けられます。Active-Standby構成のようなイメージです。
重み付け:エンドポイントに1~1000の重みをつけてルーティングを行います。トラフィックは重みに応じた確率で各エンドポイントに振り分けられます。アプリケーションのリリース時に、特定のエンドポイントにまずリリースを行い、重みを小さくしておくことで、リリースの影響を見ながら、段階的にリリースを進める、といった使い方が可能です。
パフォーマンス:ネットワーク上の応答時間が最も短いエンドポイントに振り分けを行います。ユーザは自分から見て最もパフォーマンスの高いエンドポイントにアクセスすることができます。
地理的:地理的に最も近いエンドポイントに振り分けを行います。エリアはリージョン、国、州の粒度を設定できます。
・自動フェールオーバー
Traffic Managerでは、エンドポイントを定期的に監視します(デフォルトは30秒)。許容回数(デフォルトは3回)以上、正常な応答がない場合は、障害状態と判断し振り分けを止めます。なお、すべてのエンドポイントが障害状態になった場合は、エンドポイントを返さないよりはいいという考えのもと、Traffic Managerはすべてのエンドポイントがオンラインであるかのように応答します。
・入れ子になったTraffic Managerプロファイル
Traffic Managerの下にさらに入れ子にしてTraffic Managerに振り分けることもできます。以下の図のようにパフォーマンス重視のルーティングで最も近いエンドポイントに振り分けて、振り分けられたエンドポイントではリリースにあわせて重み付けルールでTraffic Managerにより振り分けることができます。
https://docs.microsoft.com/ja-jp/azure/traffic-manager/traffic-manager-nested-profiles から引用
・エンドポイント
エンドポイントには以下の3つが利用可能です。
Azureエンドポイント :Azureで提供されるサービス。
外部エンドポイント:Azure外のオンプレミスサーバや外部プロバイダーのサービス。
入れ子になったエンドポイント:Traffic Managerの下にさらにTraffic Managerを入れ子に配置する。
その他
・ルーティング方法はオンラインで変更でき、変更は1分以内に適用される。
・Traffic View(プレビュー)でルーティング統計情報を確認もできる。
料金
・受信したDNSクエリの数に100万クエリ単位で課金されます。
・監視したエンドポイントの数に対して課金されます。Azure内部と外部のエンドポイントでは外部の方が料金が高いです。
まとめ
DNSを使用した負荷分散を柔軟にできます。可用性やパフォーマンスの向上、重み付けによる段階的リリースなど様々なケースで使えて利用シーンも広がりそうです。