翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS CloudFormation を使用して Amazon Route 53 および Amazon Route 53 Resolver リソースの作成
Amazon Route 53 と Amazon Route 53 Resolver は、リソースとインフラストラクチャの作成と管理の所要時間を短縮できるように AWS リソースをモデル化して設定するためのサービスである AWS CloudFormation と統合されています。必要なすべての AWS リソースを記述したテンプレートを作成すれば、CloudFormation が自動的にこれらのリソースのプロビジョニングや設定を処理します。
CloudFormation を使用すると、テンプレートを再利用して Route 53 および Route 53 Resolver リソースを同じように繰り返してセットアップできます。リソースを一度記述するだけで、同じリソースを複数の AWS アカウント とリージョンで何度でもプロビジョニングできます。
Route 53、Route 53 Resolver、および CloudFormation テンプレート
Route 53、Route 53 Resolver、および関連サービスのリソースをプロビジョニングして設定するには、「CloudFormation templates」を理解する必要があります。テンプレートは、JSON や YAML でフォーマットされたテキストファイルです。これらのテンプレートには、CloudFormation スタックにプロビジョニングしたいリソースを記述します。JSON や YAML に不慣れな方は、CloudFormation デザイナー を使えば、CloudFormation テンプレートを使いこなすことができます。詳細については、「AWS CloudFormation ユーザーガイド」の「CloudFormation Designer とは」を参照してください。
Route 53 は、CloudFormation で次のリソースタイプの作成をサポートします。
-
AWS::Route53::DNSSEC -
AWS::Route53::HealthCheck -
AWS::Route53::HostedZone -
AWS::Route53::KeySigningKey -
AWS::Route53::RecordSet -
AWS::Route53::RecordSetGroup
Route 53 リソースの JSON テンプレートと YAML テンプレートの例を含む詳細については、AWS CloudFormation ユーザーガイドの「Amazon Route 53 resource type reference」を参照してください。
Route 53 Resolver は、CloudFormation で次のリソースタイプの作成をサポートします。
-
AWS::Route53Resolver::FirewallDomainList -
AWS::Route53Resolver::FirewallDomainList -
AWS::Route53Resolver::FirewallRuleGroupAssociation -
AWS::Route53Resolver::ResolverDNSSECConfig -
AWS::Route53Resolver::ResolverEndpoint -
AWS::Route53Resolver::ResolverQueryLoggingConfig -
AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation -
AWS::Route53Resolver::ResolverRule -
AWS::Route53Resolver::ResolverRuleAssociation
Route 53 Resolver リソースの JSON テンプレートと YAML テンプレートの例を含む詳細については、AWS CloudFormation ユーザーガイドの「Amazon Route 53 Resolver resource type reference」を参照してください。
Route 53 および CloudFormation のベストプラクティス
CloudFormation を使用して Route 53 リソースを管理する場合は、以下のベストプラクティスに従って一般的な問題を回避し、信頼性の高いデプロイを確保します。
結果整合性について理解する
Route 53 は、DNS の変更に結果整合性モデルを使用します。これは、特にロールバックや連続した急激な変更中に、CloudFormation オペレーションに影響を与える可能性があります。
重要
CloudFormation が DNS レコードの変更をロールバックしようとすると、Route 53 の結果整合性モデルが原因でロールバックが失敗する可能性があります。CloudFormation が、最近削除されたものの、結果整合性が原因でまだ存在するように見えるレコードを再作成しようとすると、DNS が壊れた状態のままになる InvalidChangeBatch エラーが発生する可能性があります。
結果整合性に関連する問題を最小限に抑えるには:
-
変更を慎重に計画する - 同じ DNS レコードに迅速で連続した変更を加えないようにします。
-
本番環境以外で最初にテストする - 本番環境に適用する前に、開発環境で必ず DNS の変更をテストします。
-
デプロイのモニタリング - DNS 関連のデプロイ中に CloudFormation スタックイベントを注意深く監視します。モニタリングのガイダンスについては、「Amazon Route 53 のモニタリング」を参照してください。
-
ロールバック手順の準備をする - 自動ロールバックが失敗した場合の手動復旧手順を準備します。
DNS レコードの順序付けと論理 ID
CloudFormation で複数の DNS レコードを作成するときは、レコードの順序付けと論理 ID の割り当てに注意してください。
警告
CloudFormation テンプレート内の配列またはリストで DNS レコードを定義した場合、リストの中央に新しいレコードを挿入すると、CloudFormation が既存のレコードに論理 ID を再割り当てする可能性があります。これにより、サービスの中断やロールバックの失敗につながる可能性のあるレコードの置き換えがトリガーされます。
DNS レコード管理のベストプラクティス:
-
明示的な論理 ID を使用する - 配列インデックスに依存するのではなく、常に明示的で意味のある論理 ID を DNS レコードに割り当てます。CloudFormation 論理 ID について詳しくは、「AWS CloudFormation ユーザーガイド」の「リソースセクション構造」を参照してください。
-
新しいレコードを追加する - 既存のリストに新しい DNS レコードを追加するときは、中央に挿入するのではなく、末尾に追加します。
-
関連レコードをグループ化する - 関連レコードを一緒に管理するために
AWS::Route53::RecordSetGroupを使用することを検討してください。詳細については、「AWS CloudFormation ユーザーガイド」の「AWS::Route53::RecordSetGroup」を参照してください。 -
変更セットを確認する - デプロイ前に必ずCloudFormation 変更セットを確認して、予期しないレコードの置き換えを特定します。詳細については、AWS CloudFormation ユーザーガイドの「変更セットを使用したスタックの更新」を参照してください。
ロールバック失敗の処理
DNS 関連の問題が原因で CloudFormation ロールバックが失敗した場合、手動復旧の実行が必要になる場合があります。
失敗した DNS ロールバックから手動復旧を実行するには
-
CloudFormation スタックイベントと Route 53 ホストゾーンレコードを確認して、失敗した DNS レコードを特定する
-
Route 53 コンソールまたは API を使用して、欠落している DNS レコードを手動で作成または更新します。レコード作成について詳しくは、「レコードを使用する」を参照してください。
-
DNS が復元されたら、現在の状態に合わせて CloudFormation テンプレートを更新します。
-
修正されたテンプレートをデプロイして CloudFormation を戻し、実際のリソースと同期させます。
ロールバックの失敗を防ぐには:
-
トラフィックの多い時間帯に DNS レコードの置き換えをトリガーする可能性のある変更を行わないでください。
-
ヘルスチェックとモニタリングを実装して、DNS の問題をすばやく検出します。ヘルスチェックの詳細については、「ヘルスチェックの作成と更新」を参照してください。
-
重要な DNS 変更には、ブルー/グリーンデプロイ戦略の使用を検討してください。デプロイのベストプラクティスの詳細については、「Amazon Route 53 のベストプラクティス」を参照してください。
-
手動 DNS 復旧の緊急手順を文書化する
CloudFormation の詳細はこちら
CloudFormation の詳細については、以下のリソースを参照してください。