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

DNS ドメイン名の形式

ドメイン名 (ドメイン、ホストゾーン、レコードの名前を含みます) は、ドットで区切られた一連のラベルから構成されます。各ラベルは、63 バイトまでの長さにすることができます。ドメイン名の全体の長さは、ドットを含めて 255 バイト以内にする必要があります。Amazon Route 53 では、有効なドメイン名をサポートします。

命名要件は、ドメイン名を登録するのか、それとも、ホストゾーンまたはレコードの名前を指定するのかによって異なります。該当するトピックを参照してください。

ドメイン名登録用のドメイン名の形式

ドメイン名登録の場合、ドメイン名に使用できる文字は、a~z、0~9、– (ハイフン) のみです。ラベルの先頭または末尾にハイフンを指定することはできません。

国際化ドメイン名 (IDN) の登録方法については、「国際化ドメイン名の形式」を参照してください。

ホストゾーンとレコード用のドメイン名の形式

ホストゾーンおよびレコードの場合、ドメイン名には、次の印刷可能な任意の ASCII 文字を使用することができます (スペースを除く)。

  • a~z

  • 0-9

  • - (ハイフン)

  • ! " # $ % & ' ( ) * + , - / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ .

大文字または小文字を指定するか、あるいはエスケープコードで対応する文字を指定するかどうかに関係なく、Amazon Route 53 は英字を小文字 (a ~ z) として格納します。

ドメイン名が以下の文字を含む場合は、エスケープコードを使って、\3 桁の 8 進コードという形式で文字を指定する必要があります。

  • 8 進数で文字 000~040 (10 進数で 0~32、16 進数で 0x20~0x00)

  • 8 進数で文字 177~377 (10 進数で 127~255、16 進数で 0xFF~0x7F)

  • . (ピリオド)。8 進数では文字 056 になります (10 進数で 46、16 進数で 0x2E)。ピリオドを区切り記号ではなく、ドメイン名の文字として使用する場合です。. (ピリオド) をラベルの間の区切り記号として使用する場合は、エスケープコードを使用する必要はありません。

たとえば、ドメイン exämple.com のホストゾーンを作成するには、ex\344mple.com と指定します。

ドメイン名に、a~z、0~9、ハイフン (-)、アンダースコア (_) 以外の文字が含まれている場合、Route 53 API アクションはその文字をエスケープコードとして返します。これは、エンティティの作成時に文字を文字として指定した場合も、エスケープコードとして指定した場合も同様です。Route 53 コンソールには、文字はエスケープコードとしてでなく文字として表示されます。

ASCII 文字および対応する 8 進コードのリストについては、インターネットで「ascii テーブル」を検索してください。

国際化ドメイン名 (IDN) を指定するには、名前を Punycode に変換します。詳細については、「国際化ドメイン名の形式」を参照してください。

ホストゾーンおよびレコード名のアスタリスク (*) を使用する

「*」を名前に含むホストゾーンおよびレコードを作成できます。

ホストゾーン

  • 「*」をドメイン名の左端のラベルに含めることはできません。 たとえば、*.example.com はできません。

  • 「*」を他の位置に含める場合、DNS はこれをワイルドカードとしてではなく、アスタリスク文字 (ASCII 42) として扱います。

レコード

DNSは、名前の中の位置に応じて、「*」をワイルドカードまたはアスタリスク (ASCII 42) として処理します。「*」をレコードの名前でワイルドカードとして使用する際は、以下の制約にご注意ください。

  • 「*」はドメイン名の左側、*.example.com、または *.acme.example.com のように配置する必要があります。他の位置に「*」を含める場合、たとえば prod.*.example.com とすると、DNS はそれをワイルドカードではなく「*」文字 (ASCII 42) として扱います。

  • * は、ラベル全体を置き換える必要があります。たとえば、*prod.example.com や prod*.example.com と指定することはできません。

  • 特定のドメイン名が優先されます。たとえば、*.example.com と acme.example.com のレコードを作成すると、Route 53 は常に acme.example.com レコード の値で acme.example.com の DNS クエリに応答します。

  • 「*」は、アスタリスクが含まれたサブドメインレベル、およびそのサブドメインのすべてのサブドメインの DNS クエリに適用されます。たとえば、*.example.com という名前のレコードを作成すると、Route 53 はそのレコードの値を使用して apex.example.com、acme.apex.example.com、および pinnacle.acme.apex.example.com の DNS クエリに応答します (これらの名前を持つレコードがない場合)。

    *.example.com という名前のレコードを作成し、example.com レコードがない場合、Route 53 は NXDOMAIN (存在しないドメイン) として example.com の DNS クエリに応答します。

  • 同じレベルのすべてのサブドメインとドメイン名の両方の DNS クエリに対して、Route 53 が同じレスポンスを返すように設定できます。たとえば、Route 53 が example.com レコードを使用して、apex.example.com や acme.example.com などの DNS クエリに応答するように設定できます。以下のステップを実行します。

    1. ドメインのレコードを作成します (example.com など)。

    2. サブドメインのエイリアスレコードを作成します (*.example.com など)。ステップ 1 で作成したレコードの名前を、エイリアスレコードのターゲットとして指定します。

  • NS タイプのあるレコードで「*」をワイルドカードとして使用することはできません。

国際化ドメイン名の形式

新しいドメイン名を登録するとき、または、ホストゾーンとレコードを作成するときに、他のアルファベット (キリル文字やアラビア文字など) および中国語、日本語、韓国語の文字を指定できます。Amazon Route 53 は、これらの国際化ドメイン名 (IDN) を、Unicode 文字を ASCII 文字列として表現する Punycode で格納します。

以下の例は、国際化ドメイン名「中国.asia」の Punycode 表現を示しています:

xn--fiqs8s.asia

現代的なブラウザのアドレスバーに IDN を入力すると、ブラウザはそれを Punycode に変換した後、DNS クエリを送信するか、HTTP リクエストを実行します。

IDN の入力方法は、作成対象 (ドメイン名、ホストゾーン、レコード) とその作成方法 (API、SDK、Route 53 コンソール) によって変わります。

  • Route 53 API またはいずれかの AWS SDK を使用する場合は、プログラムで Unicode 値を Punycode に変換できます。たとえば、Java を使用する場合は、java.net.IDN ライブラリの toASCII メソッドを使って Unicode 値を Punycode に変換できます。

  • Route 53 コンソールを使ってドメイン名を登録する場合は、Unicode 文字も含めて名前を名前フィールドに貼り付けることができ、コンソールが値を Punycode に変換してから保存します。

  • Route 53 コンソールを使ってホストゾーンまたはレコードを作成する場合は、ドメイン名を Punycode に変換してから、名前を該当する [名前] フィールドに入力する必要があります。オンラインコンバーターについては、インターネットで「punycode コンバーター」を検索してください。

ドメイン名を登録する場合は、すべての最上位ドメイン (TLD) で IDN がサポートされているわけではないことに注意してください。Route 53 でサポートされる TLD のリストについては、「Amazon Route 53 で登録できるドメイン」を参照してください。IDN をサポートしない TLD が注記されています。