Amazon Route 53
開発者ガイド (API バージョン 2013-04-01)

VPC とネットワークの間における DNS クエリの解決

Amazon VPC を使用して VPC を作成すると、VPC 内の DNS 解決がRoute 53 リゾルバー から自動的に提供されます。デフォルトでは、リゾルバー は、VPC ドメイン名 (EC2 インスタンスや ELB ロードバランサーのドメイン名など) に対する DNS クエリに応答します。他のすべてのドメイン名については、リゾルバー は公開ネームサーバーに対して再帰的ルックアップを行います。

VPC とネットワークの間の DNS 解決は、Direct Connect または VPN 接続を介して設定することもできます。

ネットワークのリゾルバーから Route 53 リゾルバー への DNS クエリの転送

ネットワークの DNS リゾルバーは、DNS クエリを指定先の VPC の リゾルバー に転送できます。これにより、DNS リゾルバーは、EC2 インスタンスや Route 53 プライベートホストゾーンのレコードなどの AWS リソースのドメイン名を簡単に解決できます。詳細については、「ネットワークの DNS リゾルバーから Route 53 リゾルバー に DNS クエリを転送する方法」を参照してください。

VPC からネットワークのリゾルバーへの VPC クエリの条件付き転送

VPC の EC2 インスタンスから受信したクエリを、ネットワークの DNS リゾルバーに転送するように リゾルバー を設定できます。選択したクエリを転送するには、リゾルバー ルールを作成して、転送する DNS クエリのドメイン名 (example.com など) と、クエリの転送先であるネットワークの DNS リゾルバーの IP アドレスを指定します。クエリが複数のルール (example.com、apex.example.com) と一致する場合、リゾルバー は最も具体的なルール (apex.example.com) を選択し、そのルールで指定した IP アドレスにクエリを転送します。詳細については、「Route 53 リゾルバー で VPC からネットワークに DNS クエリを転送する方法」を参照してください。

Amazon VPC と同様に、リゾルバー はリージョンに基づきます。VPC があるリージョンごとに、クエリを VPC からネットワークに転送するか (アウトバウンドクエリ)、ネットワークから VPC に転送するか (インバウンドクエリ)、または両方を行うかを選択できます。

注記

リゾルバーは、VPC 専用インスタンスをサポートしていません。

インバウンド転送またはアウトバウンド転送を使用するには、VPC 内に リゾルバー エンドポイントを作成します。これに伴って リゾルバー で自動的に VPC Elastic Network Interface が作成されます。VPC ネットワークインターフェイスの概要については、Amazon VPC ユーザーガイド の「Elastic Network Interface」を参照してください。

トピック

ネットワークの DNS リゾルバーから Route 53 リゾルバー に DNS クエリを転送する方法

ネットワークから AWS リージョンの Route 53 リゾルバー に DNS クエリを転送する場合は、以下の手順を実行します。

  1. VPC 内に Route 53 リゾルバー インバウンドエンドポイントを作成します。DNS クエリは、この VPC を通過して リゾルバー に達します。インバウンドエンドポイントでは、ネットワークの DNS リゾルバーから DNS クエリを転送する先の IP アドレスを指定します。

    リゾルバー は、インバウンドエンドポイントを作成した VPC 内に VPC Elastic Network Interface を作成します。

  2. 該当するドメイン名の DNS クエリを、インバウンドエンドポイントで指定した IP アドレスに転送するように、ネットワークのリゾルバーを設定します。詳細については、「DNS クエリが通過する VPC を選択する方法」を参照してください。

