サブドメインのトラフィックのルーティング - Amazon Route 53

サブドメインのトラフィックのルーティング

acme.example.com や zenith.example.com などのサブドメインのリソースにトラフィックをルーティングする場合、次の 2 つの方法があります。

ドメインのホストゾーンにレコードを作成します。

通常、サブドメインのトラフィックをルーティングするには、ドメインと同じ名前のホストゾーンにレコードを作成します。例えば、acme.example.com のインターネットトラフィックをデータセンターのウェブサーバーにルーティングするには、example.com ホストゾーンに acme.example.com という名前のレコードを作成します。詳細については、トピック「レコードを使用する」とそのサブトピックを参照してください。

サブドメインのホストゾーンを作成し、新しいホストゾーンでレコードを作成する

サブドメインのホストゾーンを作成することもできます。別のホストゾーンを使用してサブドメインのインターネットトラフィックをルーティングすることは、「サブドメインの責任をホストゾーンに委任する」、「サブドメインを他のネームサーバーに委任する」、またはその他類似の言い方で表現されることがあります。使用方法に関する概要は次のとおりです。

  1. トラフィックをルーティングするサブドメインと同じ名前のホストゾーン (acme.example.com など) を作成します。

  2. 新しいホストゾーンに、サブドメイン (acme.example.com) とそのサブドメイン (backend.acme.example.com など) のトラフィックをどのようにルーティングするかを定義するレコードを作成します。

  3. 新しいホストゾーンの作成時に、Route 53 がそのゾーンに割り当てるネームサーバーを取得します。

  4. ドメイン (example.com) のホストゾーンに新しい NS レコードを作成し、ステップ 3 で取得した 4 つのネームサーバーを指定します。

別のホストゾーンを使用してサブドメインのトラフィックをルーティングする場合、IAM のアクセス許可を使用してサブドメインのホストゾーンへのアクセスを制限できます (IAM を使用して個々のレコードへのアクセスを制御することはできません)。異なるグループによって管理されている複数のサブドメインがある場合は、各サブドメインのホストゾーンを作成すると、ドメインのホストゾーン内のレコードにアクセスする必要がある人の数を大幅に減らすことができます。

サブドメインに別個のホストゾーンを使用することで、ドメインとサブドメインに異なる DNS サービスを使用することもできます。詳細については、「親ドメインを移行しないで Amazon Route 53 をサブドメインの DNS サービスとして使用する」を参照してください。

この設定の各 DNS リゾルバーからの最初の DNS クエリに対するパフォーマンスの影響はわずかです。リゾルバーは、ルートドメインのホストゾーンから情報を取得し、次にサブドメインのホストゾーンから情報を取得する必要があります。サブドメインの最初の DNS クエリの後、リゾルバーは情報をキャッシュするため、TTL が期限切れになり、別のクライアントがそのリゾルバーからサブドメインをリクエストするまで、再度取得する必要はありません。詳細については、「TTL (秒)」セクションの「Amazon Route 53 レコードの作成時または編集時に指定する値」を参照してください。

サブドメインのトラフィックをルーティングする別のホストゾーンの作成

サブドメインのトラフィックをルーティングする方法の 1 つは、サブドメインのホストゾーンを作成し、新しいホストゾーンに、サブドメインのレコードを作成することです。(より一般的なオプションは、ドメインのホストゾーン内にサブドメインのレコードを作成することです)。

注記

ここでは、Route 53 でサブドメインのホストゾーンを作成して委任するプロセスについて説明しますが、他のネームサーバーに DNS ゾーンを作成することや、ネームサーバーに責任を委任するネームサーバー (NS) レコードを作成することも可能です。

プロセスの概要を次に示します。

  1. サブドメインのホストゾーンを作成します。詳細については、「サブドメインの新しいホストゾーンを作成する」を参照してください。

  2. ホストゾーンに、サブドメインのレコードを追加します。サブドメインのホストゾーンに属するレコードがドメインのホストゾーンに含まれている場合は、これらのレコードをサブドメインのホストゾーンに複製します。詳細については、「サブドメインのホストゾーンでのレコードの作成」を参照してください。

  3. ドメインのホストゾーンにサブドメインの NS レコードを作成します。これにより、サブドメインの責任を新しいホストゾーンのネームサーバーに委任します。サブドメインのホストゾーンに属するレコードがドメインのホストゾーンに含まれている場合は、これらのレコードをドメインのホストゾーンから削除します (ステップ 2 でサブドメインのホストゾーンに複製を作成しました)。詳細については、「ドメインのホストゾーンの更新」を参照してください。

