Private DNS は、組み込みの権威 DNS アクセラレーションモジュール、組み込みの権威 DNS 通常モジュール、フォワードモジュール、および再帰モジュールの 4 つの主要モジュールで構成されています。仮想プライベートクラウド (VPC) 内の Elastic Compute Service (ECS) インスタンスまたはエラスティックコンテナインスタンスによって開始された Domain Name System (DNS) リクエストが、組み込みの権威 DNS アクセラレーションモジュールの DNS レコードと一致する場合、DNS レコードはキャッシュされません。したがって、DNS レコードは Time To Live (TTL) 値の影響を受けません。このトピックでは、他の 3 つのモジュールにおけるキャッシュの TTL 値を書き換えるメカニズムと、キャッシュをクリアおよび更新するメカニズムについて説明します。
2025年 4 月 30日 (UTC + 08:00) から、PrivateZone の新規ユーザーが作成したゾーンは、デフォルトでアクセラレーションゾーンになります。
2026年 4 月 30日 (UTC + 08:00) までに、通常ゾーンのすべての組み込み権威ゾーンはアクセラレーションゾーンに切り替えられます。これにより、DNS リクエストの増加とコストの増加につながる可能性があります。ローカルキャッシュが使用できない場合の DNS リクエストの増加を回避するために、ECS インスタンスによって開始された DNS リクエストの速度制限を軽減することをお勧めします。
組み込みの権威 DNS 通常モジュールとフォワードモジュール
組み込みの権威 DNS 通常モジュールは、フォワードモジュールと同じレベル 1 キャッシュ構造を共有します。次の図は、レベル 1 キャッシュ構造の仕組みを示しています。
TTL 値を書き換えるメカニズム
Private DNS は、組み込みの権威 DNS 通常モジュールとフォワードモジュールによって返される DNS レコードの TTL 値を書き換えます。このセクションでは、TTL 値を書き換える具体的なメカニズムについて説明します。
クエリ対象のドメイン名の DNS レコードが DNS リクエストに対して返される、肯定応答シナリオの場合:
返された DNS レコードの TTL 値が 86,400 秒より大きい場合、キャッシュシステムは TTL 値を 86,400 秒に書き換えます。
返された DNS レコードの TTL 値が 10 秒未満の場合、キャッシュシステムは TTL 値を 10 秒に書き換えます。
返された DNS レコードの TTL 値が 10 ~ 86,400 秒の範囲内にある場合、キャッシュシステムはオリジン DNS サーバーで設定された TTL 値を使用します。
クエリ対象のドメイン名が存在しないか、ドメイン名の特定タイプの DNS レコードが存在しない、否定応答シナリオの場合:
キャッシュシステムは、返された DNS レコードの TTL 値を 5 秒に書き換えます。
NXDOMAIN: クエリ対象のドメイン名は存在しません。
NXRRSET: クエリ対象のレコードタイプは存在しません。たとえば、AAAA レコードをクエリするときに、ドメイン名に AAAA レコードが設定されていません。
DNS レコードをキャッシュするためのロジック: DNS レコードをキャッシュするための実際の TTL 値は、変更後の TTL 値によって異なります。
キャッシュをクリアおよび更新するメカニズム
Private DNS は、一定数の DNS レコードをキャッシュできます。キャッシュされた DNS レコードは、アクセス頻度によってソートされます。アクセス頻度の低い DNS レコードはキャッシュからクリアされます。したがって、キャッシュされた DNS レコードをクリアおよび更新するメカニズムは、TTL が期限切れになるかどうか、およびキャッシュキューがいっぱいになるかどうかの影響を受けます。
キャッシュキューがいっぱいではない場合
TTL が期限切れになる前に、DNS レコードはキャッシュに保持されます。この場合、キャッシュされた DNS レコードはクライアントによって開始された DNS リクエストに対して返されますが、オリジン DNS サーバーで変更された DNS レコードは返されません。
TTL の有効期限が切れた後も、DNS レコードはキャッシュに保持されます。この場合、クライアントによって開始された DNS リクエストはオリジン DNS サーバーに送信されます。肯定応答と否定応答を含む返された DNS レコードは、キャッシュされた DNS レコードを更新します。 servfail が返されるか、応答がタイムアウトした場合、更新前の DNS レコードがクライアントに返されます。
キャッシュキューがいっぱいの場合
TTL が期限切れになる前に、DNS レコードはキャッシュに保持されます。この場合、肯定応答と否定応答を含むキャッシュされた DNS レコードは、クライアントによって開始された DNS リクエストに対して返されますが、オリジン DNS サーバーで変更された DNS レコードは返されません。
TTL の有効期限が切れた後、DNS レコードはキャッシュからクリアされます。この場合、クライアントによって開始された DNS リクエストはオリジン DNS サーバーに送信されます。肯定応答と否定応答を含む返された DNS レコードはキャッシュされます。 servfail が返されるか、応答がタイムアウトした場合、DNS レコードはクライアントに返されません。
再帰モジュール
Private DNS は、再帰モジュールを使用して、VPC 内のクライアントおよびクラウドサービスにパブリック再帰 DNS 解決サービスを提供します。再帰モジュールは、レベル 2 キャッシュ構造を使用します。次の図は、レベル 2 キャッシュ構造の仕組みを示しています。
TTL 値を書き換えるメカニズム
1. キャッシュモジュール
クエリ対象のドメイン名の DNS レコードが DNS リクエストに対して返される肯定応答シナリオの場合:
キャッシュシステムは、返された DNS レコードの TTL 値を 10 秒に書き換えます。
クエリ対象のドメイン名が存在しないか、ドメイン名の特定タイプの DNS レコードが存在しない否定応答シナリオの場合:
キャッシュシステムは、返された DNS レコードの TTL 値を 5 秒に書き換えます。
DNS レコードをキャッシュするためのロジック: DNS レコードをキャッシュするための実際の TTL 値は、変更後の TTL 値によって異なります。
2. 再帰モジュール
再帰モジュールで使用されるレベル 2 キャッシュ構造の DNS レコードのキャッシュ TTL 値は書き換えられず、パブリック権威 DNS で設定された TTL 値によって異なります。DNS レコードには、肯定応答と否定応答が含まれます。
DNS レコードをキャッシュするためのロジック: DNS レコードをキャッシュするための実際の TTL 値は、変更後の TTL 値によって異なります。
キャッシュをクリアおよび更新するメカニズム
1. キャッシュモジュール
キャッシュキューがいっぱいではない場合
TTL が期限切れになる前に、DNS レコードはキャッシュに保持されます。この場合、キャッシュされた DNS レコードはクライアントによって開始された DNS リクエストに対して返されますが、オリジン DNS サーバーで変更された DNS レコードは返されません。
TTL の有効期限が切れた後も、DNS レコードはキャッシュに保持されます。この場合、クライアントによって開始された DNS リクエストはオリジン DNS サーバーに送信されます。肯定応答と否定応答を含む返された DNS レコードは、キャッシュされた DNS レコードを更新します。 servfail が返されるか、応答がタイムアウトした場合、更新前の DNS レコードがクライアントに返されます。
キャッシュキューがいっぱいの場合
TTL が期限切れになる前に、DNS レコードはキャッシュに保持されます。この場合、肯定応答と否定応答を含むキャッシュされた DNS レコードはクライアントによって開始された DNS リクエストに対して返されますが、オリジン DNS サーバーで変更された DNS レコードは返されません。
TTL の有効期限が切れた後、DNS レコードはキャッシュからクリアされます。この場合、クライアントによって開始された DNS リクエストはオリジン DNS サーバーに送信されます。肯定応答と否定応答を含む返された DNS レコードはキャッシュされます。 servfail が返されるか、応答がタイムアウトした場合、DNS レコードはクライアントに返されません。
2. 再帰モジュール
キャッシュキューがいっぱいではない場合
TTL が期限切れになる前に、DNS レコードはキャッシュに保持されます。この場合、キャッシュされた DNS レコードはクライアントによって開始された DNS リクエストに対して返されますが、オリジン DNS サーバーで変更された DNS レコードは返されません。
TTL の有効期限が切れた後も、DNS レコードはキャッシュに保持されます。この場合、クライアントによって開始された DNS リクエストはオリジン DNS サーバーに送信されます。肯定応答と否定応答を含む返された DNS レコードは、キャッシュされた DNS レコードを更新します。 servfail が返されるか、応答がタイムアウトした場合、更新前の DNS レコードがクライアントに返されます。
キャッシュキューがいっぱいの場合
TTL が期限切れになる前に、DNS レコードはキャッシュに保持されます。この場合、肯定応答と否定応答を含むキャッシュされた DNS レコードはクライアントによって開始された DNS リクエストに対して返されますが、オリジン DNS サーバーで変更された DNS レコードは返されません。
TTL の有効期限が切れた後、DNS レコードはキャッシュからクリアされます。この場合、クライアントによって開始された DNS リクエストはオリジン DNS サーバーに送信されます。肯定応答と否定応答を含む返された DNS レコードはキャッシュされます。 servfail が返されるか、応答がタイムアウトした場合、DNS レコードはクライアントに返されません。