このハンズオンでは、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レコードの登録作業は完了です。