[アップデート] Route53でパブリックDNSレコードの高速リカバリ機能がリリースされました

[アップデート] Route53でパブリックDNSレコードの高速リカバリ機能がリリースされました

2025.12.01

はじめに

皆様こんにちは、あかいけです。

2025年11月26日、Amazon Route 53でパブリックホストゾーンに対する「高速リカバリ(Accelerated Recovery)」機能がリリースされました。

https://aws.amazon.com/jp/about-aws/whats-new/2025/11/amazon-route-53-accelerated-recovery-managing-public-dns-records/

この機能を有効化すると、米国東部(バージニア北部)リージョンでAWSサービスが一時的に利用できなくなった場合でも、約60分以内にDNSレコードの変更が可能になります。

DNSレコードはあらゆるアプリケーションの基盤を支える重要なリソースであり、
障害発生時にDNSレコードの変更ができなくなると、フェイルオーバー操作やトラフィックルーティングの変更など、運用作業が停止してしまいます。

そんな課題を解決する機能なので、今回はその仕組みと設定方法をまとめてみました。

概要

通常、Route 53のコントロールプレーン(DNSレコードの作成・変更・削除などの管理操作)は米国東部(バージニア北部)リージョンで実行されます。
このリージョンで障害が発生すると、DNS解決自体は継続されますが、DNSレコードの変更操作が一時的に利用できなくなります。

今回のアップデートにより追加された高速リカバリを有効化することで、ホストゾーンのデータが米国西部(オレゴン)リージョンにも複製されます。
この状態でバージニア北部リージョンで障害が発生した場合、
コントロールプレーン操作がオレゴンリージョンに自動的にフェイルオーバーし、約60分以内にDNS変更を再開できます。

https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/accelerated-recovery.html

なお注意点として高速リカバリはパブリックホストゾーンでのみ利用可能であり、
プライベートホストゾーンでは利用できません。

高速リカバリの仕組み

アーキテクチャ

一般的なRoute 53のアーキテクチャを踏まえると、高速リカバリを有効化した場合の動作は以下のようになると考えられます。

通常時

  1. Route 53パブリックホストゾーンのデータが米国西部(オレゴン)リージョンに継続的に複製される
  2. コントロールプレーン操作(DNS変更など)は通常通りバージニア北部で処理される
  3. データプレーン(DNS解決)はグローバルに分散された権威DNSサーバーで処理される

障害発生時

  1. バージニア北部リージョンのサービスが利用できなくなる
  2. AWSが自動的にフェイルオーバーを開始
  3. コントロールプレーン操作がオレゴンリージョンに切り替わる
  4. 約60分以内にDNS変更操作が再開可能になる

なお、前述の通りDNS解決(データプレーン)は障害発生中も継続されます。
そのためフェイルオーバー時に影響を受けるのはレコードの変更操作(コントロールプレーン)のみです。

https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/disaster-recovery-resiliency.html

RTO(目標復旧時間)

高速リカバリが目標とするRTOは60分です。
これは、バージニア北部リージョンで障害が発生してから、オレゴンリージョンでDNS変更操作が可能になるまでの時間を指します。

設定手順

設定方法は以下の公式ドキュメントの通りであり、今回はAWS CLIで設定してみます。

https://aws.amazon.com/jp/blogs/news/amazon-route-53-launches-accelerated-recovery-for-managing-public-dns-records/

なおTerraformにおいては2025/11/30時点では本設定をサポートしていないようですが、
以下のissueで対応が進められているため、おそらく近日中に利用可能になりそうです。

https://github.com/hashicorp/terraform-provider-aws/issues/45279
https://github.com/hashicorp/terraform-provider-aws/pull/45302

AWS CLIで設定してみる

高速リカバリの設定に関連したAWS CLIは以下の通りです。
($HOST_ZONE_ID は実際のホストゾーンIDに読み替えて下さい)

高速リカバリを有効化する

aws route53 update-hosted-zone-features \
  --enable-accelerated-recovery \
  --hosted-zone-id  $HOST_ZONE_ID

高速リカバリを無効化する

aws route53 update-hosted-zone-features \
  --no-enable-accelerated-recovery \
  --hosted-zone-id  $HOST_ZONE_ID

現在の設定状況を確認する

aws route53 get-hosted-zone --id $HOST_ZONE_ID

ステータスの遷移

高速リカバリの有効化コマンドを実行すると、aws route53 get-hosted-zoneコマンドで確認できるAcceleratedRecoveryStatusが以下のように遷移していきます。

1. 有効化前(Featuresなし)

高速リカバリが設定されていない状態では、Featuresフィールド自体が存在しません。

{
    "HostedZone": {
        "Id": "/hostedzone/XXXXXXXXXXXXXXXXXXX",
        "Name": "example.com.",
        ...
        "ResourceRecordSetCount": 2
    },
    ...
}

