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

事前作業4. Route53ホストゾーンの作成 (<事前に用意した独自ドメイン>)

手順の目的 [why]

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

設定値の指定

設定値の指定

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

1. Route53委任セット識別子、ドメイン名

Route53委任セット識別子とドメイン名を指定します。

変数の設定:

DIR_TMP_ROUTE53_REUSABLE_DELEGATION_SET="${HOME}/environment/tmp-handson-cli-route53-before"

変数の設定:

FILE_TMP_ROUTE53_REUSABLE_DELEGATION_SET="${DIR_TMP_ROUTE53_REUSABLE_DELEGATION_SET}/handson-cli-route53-reusable_delegation_set.tmp" \
  && echo ${FILE_TMP_ROUTE53_REUSABLE_DELEGATION_SET}

結果(例):

${HOME}/environment/tmp-handson-cli-route53-before/handson-cli-route53-reusable_delegation_set.tmp

コマンド:

source ${FILE_TMP_ROUTE53_REUSABLE_DELEGATION_SET} \
  && echo ${ROUTE53_REUSABLE_DELEGATION_SET_CALLER}

結果(例):

handson-cli-route53-before-dgset-XXXXXXXXXX

Route53ゾーン名を指定します。

変数の設定:

ROUTE53_HOSTED_ZONE_NAME="${DOMAIN_NAME}" \
  && echo ${ROUTE53_HOSTED_ZONE_NAME}

結果(例):

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

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

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

変数の設定:

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

結果(例):

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

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

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

変数の設定:

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

設定値の確認

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

変数の確認:

cat << END

  # 1. ROUTE53_REUSABLE_DELEGATION_SET_CALLER:"handson-cli-route53-before-dgset-XXXXXXXXXX"
       ROUTE53_REUSABLE_DELEGATION_SET_CALLER="${ROUTE53_REUSABLE_DELEGATION_SET_CALLER}"
  #    ROUTE53_HOSTED_ZONE_NAME:"<事前に用意した独自ドメイン>"
       ROUTE53_HOSTED_ZONE_NAME="${ROUTE53_HOSTED_ZONE_NAME}"
  # 3. ROUTE53_HOSTED_ZONE_CALLER:"<事前に用意した独自ドメイン>-XXXXXXXXXX"
       ROUTE53_HOSTED_ZONE_CALLER="${ROUTE53_HOSTED_ZONE_CALLER}"
  # 4. ROUTE53_HOSTED_ZONE_COMMENT:"<事前に用意した独自ドメイン> zone"
       ROUTE53_HOSTED_ZONE_COMMENT="${ROUTE53_HOSTED_ZONE_COMMENT}"

END

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

処理の実行

委任セットIDを取得します。

コマンド:

ROUTE53_REUSABLE_DELEGATION_SET_ID=$( \
  aws route53 list-reusable-delegation-sets \
    --query "DelegationSets[?CallerReference == \`${ROUTE53_REUSABLE_DELEGATION_SET_CALLER}\`].Id" \
    --output text \
  | sed 's|/delegationset/||' \
) \
  && echo ${ROUTE53_REUSABLE_DELEGATION_SET_ID}

結果(例):

NXXXXXXXXXXXXXXXXXXXX

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

変数の確認:

cat << END

  # ROUTE53_HOSTED_ZONE_NAME:"<事前に用意した独自ドメイン>"
    ROUTE53_HOSTED_ZONE_NAME="${ROUTE53_HOSTED_ZONE_NAME}"
  # ROUTE53_HOSTED_ZONE_CALLER:"<事前に用意した独自ドメイン>-XXXXXXXXXX"
    ROUTE53_HOSTED_ZONE_CALLER="${ROUTE53_HOSTED_ZONE_CALLER}"
  # ROUTE53_HOSTED_ZONE_COMMENT:"<事前に用意した独自ドメイン> zone"
    ROUTE53_HOSTED_ZONE_COMMENT="${ROUTE53_HOSTED_ZONE_COMMENT}"
  # ROUTE53_REUSABLE_DELEGATION_SET_ID:"NXXXXXXXXXXXXXXXXXXXX"
    ROUTE53_REUSABLE_DELEGATION_SET_ID="${ROUTE53_REUSABLE_DELEGATION_SET_ID}"

END

コマンド:

aws route53 create-hosted-zone \
  --name ${ROUTE53_HOSTED_ZONE_NAME} \
  --caller-reference ${ROUTE53_HOSTED_ZONE_CALLER} \
  --hosted-zone-config Comment="${ROUTE53_HOSTED_ZONE_COMMENT}" \
  --delegation-set-id ${ROUTE53_REUSABLE_DELEGATION_SET_ID}

結果(例):

{
  "HostedZone": {
    "ResourceRecordSetCount": 2,
    "CallerReference": "<事前に用意した独自ドメイン>-XXXXXXXXXX",
    "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": "2021-12-13T01:23:45.678Z",
    "Id": "/change/xxxxxxxxxxxxx"
  }
}

完了確認

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

コマンド:

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

結果(例):

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

手順の完了

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

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

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

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