Amazon Route 53 の DNS 設計 - ルーティングポリシーとヘルスチェックの実践
Route 53 のルーティングポリシー、エイリアスレコード、ヘルスチェックによるフェイルオーバー設計を実践的に解説します。
Route 53 の基本とエイリアスレコード
この記事は約 4 分で読めます。 Route 53 は AWS が提供する権威 DNS サービスで、ドメイン登録、DNS ルーティング、ヘルスチェックの 3 つの機能を統合しています。最大の特徴はエイリアスレコードです。標準の DNS では Zone Apex (example.com のようなネイキッドドメイン) に CNAME レコードを設定できませんが、Route 53 のエイリアスレコードはこの制約を回避し、CloudFront ディストリビューション、ALB、S3 静的ウェブサイトエンドポイントなどの AWS リソースを Zone Apex に直接マッピングできます。エイリアスレコードへの DNS クエリは無料で、CNAME のような追加の DNS 解決も発生しないため、レイテンシとコストの両面で有利です。
この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
ルーティングポリシーの使い分け
Route 53 は 7 種類のルーティングポリシーを提供しています。シンプルルーティングは単一リソースへの基本的なルーティングです。加重ルーティングは複数リソースにトラフィックを割合で分散し、カナリアリリースで新バージョンに 10% のトラフィックを流すといった使い方ができます。レイテンシベースルーティングは、ユーザーに最も低レイテンシのリージョンを自動選択します。東京とバージニアにデプロイしたアプリケーションで、日本のユーザーは東京リージョンに、米国のユーザーはバージニアリージョンにルーティングされます。フェイルオーバールーティングはプライマリとセカンダリを定義し、ヘルスチェック失敗時に自動切り替えします。地理的近接性ルーティングはバイアス値でルーティング範囲を調整でき、特定リージョンへのトラフィック誘導に使います。
ヘルスチェックとフェイルオーバー設計
Route 53 のヘルスチェックは、エンドポイントの HTTP/HTTPS/TCP 応答を世界中のヘルスチェッカーから定期的に監視します。デフォルトでは 30 秒間隔で、3 回連続失敗でアンヘルシーと判定されます。高速ヘルスチェック (10 秒間隔) を有効にすると、障害検知を約 10 秒に短縮できます。マルチリージョンのフェイルオーバー設計では、プライマリリージョンの ALB にヘルスチェックを設定し、フェイルオーバールーティングでセカンダリリージョンの ALB を指定します。ヘルスチェックは CloudWatch アラームと連携でき、アラーム状態をヘルスチェックの判定に使用することも可能です。これにより、エンドポイントの応答だけでなく、アプリケーションのカスタムメトリクスに基づくフェイルオーバーを実現できます。
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。
まとめ
Route 53 はエイリアスレコードと多彩なルーティングポリシーにより、単純な DNS 解決から高度なトラフィック制御まで対応する DNS サービスです。ヘルスチェックとフェイルオーバールーティングの組み合わせで、マルチリージョンの高可用性アーキテクチャを DNS レイヤーで実現できます。100% の可用性 SLA はインフラの信頼性の基盤として重要です。
AWS の優位点
- エイリアスレコードは CloudFront、ALB、S3 などの AWS リソースを Zone Apex (ネイキッドドメイン) に直接マッピングでき、CNAME では不可能な設定を実現する
- レイテンシベースルーティングでユーザーに最も低レイテンシのリージョンへ自動的にルーティングし、グローバルアプリケーションの応答速度を改善できる
- ヘルスチェックとフェイルオーバールーティングの組み合わせで、プライマリリージョンの障害時に自動的に DR リージョンへ切り替えられる
- 加重ルーティングでトラフィックの割合を制御し、カナリアリリースや段階的な移行に活用できる
- Route 53 の DNS クエリは 100% の可用性 SLA を提供し、世界中のエッジロケーションから応答する