2. 有効化開始(ENABLING)

有効化コマンド実行直後はENABLINGステータスになります。

{
    "HostedZone": {
        ...
        "Features": {
            "AcceleratedRecoveryStatus": "ENABLING"
        }
    },
    ...
}

3. データ複製中(ENABLING_HOSTED_ZONE_LOCKED)

オレゴンリージョンへのデータ複製が進行中の状態です。この間、ホストゾーンの一部操作がロックされます。

{
    "HostedZone": {
        ...
        "Features": {
            "AcceleratedRecoveryStatus": "ENABLING_HOSTED_ZONE_LOCKED"
        }
    },
    ...
}

4. 有効化完了(ENABLED)

複製が完了し、高速リカバリが利用可能な状態です。

{
    "HostedZone": {
        ...
        "Features": {
            "AcceleratedRecoveryStatus": "ENABLED"
        }
    },
    ...
}

今回は大体5分ぐらいで有効化が完了しました。
ただし有効化にかかる時間は、ホストゾーンのサイズやその他の要因によって異なります。
公式ドキュメントでは数時間かかる場合もあるとのことなので、余裕を持った作業時間を設定しておくことをおすすめします。

なのその他のステータスについては、以下ドキュメントに記述がされています。

https://docs.aws.amazon.com/Route53/latest/APIReference/API_HostedZoneFeatures.html

フェイルオーバー時の制限事項

フェイルオーバー中は、主にレコードの操作に関連したAPIが利用できなくなります。
以下はその一例です。

  • 新しいホストゾーンを作成
  • 既存のホストゾーンを削除
  • DNSSEC 署名を有効
  • DNSSEC 署名を無効

フェイルオーバー中に利用可能なAPI

一方フェイルオーバー中であっても、以下のAPIメソッドが引き続きサポートされます。

  • ChangeResourceRecordSets
  • GetChange
  • GetGeoLocation
  • GetHostedZone
  • GetHostedZoneCount
  • GetHostedZoneLimit
  • GetReusableDelegationSet
  • GetReusableDelegationSetLimit
  • ListGeoLocations
  • ListHostedZones
  • ListHostedZonesByName
  • ListResourceRecordSets
  • ListReusableDelegationSets

ただし、その他のRoute 53 APIメソッドはフェイルバックが発生するまで機能しません。

追加の考慮事項

その他、高速リカバリ機能に関連して以下の点に注意が必要です。

  • AWS PrivateLink接続はフェイルオーバー後は機能しないが、バージニア北部リージョンへのフェイルバック後に再び機能する
  • 現時点では、CloudFront定額プランはサポートされていない
  • 高速リカバリが有効になっているホストゾーンは削除できない。削除する前に高速リカバリを無効にする必要がある

フェイルオーバー時のDNS変更の追跡方法

高速リカバリが有効な状態でバージニア北部リージョンに障害が発生した際に、
一部のDNS変更がオレゴンリージョンに複製される前にバージニア北部リージョンに「取り残される」可能性があります。

そのためフェイルオーバー完了後は、DNS操作を再開する前に取り残された変更がないか確認し、必要に応じて再送信することが推奨されます。
設定/確認方法としてAWS CLIやCloudFormationが利用できますが、ここではAWS CLIでの確認方法を記載します。

AWS CLIでの確認方法

DNS変更のステータスはaws route53 get-changeコマンドで確認できます。

aws route53 get-change --id /change/C2682N5HXP0BZ4

--idパラメータには、change-resource-record-setsコマンド実行時に返される変更IDを指定します。

https://docs.aws.amazon.com/cli/latest/reference/route53/get-change.html

ステータスの種類

GetChange APIで返されるステータスは以下の通りです。
通常時は変更がINSYNCになりますが、フェイルオーバー中はPENDINGのままになる場合があります。

ステータス 意味 対応方法
INSYNC オレゴンリージョンへの複製が完了 変更が正常に適用された
PENDING 複製処理中 しばらく待機
NoSuchChange 変更リクエストが見つからない 障害により消失した可能性あり

NoSuchChangeが返された場合は、該当のDNS変更が取り残された可能性があります。
この場合はフェイルオーバー完了後に再度DNS変更のコマンドを実行して、変更を再送信してください。

さいごに

以上、Route 53パブリックホストゾーンの高速リカバリ機能についてまとめました。

この機能は追加料金なしで利用でき、有効化しておくだけで障害時の継続性が向上します。
特にミッションクリティカルなシステムを運用している場合は、事前に有効化しておくことをおすすめします。

ただし、有効化には時間がかかる場合があること、パブリックホストゾーンのみ対応であること、フェイルオーバー中は一部操作が制限されることには注意が必要です。
それでは、皆様のDNS運用がより堅牢になることを願っています。

この記事をシェアする

FacebookHatena blogX

関連記事