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 を提供し、世界中のエッジロケーションから応答する

同じテーマの記事

AWS App Mesh で構築するサービスメッシュ - マイクロサービス間通信の制御と可観測性 App Mesh によるマイクロサービス間のトラフィック制御、リトライポリシー、Envoy プロキシの設定を解説します。 AWS Cloud Map でサービスディスカバリを実現 - マイクロサービス間の動的な名前解決 Cloud Map によるサービスの登録、DNS/API ベースのディスカバリ、ECS 統合を解説します。 専用線接続の設計 - Direct Connect による安定した閉域網接続の実現 AWS Direct Connect を活用した専用線接続の設計手法を解説し、専用接続とホスト接続の選択、冗長構成、VPC との統合による安定した閉域網接続の実現方法を紹介します。 AWS Direct Connect で構築する専用線接続 - 冗長構成とトラフィック制御 Direct Connect による専用線接続の構築、冗長構成の設計、BGP ルーティングの設定を解説します。 Elastic IP アドレスの管理と設計 - 静的 IP の活用とコスト最適化 Elastic IP の割り当て、EC2 との関連付け、未使用 EIP のコスト影響、代替手段の検討を解説します。 AWS Global Accelerator によるグローバルネットワーク最適化 - 低レイテンシ配信とフェイルオーバー Global Accelerator の Anycast IP によるトラフィックルーティング、エンドポイントグループの設計、CloudFront との使い分けを解説します。 グローバルネットワーク高速化 - AWS Global Accelerator と CloudFront で実現する低レイテンシ配信 AWS Global Accelerator と Amazon CloudFront を活用したグローバルネットワーク高速化の設計・運用方法を解説します。 Amazon CloudWatch Internet Monitor でインターネットパフォーマンスを監視 - 可用性とレイテンシの可視化 Internet Monitor によるインターネット経由のアプリケーションパフォーマンス監視、ISP 別の可用性分析、ヘルスイベントの検出を解説します。 AWS Network Manager でグローバルネットワークを可視化 - トポロジーと健全性の一元管理 Network Manager によるグローバルネットワークの登録、トポロジーマップ、ルート分析の活用を解説します。 AWS PrivateLink でプライベート接続を実現 - VPC エンドポイントとエンドポイントサービス PrivateLink による VPC エンドポイントの設計、インターフェースエンドポイントとゲートウェイエンドポイントの使い分けを解説します。 Amazon Route 53 でのドメイン登録と DNS 移行 - レジストラ移管とゾーン設定の実践 Route 53 でのドメイン登録、他レジストラからの移管手順、ホストゾーンの設計とDNSSEC の有効化を解説します。 サービスディスカバリ - AWS Cloud Map でマイクロサービスの接続を自動化する AWS Cloud Map を使ったサービスディスカバリの構築を解説。DNS ベース・API ベースのサービス検出、ECS/EKS との統合、App Mesh との連携を紹介します。 AWS Transit Gateway で構築するハブ&スポークネットワーク - マルチ VPC 接続の設計 Transit Gateway によるハブ&スポーク型ネットワークの設計、ルートテーブル分離、マルチアカウント接続を解説します。 Amazon VPC Lattice で簡素化するサービス間通信 - VPC をまたいだサービスディスカバリ VPC Lattice によるサービスネットワークの構築、認証・認可ポリシー、トラフィック管理を解説します。 Amazon VPC のネットワーク設計 - サブネット構成と NAT Gateway の最適化 VPC のサブネット設計、パブリック/プライベートサブネットの使い分け、NAT Gateway のコスト最適化を解説します。 AWS Wavelength で実現する 5G エッジコンピューティング - 超低レイテンシアプリケーションの設計 Wavelength による 5G エッジでのアプリケーション実行、Wavelength Zone の設計、ユースケースを解説します。