Amazon Route 53 DNS設計と高可用性ルーティングガイド ​

Amazon Route 53は、高可用性とスケーラビリティを備えたクラウドDNS(Domain Name System)Webサービスです。ドメイン名をIPアドレスに変換する基本機能に加え、ヘルスチェック、トラフィックルーティング、ドメイン登録など、包括的なDNSソリューションを提供します。

Route 53の基本概念 ​

DNSの基本とRoute 53の役割 ​

DNS(Domain Name System)は、人間が読みやすいドメイン名(例:www.example.com)を、コンピューターが使用するIPアドレス(例:192.0.2.1)に変換するシステムです。Route 53は、この基本機能を高可用性とスケーラビリティで拡張したクラウドDNSサービスです。

Route 53の主要機能 ​

  • DNS 解決: 100%のアップタイムSLAを提供
  • ドメイン登録: 数百のTLD(トップレベルドメイン)をサポート
  • ヘルスチェック: エンドポイントの監視と自動フェイルオーバー
  • トラフィックルーティング: 複数のルーティングポリシーによる高度な制御

ホストゾーンの概念 ​

ホストゾーンは、特定のドメイン(example.comなど)のDNSレコードのコンテナです。Route 53では、パブリックホストゾーンとプライベートホストゾーンの2種類を提供します。

パブリックホストゾーン ​

  • インターネット上でのドメイン名解決
  • 世界中のDNSリゾルバーからアクセス可能
  • Webサイト、メール、その他のインターネット向けサービス

プライベートホストゾーン ​

  • VPC内でのみ解決可能な内部ドメイン
  • セキュアな内部名前解決
  • マイクロサービス、内部API、データベースサーバーの名前解決

DNSレコードタイプとその用途 ​

基本的なレコードタイプ ​

Aレコード(Address Record) ​

例: www.example.com. IN A 192.0.2.1
用途: ドメイン名をIPv4アドレスにマッピング

AAAAレコード(IPv6 Address Record) ​

例: www.example.com. IN AAAA 2001:db8::1
用途: ドメイン名をIPv6アドレスにマッピング

CNAMEレコード(Canonical Name Record) ​

例: blog.example.com. IN CNAME www.example.com.
用途: ドメイン名を別のドメイン名にマッピング
制限: ルートドメインには設定不可

MXレコード(Mail Exchange Record) ​

例: example.com. IN MX 10 mail.example.com.
用途: メールサーバーの指定

Route 53固有のレコードタイプ ​

Aliasレコードの特徴 ​

利点

  • ルートドメインに設定可能
  • AWSリソースの動的IPアドレス変更に対応
  • クエリ料金無料

対応リソース

  • Application Load Balancer
  • Network Load Balancer
  • CloudFront Distribution
  • S3 Website Endpoint
  • API Gateway

ルーティングポリシーの詳細 ​

シンプルルーティング ​

最も基本的なルーティングポリシーで、単一のリソースにトラフィックをルーティングします。

シンプルルーティングの設定例 ​

項目設定値
レコード名www.example.com
タイプA
値192.0.2.1
TTL300秒

重み付けルーティング ​

複数のリソースに対してトラフィックを指定した重みに基づいて分散します。

重み付けルーティングの設定例 ​

レコード名前タイプ値重みトラフィック配分セットID
レコード1www.example.comA192.0.2.18080%Primary
レコード2www.example.comA192.0.2.22020%Secondary

レイテンシーベースルーティング ​

ユーザーに最も低いレイテンシーを提供するリージョンにトラフィックをルーティングします。

レイテンシーベースルーティングの設定例 ​

レコード名前タイプ値リージョンセットID
レコード1www.example.comAus-east-1 ELBus-east-1US-East
レコード2www.example.comAeu-west-1 ELBeu-west-1EU-West

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

プライマリリソースが利用できない場合にセカンダリリソースにフェイルオーバーします。

フェイルオーバールーティングの設定例 ​