サブドメインの新しいホストゾーンを作成する

Route 53 コンソールを使用してサブドメインのホストゾーンを作成するには、次の手順を実行します。

サブドメインのホストゾーンを作成するには (コンソール)

  1. AWS Management Console にサインインし、Route 53 コンソール (https://console.aws.amazon.com/route53/) を開きます。

  2. Route 53 を初めて使用する場合、[今すぐ始める] を選択します。

    既に Route 53 を利用している場合は、ナビゲーションペインの [Hosted zones (ホストゾーン)] を選択します。

  3. [ホストゾーンの作成] を選択します。

  4. 右側のペインでは、[acme.example.com] のようなサブドメイン名を入力します。オプションでコメントも入力できます。

    a~z、0~9、- (ハイフン) 以外の文字を指定する方法、および国際化されたドメイン名を指定する方法については、「DNS ドメイン名の形式」を参照してください。

  5. [Type (タイプ)] は、デフォルト値である [Public Hosted Zone (パブリックホストゾーン)] のままにします。

  6. 右ペインの下部にある [Create Hosted Zone (ホストゾーンの作成)] を選択します。

サブドメインのホストゾーンでのレコードの作成

サブドメイン (acme.example.com) 、および、そのサブドメイン (backend.acme.example.com) のトラフィックを、Route 53 がどのようにルーティングするかは、サブドメインのホストゾーンにレコードを作成することで定義します。

サブドメインのホストゾーンにレコードを作成する場合は、以下の点に注意してください。

  • サブドメインのホストゾーンに追加のネームサーバー (NS) レコードまたは Start of Authority (SOA) レコードを作成しないでください。また、既存の NS レコードと SOA レコードを削除しないでください。

  • サブドメインのすべてのレコードは、当該サブドメインのホストゾーンに作成します。例えば、example.com ドメインと acme.example.com サブドメインの両方にホストゾーンがある場合、acme.example.com サブドメインのすべてのレコードは acme.example.com のホストゾーンに作成します。これには、backend.acme.example.com や beta.backend.acme.example.com などのレコードが含まれます。

  • サブドメイン (acme.example.com) のホストゾーンに属するレコードがドメイン (example.com) のホストゾーンに既に含まれている場合は、これらのレコードをサブドメインのホストゾーンに複製します。このプロセスの最後のステップとして、後でドメインのホストゾーンから重複するレコードを削除します。

    重要

    サブドメインの一部のレコードが、ドメインのホストゾーンとサブドメインのホストゾーンの両方にあると、DNS の動作が一貫しなくなります。動作は、DNS リゾルバーがキャッシュしたネームサーバー、ドメイン (example.com) のホストゾーンのネームサーバー、またはサブドメイン (acme.example.com) のホストゾーンのネームサーバーに応じて異なります。レコードが存在していても、そのレコードが DNS リゾルバーがクエリを送信する先のホストゾーンにない場合、Route 53 から NXDOMAIN (存在しないドメイン) が返されることがあります。

詳細については、「レコードを使用する」を参照してください。

ドメインのホストゾーンの更新

ホストゾーンを作成する際、Route 53 は、そのゾーンに対し 4 つのネームサーバーを自動的に割り当てます。ホストゾーンの NS レコードは、ドメインまたはサブドメインの DNS クエリに応答するネームサーバーを特定します。サブドメインのホストゾーンのレコードを使用してインターネットトラフィックのルーティングを開始するには、ドメイン (example.com) のホストゾーンに新しい NS レコードを作成し、これにサブドメイン (acme.example.com) の名前を渡します。NS レコードの値として、サブドメインのホストゾーンのネームサーバーの名前を指定します。

Route 53 が、DNS リゾルバーからサブドメイン acme.example.com (またはそのサブドメインの 1 つ) に対する DNS クエリを受け取ると、以下のことが発生します。

  1. Route 53 は、ドメインのホストゾーン内で (example.com) を調べ、サブドメイン (acme.example.com) のための NS レコードを検出します。

  2. Route 53 は、ドメイン (example.com) のホストゾーン内で、acme.example.com の NS レコードからネームサーバーを取得し、それを DNS リゾルバーに返します。

  3. リゾルバーは、acme.example.com のクエリを acme.example.com ホストゾーンのネームサーバーに再送信します。

  4. Route 53 は、acme.example.com ホストゾーンのレコードを使用してクエリに応答します。

サブドメインのホストゾーンを使用してサブドメインのトラフィックをルーティングし、ドメインのホストゾーンから重複するレコードを削除するように Route 53 を設定するには、次の手順を実行します。

サブドメインのホストゾーンを使用するように Route 53 を設定するには (コンソール)

  1. Route 53 コンソールで、サブドメインのホストゾーンのネームサーバーを取得します。

    1. ナビゲーションペインで [Hosted zones] を選択します。

    2. [Hosted Zones] ページで、サブドメインのホストゾーンのラジオボタン (名前ではない) をオンにします。

    3. 右ペインの [Hosted zones details (ホストゾーンの詳細)] セクションで、[Name Servers (ネームサーバー)] に一覧表示されている 4 つのサーバーの名前をコピーします。

  2. サブドメインではなくドメイン (example.com) のホストゾーンの名前を選択します。

  3. [Create record (レコードを作成)] を選択します。

  4. [Simple routing (シンプルルーティング)]、[Next (次へ)] の順に選択します。

  5. [Define simple record (シンプルなレコードを定義)] を選択します。

  6. 次の値を指定します。

    名前

    サブドメインの名前を入力します。

    値/トラフィックのルーティング先

    IP アドレス、またはレコードタイプに応じた別の値を選択し、ステップ 1 でコピーしたネームサーバーの名前を貼り付けます。

    レコードタイプ

    [NS – Name servers for a hosted zone (NS — ホストゾーンのネームサーバー] を選択します。

    TTL (秒)

    NS レコードの、より一般的な値 (172800 秒など) に変更します。

  7. [Define simple record (シンプルなレコードを定義)]、[Create records (レコードを作成)] の順に選択します。

  8. サブドメインのホストゾーンに再作成したレコードがドメインのホストゾーンに含まれている場合は、これらのレコードをドメインのホストゾーンから削除します。詳細については、「レコードの削除」を参照してください。

    完了すると、サブドメインのすべてのレコードがサブドメインのホストゾーンに含まれます。

サブドメインの追加レベルのトラフィックのルーティング

acme.example.com などのサブドメインのサブドメインにトラフィックをルーティングするのと同じ方法で、トラフィックを backend.acme.example.com などのサブドメインにルーティングします。ドメインのホストゾーンにレコードを作成するか、低いレベルのサブドメインのホストゾーンを作成してから、その新しいホストゾーンにレコードを作成します。

下位レベルのサブドメインに別のホストゾーンを作成することにした場合、ドメイン名に 1 つ近いレベルにあるサブドメインのホストゾーン内にある、下位レベルのサブドメイン用に NS レコードを作成します。これにより、トラフィックがリソースに正しくルーティングされます。例えば、次のサブドメインのトラフィックをルーティングするとします。

  • subdomain1.example.com

  • subdomain2.subdomain1.example.com

別のホストゾーンを使用して subdomain2.subdomain1.example.com のトラフィックをルーティングするには、次の操作を行います。

  1. subdomain2.subdomain1.example.com という名前のホストゾーンを作成します。

  2. subdomain2.subdomain1.example.com ホストゾーンにレコードを作成します。詳細については、「サブドメインのホストゾーンでのレコードの作成」を参照してください。

  3. subdomain2.subdomain1.example.com ホストゾーンのネームサーバーの名前をコピーします。

  4. subdomain1.example.com ホストゾーンで、subdomain2.subdomain1.example.com という NS レコードを作成し、subdomain2.subdomain1.example.com ホストゾーンのネームサーバーの名前に貼り付けます。

    さらに、subdomain1.example.com から重複するレコードを削除します。詳細については、「ドメインのホストゾーンの更新」を参照してください。

    この NS レコードの作成を完了すると、subdomain2.subdomain1.example.com のホストゾーンを使用した、subdomain2.subdomain1.example.com サブドメインへのトラフィックのルーティングが、Route 53 により開始されます。