ハンズオン(簡易版): Route53入門

1. Route53ホストゾーンの作成 (一時ファイル利用: <事前に用意した独自ドメイン>)

手順の目的

ドメイン名"<事前に用意した独自ドメイン>"のRoute53ホストゾーンを作成します。

設定値の指定

設定値の指定

手順に必要な設定値を変数に格納をします。

1. ドメイン名

ドメイン名を指定します。

変数の設定:

DIR_TMP_DOMAIN="${HOME}/environment/tmp-handson-cli-route53-novice"

変数の設定:

FILE_TMP_DOMAIN="${DIR_TMP_DOMAIN}/handson-cli-route53-novice" \
  && echo ${FILE_TMP_DOMAIN}

結果(例):

${HOME}/environment/tmp-handson-cli-route53-novice/handson-cli-route53-novice

コマンド:

source ${FILE_TMP_DOMAIN} \
  && echo ${DOMAIN_NAME}

結果(例):

<事前に用意した独自ドメイン>

2. Route53ホストゾーン識別子

Route53ホストゾーン識別子を指定します。

変数の設定:

ROUTE53_HOSTED_ZONE_CALLER="${DOMAIN_NAME}-$(date +%s)" \
  && echo ${ROUTE53_HOSTED_ZONE_CALLER}

結果(例):

<事前に用意した独自ドメイン>-16xxxxxxxx

3. Route53ホストゾーンに対するコメント

Route53ホストゾーンに対するコメントを指定します。

変数の設定:

ROUTE53_HOSTED_ZONE_COMMENT="${DOMAIN_NAME} zone" \
  && echo ${ROUTE53_HOSTED_ZONE_COMMENT}
<事前に用意した独自ドメイン> zone

設定値の確認

各変数に正しい設定値が格納されていることを確認します。

変数の確認:

cat << END

  # 1. DOMAIN_NAME:"<事前に用意した独自ドメイン>"
       DOMAIN_NAME="${DOMAIN_NAME}"
  # 2. ROUTE53_HOSTED_ZONE_CALLER:"<事前に用意した独自ドメイン>-16xxxxxxxx"
       ROUTE53_HOSTED_ZONE_CALLER="${ROUTE53_HOSTED_ZONE_CALLER}"
  # 3. ROUTE53_HOSTED_ZONE_COMMENT:"<事前に用意した独自ドメイン> zone"
       ROUTE53_HOSTED_ZONE_COMMENT="${ROUTE53_HOSTED_ZONE_COMMENT}"

END

下段の変数が入っていない、もしくは上段と同等の値が入っていない場合は、それぞれの手順番号に戻って変数の設定を行います。

処理の実行

ドメインのFQDNを指定します。

変数の設定:

domain_name_fqdn="${DOMAIN_NAME}." \
  && echo ${domain_name_fqdn}

結果(例):

<事前に用意した独自ドメイン>.

Route53ホストゾーンを作成します。

変数の確認:

cat << END

  # DOMAIN_NAME:"<事前に用意した独自ドメイン>"
    DOMAIN_NAME="${DOMAIN_NAME}"
  # ROUTE53_HOSTED_ZONE_CALLER:"<事前に用意した独自ドメイン>-16xxxxxxxx"
    ROUTE53_HOSTED_ZONE_CALLER="${ROUTE53_HOSTED_ZONE_CALLER}"
  # ROUTE53_HOSTED_ZONE_COMMENT:"<事前に用意した独自ドメイン> zone"
    ROUTE53_HOSTED_ZONE_COMMENT="${ROUTE53_HOSTED_ZONE_COMMENT}"

END

コマンド:

aws route53 create-hosted-zone \
  --name ${DOMAIN_NAME} \
  --caller-reference ${ROUTE53_HOSTED_ZONE_CALLER} \
  --hosted-zone-config Comment="${ROUTE53_HOSTED_ZONE_COMMENT}"

結果(例):