ネットワークから送信される DNS クエリを リゾルバー で解決する方法は以下のとおりです。

  1. ネットワークのウェブブラウザや別のアプリケーションが、リゾルバー に転送済みのドメイン名に対する DNS クエリを送信します。

  2. ネットワークのリゾルバーは、このクエリをインバウンドエンドポイントの IP アドレスに転送します。

  3. インバウンドエンドポイントは、クエリを リゾルバー に転送します。

  4. リゾルバー は、DNS クエリのドメイン名に対応する値を内部から取得するか、公開ネームサーバーに対する再帰的ルックアップを通じて取得します。

  5. リゾルバー は、この値 (通常は IPv4 IP アドレス) をインバウンドエンドポイントに返します。

  6. インバウンドエンドポイントは、この値をネットワークのリゾルバーに返します。

  7. ネットワークのリゾルバーは、この値をアプリケーションに返します。

  8. アプリケーションは、リゾルバー から返された値を使用して HTTP リクエスト (Amazon S3 バケット内のオブジェクトに対するリクエストなど) を送信します。

インバウンドエンドポイントの作成に伴って リゾルバー の動作が変更されることはありません。AWS ネットワーク外の場所から リゾルバー へのパスが提供されるだけです。

Route 53 リゾルバー で VPC からネットワークに DNS クエリを転送する方法

AWS リージョンの VPC 内の EC2 インスタンスからネットワークに DNS クエリを転送する場合は、以下の手順を実行します。

  1. VPC 内に Route 53 リゾルバー アウトバウンドエンドポイントを作成し、以下の値を指定します。

    • ネットワークのリゾルバーに向かう途中で DNS クエリが通過する VPC。

    • VPC で リゾルバー の DNS クエリの転送元となる IP アドレス。ネットワーク上のホストにとって、これらは DNS クエリの送信元の IP アドレスです。

    • VPC セキュリティグループ

    リゾルバー は、指定した VPC 内に Amazon VPC Elastic Network Interface を作成します。詳細については、「DNS クエリが通過する VPC を選択する方法」を参照してください。

  2. 1 つまたは複数のルールを作成し、リゾルバー でネットワークのリゾルバーに転送する DNS クエリのドメイン名を指定します。また、リゾルバーの IP アドレスも指定します。詳細については、「ネットワークに転送するクエリをルールでコントロールする」を参照してください。

  3. 各ルールを、ネットワークに DNS クエリを転送する VPC に関連付けます。

ネットワークに転送するクエリをルールでコントロールする

ルールは、どの DNS クエリを Route 53 リゾルバー でネットワークの DNS リゾルバーに転送するか、どのクエリに リゾルバー 自体で応答するかをコントロールします。

ルールは 2 通りの方法で分類できます。1 つの方法では、ルールの作成元で分類します。

  • 自動定義ルール – リゾルバー は自動的に自動定義ルールを作成して VPC に関連付けます。通常、これらのルールが適用されるのは AWS 固有のドメイン名であり、これらのドメイン名のクエリに リゾルバー が応答します。詳細については、「リゾルバー で自動定義ルールを作成する対象のドメイン名」を参照してください。

  • カスタムルール – カスタムルールは、ユーザーが作成して VPC に関連付けます。現時点で作成できるタイプのカスタムルールは、条件付き転送ルール (転送ルールとも呼ばれます) のみです。転送ルールにより、リゾルバー は VPC からネットワークの DNS リゾルバーの IP アドレスに DNS クエリを転送します。

    自動定義ルールと同じドメインで転送ルールを作成すると、リゾルバー は転送ルールの設定に基づき、このドメイン名のクエリをネットワークの DNS リゾルバーに転送します。

ルールを分類するもう 1 つの方法は、以下の機能に基づきます。

  • 条件付き転送ルール – 指定されたドメイン名の DNS クエリをネットワークの DNS リゾルバーに転送する場合は、条件付き転送ルール (転送ルールと呼ばれます) を作成します。

  • システムルール – システムルールにより、リゾルバー は転送ルールに定義されている動作を選択的に上書きします。システムルールを作成すると、リゾルバー は、指定されたサブドメインの DNS クエリを解決します (システムルールを使わない場合は、ネットワークの DNS リゾルバーで解決されます)。

    デフォルトでは、転送ルールはドメイン名とそのすべてのサブドメインに適用されます。ドメインのクエリをネットワークのリゾルバーに転送する際に、一部のサブドメインのクエリを除外する場合は、これらのサブドメインに対してシステムルールを作成します。たとえば、example.com の転送ルールを作成する際に apex.example.com のクエリを転送しない場合は、システムルールを作成し、ドメイン名として apex.example.com を指定します。

  • 再帰ルール – リゾルバー は再帰ルールを自動的に作成します。再帰ルールにより、リゾルバー は指定されたドメインに対して DNS リゾルバーとして機能します。デフォルトでは、リゾルバー は、すべてのドメイン (例外あり) の DNS クエリを公開ネームサーバーに転送する再帰ルールを 1 つ作成します。この動作を上書きする方法については、このトピックで後ほど説明する「すべてのクエリをネットワークに転送する」を参照してください。

