
【グローバルサービス】
Route 53は、AWSが提供する高可用でスケーラブルなDNS(Domain Name System)およびトラフィックルーティングサービスです。
ドメインの登録機能も備えており、ドメイン名の取得から名前解決、トラフィック制御まで一元的に管理することができます。
Route 53では、A、AAAA、CNAME、SRV などのDNSレコードを管理できるほか、エイリアスレコードというAWS特有の機能も利用できます。エイリアスレコードを使用すると、従来のCNAMEのように別のドメイン名を指し示しつつ、AWSリソースを直接指定でき、追加コストなしで高速かつ信頼性の高い名前解決を行うことができます。
Route 53はヘルスチェックやフェイルオーバーに対応しており、異常検知時に自動で別リージョンや別リソースへトラフィックを切り替えることができます。さらに、加重ルーティング・レイテンシベースルーティング・地理的ルーティング・Geo Proximityルーティングなど、用途に応じた高度なルーティングポリシーをサポートしています。
プライベートホストゾーンを利用することで、VPC内専用の名前解決を実現でき、オンプレミス環境とのハイブリッド構成にも対応可能です。さらに、CloudFront、ALB、S3静的ウェブホスティングなどと連携することで、グローバルに分散された信頼性の高い名前解決基盤を構築できます。
重要用語
関連サービス
ユースケース
| ドメインのDNSホスティング | 独自ドメインのDNSゾーンをホストし、www.example.com などのレコードを管理してCloudFrontやELB、S3静的サイトに名前解決する。 |
| ヘルスチェック付きフェイルオーバー | プライマリサイトがダウンしたときに自動的にバックアップサイトに切り替えるフェイルオーバールーティングを設定する。 |
| 複数リージョンへのトラフィック分散 | レイテンシーベースルーティングや地理的ルーティングを使って、ユーザーに最も近いリージョンのシステムへトラフィックを振り分ける。 |
ベストプラクティス
| ヘルスチェックとフェイルオーバー | エンドポイントのヘルスチェックを設定し、異常時は別リージョンへフェイルオーバーする。 |
| レイテンシーベースルーティング | ユーザーに最も近いリージョンにトラフィックをルーティングし、レスポンスを改善する。 |
| TTLの適切な設定 | 変更頻度に応じてDNSレコードのTTLを調整し、キャッシュと柔軟性のバランスを取る。 |
高可用性・バックアップ・リトライ
| 高可用性・バックアップ・リトライ設計のポイント |
|---|
| 【デフォルト】AWS内部で冗長化 ・ネームサーバーの自動分散(4つ) ・グローバルなDNSサーバー配置 ・Anycastルーティング ・DNSデータの複製 ・複数のデータセンター ・ネットワーク接続 ・ヘルスチェックシステムの分散 ・ストレージ |
セキュリティ
| 関連サービス | 設定内容 |
|---|---|
| WAF(アプリケーション層の脅威に対する防御) | - |
| Shield(DDoS攻撃からのリソース保護) | Shield Standardは常時有効 【CloudFrontを使用しない場合】 Shield Advancedの有効化を推奨 |
| ACM(SSL/TLS証明書の自動管理) | - |
| CloudTrail(操作履歴の記録・監査・追跡) | 【自動記録】 作成・更新・削除・設定変更は自動記録される。(コントロールプレーンAPI) データ操作は追跡できない(データプレーンAPI) |
| Config(リソースの構成状態・設定変更を記録) | 【Configが有効な場合】 ホストゾーン/レコード変更履歴・DNSSEC等の準拠評価(※グローバル記録有効時) |
| GuardDuty(脅威を自動検出) | 【GuardDutyが有効な場合】 DNSレコード変更のAPI異常検知 |
ログ・監視
| ログ出力先 | ログの種類 |
|---|---|
| CloudWatch Logs | クエリログ |
標準メトリクス
| メトリクス名 | 説明 |
|---|---|
| ConnectionTime | 接続確立までの時間 |
| DNSQueries | DNSクエリ数 |
| DNSQueries_TCP | TCP経由DNSクエリ数 |
| DNSQueries_UDP | UDP経由DNSクエリ数 |
| HealthCheckLatency | ヘルスチェックのレイテンシ |
| TimeToFirstByte | 最初のバイトまでの時間 |
| HealthCheckFailureReason | ヘルスチェック失敗理由カウント |
| HealthCheckPercentageHealthy | ヘルスチェックの正常率 |
| HealthCheckStatus | ヘルスチェックのステータス |
制限値(固定値/ハードリミット/ソフトリミット)
| 固定値 | 制限値 |
|---|---|
| クエリレート | 無制限(実質的) |
| IPアドレス数/エンドポイント | 2-16 |
| ソフトリミット | 制限値 |
|---|---|
| ホストゾーン数/アカウント | 500 |
| レコード数/ホストゾーン | 10,000 |
| ヘルスチェック数/アカウント | 200 |
| トラフィックポリシー数/アカウント | 50 |
| トラフィックポリシーインスタンス数/アカウント | 5 |
| VPC関連付け数/プライベートホストゾーン | 300 |
| ドメイン登録数/アカウント | 50 |
| Resolver エンドポイント数/リージョン | 4 |
| Resolver ルール数/リージョン | 1,000 |
AWS CLIのサンプルコード
CloudFormationのサンプルコード
Terraformのサンプルコード
料金計算
| 課金項目 | 説明 |
|---|---|
| ホストゾーン | ホストゾーンの月額料金 |
| クエリ数 | DNSクエリ数 (標準クエリ、Latency Based Routingなど) |
| ヘルスチェック | ヘルスチェックの数 |
| ドメイン登録 | ドメイン名の登録・更新料金 |
| トラフィックフロー | トラフィックフローポリシーレコード |