{
  "HostedZone": {
    "ResourceRecordSetCount": 2,
    "CallerReference": "<事前に用意した独自ドメイン>-16xxxxxxxx",
    "Config": {
        "Comment": "<事前に用意した独自ドメイン> zone",
        "PrivateZone": false
    },
    "Id": "/hostedzone/xxxxxxxxxxxxx",
    "Name": "<事前に用意した独自ドメイン>."
  },
  "DelegationSet": {
    "NameServers": [
        "ns-xxx.awsdns-xx.co.uk",
        "ns-xxx.awsdns-xx.net",
        "ns-xxx.awsdns-xx.com",
        "ns-xxx.awsdns-xx.org"
    ]
  },
  "Location": "https://route53.amazonaws.com/2013-04-01/hostedzone/xxxxxxxxxxxxx",
  "ChangeInfo": {
    "Status": "PENDING",
    "SubmittedAt": "2023-02-27T01:23:45.678Z",
    "Id": "/change/xxxxxxxxxxxxx"
  }
}

完了確認

「ドメイン名"<事前に用意した独自ドメイン>"のRoute53ホストゾーンが存在する。」ことを確認します。

コマンド:

aws route53 list-hosted-zones \
  --query "HostedZones[?Name == \`${domain_name_fqdn}\` \
    && Config.PrivateZone == \`false\`].Name" \
  --output text

結果(例):

<事前に用意した独自ドメイン>.

Route53委任セットのNS情報を取得します。

コマンド:

route53_hosted_zone_id=$( \
  aws route53 list-hosted-zones \
    --query "HostedZones[?Name == \`${domain_name_fqdn}\`].Id" \
    --output text \
  | sed 's/\/hostedzone\///' \
) \
  && echo ${route53_hosted_zone_id}

結果(例):

Z0xxxxxxxxxxxxxxxxxxx

コマンド:

array_route53_hosted_zone_ns=$( \
  aws route53 get-hosted-zone \
    --id /hostedzone/${route53_hosted_zone_id} \
    --query DelegationSet.NameServers \
    --output text \
) \
  && echo ${array_route53_hosted_zone_ns}

結果(例):

ns-xxx.awsdns-xx.yyy ns-xxx.awsdns-xx.yyy ns-xxx.awsdns-xx.yyy ns-xxx.awsdns-xx.yyy

ドメインを取得したレジストラが提供する管理画面で、ネームサーバ情報として、委任セットのレコードを全て登録します。

注釈

参考: ネームサーバー変更手順(「さくらのドメイン」での設定例): https://help.sakura.ad.jp/hc/ja/articles/206205831

ハンズオン後に戻せるように、予め登録されていたネームサーバ情報をメモしておいてください。

Route53委任セットのレコード以外は登録しないでください。

(「さくらのドメイン」の場合は、デフォルト値が"NS1.DNS.NE.JP"と"NS2.DNS.NE.JP"ですが、これらを削除し、Route53委任セットのレコードで上書きします。)

WhoisDBの更新を確認します。

コマンド:

whois ${DOMAIN_NAME} \
  | grep 'Name Server'

結果(例):

Name Server: NS-xxxx.AWSDNS-xx.ORG
Name Server: NS-xx.AWSDNS-xx.COM
Name Server: NS-xxx.AWSDNS-xx.NET
Name Server: NS-xxxx.AWSDNS-xx.CO.UK

注釈

Whois DBの更新完了までに必要な時間は、ドメイン管理事業者やレジストリ(トップレベルドメインの管理者)によって異なります。

手順の完了

(参考) マネジメントコンソールの確認

  • 左ペインの"ホストゾーン"をクリックします。

ホストゾーン一覧(画面)

  • 検索欄にホストゾーン名"<事前に用意した独自ドメイン>"を入力して、エンターキーを押します。

  • ホストゾーン名"<事前に用意した独自ドメイン>"が表示されていることを確認します。