カスタムルールを作成して、特定のドメイン名 (自分のドメイン名または大半の AWS ドメイン名)、AWS の公開ドメイン名、またはすべてのドメイン名に適用できます。

特定のドメイン名のクエリをネットワークに転送する

特定のドメイン名 (example.com など) のクエリをネットワークに転送するには、ルールを作成してそのドメイン名を指定します。また、クエリを転送する先のネットワークの DNS リゾルバーの IP アドレスも指定します。次に、各ルールを、ネットワークに DNS クエリを転送する VPC に関連付けます。たとえば、example.com、example.org、example.net に個別のルールを作成できます。次に、これらのルールを任意の組み合わせで AWS リージョンの VPC に関連付けることができます。

amazonaws.com のクエリをネットワークに転送する

ドメイン名 amazonaws.com は、AWS リソース (EC2 インスタンスや S3 バケットなど) の公開ドメイン名です。amazonaws.com のクエリをネットワークに転送する場合は、ドメイン名として amazonaws.com を指定し、ルールタイプとして [転送] を指定します。

注記

amazonaws.com の転送ルールを作成しても、リゾルバー は amazonaws.com のサブドメインの一部については DNS クエリを自動的に転送しません。詳細については、「リゾルバー で自動定義ルールを作成する対象のドメイン名」を参照してください。この動作を上書きする方法については、次の「すべてのクエリをネットワークに転送する」を参照してください。

すべてのクエリをネットワークに転送する

すべてのクエリをネットワークに転送する場合は、ルールを作成してドメイン名として「.」 (ドット) を指定し、このルールをすべての DNS クエリをネットワークに転送する VPC に関連付けます。この場合でも、リゾルバー は一部の DNS クエリをネットワークに転送しません。AWS の外部で DNS リゾルバーを使用すると、一部の機能が破損する可能性があるためです。たとえば、一部の内部 AWS ドメイン名には、AWS の外部からアクセスできない内部 IP アドレス範囲が含まれている場合があります。「.」のクエリを作成したときに、ネットワークに転送されないクエリのドメイン名のリストについては、「リゾルバー で自動定義ルールを作成する対象のドメイン名」を参照してください。

デフォルトで転送から除外されるドメイン名も含めて、すべてのドメイン名の DNS クエリをネットワークに転送することを試す場合は、「.」ルールを作成して次のいずれかの操作を実行します。

重要

「.」を作成したときに リゾルバー で除外されるドメイン名も含めて、すべてのドメイン名をネットワークに転送すると、一部の機能が動作しなくなる場合があります。

リゾルバー でクエリ内のドメイン名と一致するルールがあるかどうかを判断する方法

Route 53 リゾルバー は、DNS クエリ内のドメイン名とクエリの送信元の VPC に関連付けられているルール内のドメイン名を比較します。以下の場合に、リゾルバー は両方のドメイン名が一致するとみなします。

  • 両方のドメイン名が完全に一致する

  • クエリ内のドメイン名は、ルール内のドメイン名のサブドメインである

たとえば、ルール内のドメイン名が apex.example.com である場合、リゾルバー では DNS クエリ内の以下のドメイン名が一致するとみなします。

  • apex.example.com

  • acme.apex.example.com

以下のドメイン名は一致しません。

  • example.com

  • nadir.example.com

