LoginSignup
6
7

More than 5 years have passed since last update.

[JAWS-UG CLI] Route53:#5 Aレコードの登録

Last updated at Posted at 2014-09-07

このハンズオンでは、Route53で管理しているドメインにAレコードを登録してみます。

前提条件

  • Route53へのフルアクセス権限
  • hosted zoneの作成が完了している。

0. 事前作業

0.1. レコードデータセットの作成

リソースレコードセットの定義をJSON形式で記述します。

command
R53_ZONE_NAME='example.jp'
R53_NODE_NAME="test.${R53_ZONE_NAME}"
R53_ACT='CREATE'
R53_TYPE='A'
R53_VALUE='192.0.2.1'
R53_TTL='86400'
FILE_R53_RECORD_SET='create-a.json'
command
cat << EOF > ${FILE_R53_RECORD_SET}
  {
     "Changes": [
       {
         "Action": "${R53_ACT}",
         "ResourceRecordSet": {
           "Name": "${R53_NODE_NAME}.",
           "ResourceRecords": [
             {
               "Value": "${R53_VALUE}"
             }
           ],
           "Type": "${R53_TYPE}",
           "TTL": ${R53_TTL}
         }
       }
     ]
  }
EOF
create-a.json(sample)
{
     "Changes": [
       {
         "Action": "CREATE",
         "ResourceRecordSet": {
           "Name": "test.example.jp.",
           "ResourceRecords": [
             {
               "Value": "192.0.2.1"
             }
           ],
           "Type": "A",
           "TTL": 86400
         }
       }
     ]
}

JSONファイルを作成したら、フォーマットが壊れてないか必ず確認しましょう。

command
jsonlint -q ${FILE_R53_RECORD_SET} 
result
(戻り値なし)

0.2. hosted zone idの取得

Aレコードを登録するドメインのhosted zone idを取得します。

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

1. Aレコードの作成

Aレコードを作成します。

command
aws route53 change-resource-record-sets \
  --hosted-zone-id ${R53_ZONE_ID} \
  --change-batch file://${FILE_R53_RECORD_SET}
result
{
       "ChangeInfo": {
           "Status": "PENDING", 
           "SubmittedAt": "2014-05-27T07:56:56.970Z", 
           "Id": "/change/CXXXXXXXXXXXXX"
       }
}

2. Aレコードの確認

Aレコードが作成されたことを確認します。

command
aws route53 list-resource-record-sets \
  --hosted-zone-id /hostedzone/${R53_ZONE_ID}
result
{
       "ResourceRecordSets": [
           {
               "ResourceRecords": [
                   {
                       "Value": "ns-X.awsdns-XX.com."
                   }, 
                   {
                       "Value": "ns-XXXX.awsdns-XX.co.uk."
                   }, 
                   {
                       "Value": "ns-XXX.awsdns-XX.net."
                   }, 
                   {
                       "Value": "ns-XXXX.awsdns-XX.org."
                   }
               ], 
               "Type": "NS", 
               "Name": "example.jp.", 
               "TTL": 172800
           }, 
           {
               "ResourceRecords": [
                   {
                       "Value": "ns-8.awsdns-01.com. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400"
                   }
               ], 
               "Type": "SOA", 
               "Name": "example.jp.", 
               "TTL": 900
           }, 
           {
               "ResourceRecords": [
                   {
                       "Value": "192.0.2.1"
                   }
               ], 
               "Type": "A", 
               "Name": "test.example.jp.", 
               "TTL": 86400
           }, 
           {
               "AliasTarget": {
                   "HostedZoneId": "ZXXXXXXXXXXXXX", 
                   "EvaluateTargetHealth": false, 
                   "DNSName": "s3-website-us-east-1.amazonaws.com."
               }, 
               "Type": "A", 
               "Name": "www.example.jp."
           }
       ]
}
  • 今回作成したAエイリアスレコードの登録内容は、"Type":"A"が含まれるブロックに反映されています。

3. インターネット上での名前解決確認

インターネットに接続されたホストで、登録したAレコードが名前解決できることを確認します。

command
dig ${R53_NODE_NAME} |grep ^${R53_NODE_NAME}
result
www.example.jp.               60      IN      A       xxx.xxx.xxx.xxx

4. ホストへのアクセス確認

実際にホストにアクセスしてみます。(このハンズオンではpingを打ってみます。)

command
ping -c 3 ${R53_NODE_NAME}
result
   PING test.example.jp (192.0.2.1): 56 data bytes
   64 bytes from 192.0.2.1: icmp_seq=0 ttl=58 time=72.463 ms
   64 bytes from 192.0.2.1: icmp_seq=1 ttl=58 time=12.172 ms
   64 bytes from 192.0.2.1: icmp_seq=2 ttl=58 time=12.750 ms

   --- test.example.jp ping statistics ---
   3 packets transmitted, 3 packets received, 0.0% packet loss
   round-trip min/avg/max/stddev = 12.172/32.462/72.463/28.286 ms

完了

以上で、Route53へのAレコードの登録作業は完了です。

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7