レコード種別名前タイプ値フェイルオーバーヘルスチェック
プライマリwww.example.comA192.0.2.1Primaryhealthcheck-primary
セカンダリwww.example.comA192.0.2.2Secondary-

地理的位置ルーティング ​

ユーザーの地理的位置に基づいてトラフィックをルーティングします。

地理的位置ルーティングの設定例 ​

レコード名前位置値
レコード1www.example.comAsiaasia-pacific ELB
レコード2www.example.comEuropeeurope ELB
デフォルトwww.example.comDefaultus-east ELB

地理的近接ルーティング ​

リソースとユーザーの地理的近接性に基づいてトラフィックをルーティングし、バイアス値で調整可能です。

地理的近接ルーティングの設定例 ​

レコード名前座標(緯度, 経度)都市バイアス効果
レコード1www.example.com37.7749, -122.4194サンフランシスコ+50影響範囲を拡大
レコード2www.example.com40.7128, -74.0060ニューヨーク0標準

マルチ値回答ルーティング ​

複数の正常なリソースのIPアドレスをランダムに返します。

マルチ値回答ルーティングの設定例 ​

レコード名前値ヘルスチェック
レコード1www.example.com192.0.2.1healthcheck-1
レコード2www.example.com192.0.2.2healthcheck-2

ヘルスチェックと監視 ​

ヘルスチェックの種類 ​

HTTPヘルスチェック設定パラメータ ​

項目設定値説明
プロトコルHTTP/HTTPS使用するプロトコル
ポート80/443チェック対象ポート
パス/healthヘルスチェックエンドポイント
チェック間隔30秒ヘルスチェック実行間隔
失敗しきい値3回連続失敗異常と判定する基準
成功しきい値2回連続成功正常に回復と判定する基準

計算型ヘルスチェックの特徴 ​

主要機能

  • 条件設定: AND/OR演算子で複数条件を組み合わせ
  • 子ヘルスチェック: 複数のヘルスチェックを組み合わせて使用
  • 用途: 複雑な依存関係を持つサービスの監視

CloudWatchアラーム連携ヘルスチェック ​

主要機能

  • メトリクス: CPU使用率、レスポンス時間等の監視指標
  • しきい値: カスタム設定で柔軟な調整が可能
  • 用途: インフラレベルの健全性監視と自動アラート

ヘルスチェック通知とアラート ​

ヘルスチェック通知設定 ​

通知種別用途特徴
SNSトピック健全性変更通知メール、SMS、HTTPエンドポイントへ通知
CloudWatchアラームメトリクスベース監視カスタムメトリクスで柔軟な監視
CloudTrailログAPI呼び出し記録ヘルスチェック操作の監査記録

高可用性設計パターン ​

アクティブ-パッシブ構成 ​

アクティブ-パッシブ構成の特徴 ​

  • プライマリ環境: 本番トラフィックを処理し、リアルタイムヘルスチェックで監視
  • セカンダリ環境: スタンバイ状態でデータレプリケーションを受信
  • フェイルオーバー: 自動的なDNS切り替えでRTOは1-3分

アクティブ-アクティブ構成 ​

アクティブ-アクティブ構成の特徴 ​

マルチリージョン展開

  • 重み付けルーティングでトラフィック分散
  • レイテンシーベースルーティングで地理的最適化

主要メリット

  • 高いスループットと可用性
  • 地域最適化でユーザー体験向上
  • 完全冗長化でシングルポイント障害なし

ディザスタリカバリパターン ​

ディザスタリカバリ戦略比較 ​

DR戦略コスト復旧時間特徴用途
Pilot Light低中(1-3時間)最小限インフラ維持
データレプリケーション
DNS高速切り替え
コスト重視アプリケーション
Warm Standby中短(10-30分)スケールダウン環境維持
Auto Scaling迅速拡張
定期テスト可能
バランス型アプリケーション
Multi-Site高即座(1分未満)フルアクティブ環境
リアルタイム同期
無停止サービス
ミッションクリティカルシステム