クエリ内のドメイン名が複数のルール内のドメイン名 (example.com と www.example.com など) と一致した場合、リゾルバー は、最も具体的なドメイン名 (www.example.com) が含まれているルールを使用してアウトバウンド DNS クエリをルーティングします。

リゾルバー で DNS クエリを転送する先を決定する方法

VPC の EC2 インスタンスで実行されているアプリケーションから DNS クエリが送信されると、Route 53 リゾルバー は以下の手順を実行します。

  1. リゾルバーがルール内のドメイン名を確認します。

    クエリ内のドメイン名がルール内のドメイン名と一致すると、リゾルバー は、アウトバウンドエンドポイントの作成時に指定した IP アドレスにクエリを転送します。アウトバウンドエンドポイントは、このクエリを、ルールの作成時に指定したネットワークのリゾルバーの IP アドレスに転送します。

    詳細については、「リゾルバー でクエリ内のドメイン名と一致するルールがあるかどうかを判断する方法」を参照してください。

  2. リゾルバー は、「.」ルールの設定に基づいて DNS クエリを転送します。

    クエリ内のドメイン名が他のどのルール内のドメイン名とも一致しない場合、リゾルバー は、自動定義された「.」 (ドット) ルールの設定に基づいてクエリを転送します。ドットルールは、プライベートホストゾーンの AWS 内部ドメイン名とレコード名を除いて、すべてのドメイン名に適用されます。このルールにより、クエリ内のドメイン名がカスタム転送ルール内のどのドメイン名とも一致しない場合、リゾルバー は DNS クエリを公開ネームサーバーに転送します。すべてのクエリをネットワークの DNS リゾルバーに転送する場合は、カスタム転送ルールを作成し、ドメイン名として「.」を指定し、[タイプ] として [転送] を指定します。さらに、これらのリゾルバーの IP アドレスを指定します。

  3. リゾルバー は、クエリの送信元のアプリケーションに応答を返します。

複数のリージョンにおけるルールの使用

Route 53 リゾルバー はリージョンごとのサービスであるため、1 つの AWS リージョンで作成したオブジェクトは、そのリージョンでのみ使用できます。同じルールを複数のリージョンで使用するには、リージョンごとにルールを作成する必要があります。

ルールの作成元の AWS アカウントは、そのルールを他の AWS アカウントと共有できます。詳細については、「他の AWS アカウントとの転送ルールの共有と共有ルールの使用」を参照してください。

リゾルバー で自動定義ルールを作成する対象のドメイン名

リゾルバーは、選択したドメインのクエリを解決する方法を定義するルールを自動的に作成します (自動定義ルールと呼ばれます)。

  • EC2 固有のドメイン名 (compute.amazonaws.com や compute.internal など) については、リゾルバー の設定時に DNS の動作が変わらないことが自動定義ルールで保証されます。

  • パブリックに予約されたドメイン名 (localhost や 10.in-addr.arpa など) については、DNS のベストプラクティスに従って、クエリを公開ネームサーバーに転送しないで、ローカルで応答するようお勧めします。「RFC 6303, Locally Served DNS Zones」を参照してください。

自動定義ルールのデフォルトの動作を上書きするには、条件付き転送ルールを作成できます。

リゾルバーは、以下の自動定義ルールを作成します。

プライベートホストゾーンのルール

VPC に関連付けるプライベートホストゾーンごとに、リゾルバー はルールを作成して VPC に関連付けます。プライベートホストゾーンを複数の VPC に関連付けると、リゾルバー はルールを同じ複数の VPC に関連付けます。

ルールのタイプは [転送] です。

さまざまな AWS 内部ドメイン名のルール

このセクションに示す内部ドメイン名のすべてのルールは、タイプが [転送] です。リゾルバー は、これらのドメイン名の DNS クエリを VPC の権威ネームサーバーに転送します。

VPC の enableDnsHostnames フラグを true に設定すると、リゾルバー は自動定義ルールを作成して VPC に関連付けます。

  • Region-name.compute.internal (例: eu-west-1.compute.internal)。us-east-1 リージョンでは、このドメイン名を使用しません。

  • Region-name.compute.amazon-domain-name (例: eu-west-1.compute.amazonaws.com または cn-north-1.compute.amazonaws.com.cn)。us-east-1 リージョンでは、このドメイン名を使用しません。

  • ec2.internal。us-east-1 リージョンでのみ、このドメイン名を使用します。

  • compute-1.internal。us-east-1 リージョンでのみ、このドメイン名を使用します。

  • compute-1.amazonaws.com。us-east-1 リージョンでのみ、このドメイン名を使用します。

以下の自動定義ルールは、enableDnsHostnames フラグを true に設定したときに、リゾルバー で作成されるルールの逆引き DNS ルックアップ用です。これらは同時に作成されます。

  • 10.in-addr.arpa

  • 16.172.in-addr.arpa through 31.172.in-addr.arpa

  • 168.192.in-addr.arpa

  • 254.169.254.169.in-addr.arpa

以下の自動定義ルールは、localhost に関連するドメイン用であり、VPC の enableDnsHostnames フラグを true に設定したときに作成されて VPC に関連付けられます。

  • localhost

  • localdomain

  • 127.in-addr.arpa

  • 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa

  • 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa

VPC を別の VPC とピアリング接続すると、リゾルバー は以下の自動定義ルールを作成して VPC に関連付けます。

  • ピア VPC の IP アドレス範囲の逆引き DNS ルックアップ (例: 0.192.in-addr.arpa)。

    VPC に IPv4 CIDR ブロックを追加すると、リゾルバー は新しい IP アドレス範囲の自動定義ルールを追加します。

  • 他の VPC が別のリージョンにある場合、以下のドメイン名になります。

    • Region-name.compute.internal。us-east-1 リージョンでは、このドメイン名を使用しません。

    • Region-name.compute.amazon-domain-name。us-east-1 リージョンでは、このドメイン名を使用しません。

    • ec2.internal。us-east-1 リージョンでのみ、このドメイン名を使用します。

    • compute-1.amazonaws.com。us-east-1 リージョンでのみ、このドメイン名を使用します。

他のすべてのドメイン用のルール

リゾルバー が作成する「.」 (ドット) ルールは、このトピックで指定済みのものを除くすべてのドメイン名に適用されます。「.」ルールのタイプである再帰は、このルールにより、リゾルバー が再帰リゾルバーとして機能することを意味します。

DNS クエリが通過する VPC を選択する方法

インバウンドエンドポイントまたはアウトバウンドエンドポイントを作成する場合、DNS クエリがネットワークの DNS リゾルバー (アウトバウンド) または Route 53 リゾルバー (インバウンド) に向かう途中で通過する VPC を指定します。以下の要件と推奨事項に留意してください。

インバウンドクエリとアウトバウンドクエリ

インバウンドクエリとアウトバウンドクエリに同じ VPC を使用するか、別々の VPC を使用することができます。

VPC ピアリング接続

インバウンドエンドポイントまたはアウトバウンドエンドポイントとしてリージョン内の任意の VPC を使用できます。この VPC が他の VPC とピアリング接続されているかどうかは問いません。

重要

ピアリング接続先 VPC を選択した場合、以下の IP アドレスは重複できません。

  • DNS クエリを通過させる VPC とピアリング接続されている VPC の CIDR 範囲。

  • DNS クエリを転送する先のネットワークの IP アドレス。これらの IP アドレスは、リゾルバー ルールを作成するときに指定します。

ネットワークと、リゾルバー で DNS クエリを通過させる VPC との接続

ネットワークと、インバウンド/アウトバウンドエンドポイントの作成先の各 VPC との間に AWS Direct Connect 接続または VPN 接続を設定する必要があります。インバウンド/アウトバウンドエンドポイントを同じ VPC に作成する場合、必要な接続は 1 つのみです。

AWS Direct Connect の詳細については、AWS Direct Connect ユーザーガイド を参照してください。

VPN 接続の詳細については、Amazon VPC ユーザーガイド の「VPN 接続」を参照してください。