パフォーマンス最適化 ​

TTL(Time To Live)の最適化 ​

TTL設定指針 ​

コンテンツ種別推奨TTL理由
静的コンテンツ24-48時間変更頻度が低く、キャッシュ効率を重視
動的コンテンツ5-10分定期的な更新とキャッシュのバランス
フェイルオーバー用60秒以下高速なフェイルオーバーを実現
開発環境300秒以下頻繁な変更テストに対応

DNSクエリ最適化 ​

Alias レコード活用 ​

  • CNAMEレコードよりも高速
  • クエリ料金無料
  • ルートドメイン対応

エニーキャスト配信 ​

  • 世界中のエッジロケーション活用
  • 地理的に最適なDNSサーバーから応答
  • レイテンシー最小化

セキュリティとコンプライアンス ​

DNSSEC(DNS Security Extensions) ​

DNSSEC設定機能 ​

機能設定レベル効果
有効化ホストゾーンレベルDNSレスポンスの整合性を保証
検証デジタル署名DNSデータの改ざんやなりすましを防止
KMS統合署名キー管理キーの安全な生成・保存・ローテーション

アクセス制御とログ記録 ​

セキュリティ統制メカニズム ​

統制手段主要機能使用目的
IAMポリシー最小権限アクセス
リソースベース権限制御
Route 53リソースへのアクセス制御
CloudTrailログDNSレコード変更追跡
API呼び出し監査
操作履歴の記録と監査トレーサビリティ
Config Rules設定変更監視
コンプライアンス検証
セキュリティポリシーの遵守確認

運用とトラブルシューティング ​

一般的な問題と解決策 ​

DNS伝播遅延 ​

yaml
対策:
  TTL短縮: 変更前にTTLを短く設定
  段階的展開: 重み付けルーティングでテスト
  監視強化: 複数地点からの動作確認

ヘルスチェック誤検知の調整項目 ​

  • しきい値調整: 失敗/成功回数をサービス特性に合わせて最適化
  • チェック間隔短縮: 30秒から10秒に変更してより細かな監視を実現
  • 複数チェッカー: 世界各地の複数地点から同時チェックで信頼性向上

監視とアラート ​

監視メトリクス一覧 ​

監視項目データソース監視目的
DNSクエリ数CloudWatchメトリクストラフィックボリュームとコスト管理
ヘルスチェック状態Route 53ダッシュボードエンドポイントの可用性と成功/失敗率
レスポンス時間カスタムメトリクスエンドユーザー体験とパフォーマンス
エラー率DNSログ分析NXDOMAIN、SERVFAIL等のエラー現象を監視

コスト最適化 ​

料金構造の理解 ​

Route 53料金体系 ​

料金項目料金備考
ホストゾーン$0.50/月最初の25ゾーンまで、それ以降は段階的割引
クエリ料金$0.40/100万クエリ月間クエリ数に応じた従量課金
ヘルスチェック$0.50/月チェッカー1つあたりの月額
Aliasクエリ無料AWSリソース(ELB、CloudFront等)向けのみ

コスト削減戦略 ​

コスト最適化手法 ​

最適化手法効果実装方法
Aliasレコード活用CNAMEクエリ料金削減AWSリソースへのポインタをAliasレコードに変更
TTL最適化キャッシュ効率向上コンテンツの特性に合わせたTTL設定でクエリ数減
ヘルスチェック統合不要チェック料金削減重複や使用していないヘルスチェックを整理
ゾーン統合ゾーン料金削減関連ドメインを同一ゾーンで統合管理

まとめ ​

Amazon Route 53は、高可用性とスケーラビリティを備えた包括的なDNSソリューションです。様々なルーティングポリシー、ヘルスチェック機能、Alias レコードなどの強力な機能により、複雑なトラフィック管理要件に対応できます。適切な設計と運用により、グローバルスケールでの高可用性アプリケーションを実現し、優れたユーザー体験を提供できます。


引用元: