http://jawsug-cli.doorkeeper.jp/events/13530 でのハンズオン資料です。
Route53で独自ドメインを取得します。(2014-07-31にリリースされた新機能です。)
注) この手順は、検証の度にドメイン費用がかかるため、精度があまり高くないかもしれません...。
前提
-
Route53へのフルアクセス権限が必要です。
-
route53domainsは、us-east-1で提供されているようです。us-east-1以外をデフォルトリージョンにしている場合は、
--region us-east-1
をコマンドに追加してください。
0. 事前作業
0.1. ドメイン候補
最初に取得するドメインの候補を決めます。
0.2. 登録情報の作成
レジストリへの登録情報をJSONファイルに記述します。
{
"FirstName": "Taro",
"LastName": "Domai",
"ContactType": "COMPANY",
"OrganizationName": "Example, LLC.",
"AddressLine1": "XX-XX 1Chome XXXX Minato-ku",
"AddressLine2": "",
"City": "Tokyo",
"State": "",
"CountryCode": "JP",
"ZipCode": "XXX00XX",
"PhoneNumber": "+81.XXXXXXXXX",
"Email": "info@example.net",
"Fax": "",
"ExtraParams": [
]
}
-
ContactTypeは、"PERSON"|"COMPANY"|"ASSOCIATION"|"PUBLIC_BODY"|"RESELLER" のいずれかを記載する。
-
PhoneNumberは、"+(国番号: 日本は81).(最初の0を除く市外局番を含む番号。ハイフンは付けない)"の形式で記述する。(形式チェック厳しい)
JSONを作成したら、フォーマットが壊れてないか必ず確認しましょう。
jsonlint -q contact.json
エラーが出力されなければOKです。
- ドメインの利用可能確認
=========================
取得可能(Available)なドメインがみつかるまで、以下のコマンドを繰り返します。
R53DOMAIN_NAME='example.jp'
aws route53domains check-domain-availability \
--region us-east-1 \
--domain-name ${R53DOMAIN_NAME}
{
"Availability": "AVAILABLE"
}
{
"Availability": "UNAVAILABLE"
}
- ドメインの取得
=================
取得するドメインが確定したら、実際にドメインの取得を行います。
R53DOMAIN_YEAR='1'
R53DOMAIN_FILE_ADMIN='contact.json'
R53DOMAIN_FILE_REG='contact.json'
R53DOMAIN_FILE_TECH='contact.json'
aws route53domains register-domain \
--region us-east-1 \
--domain-name ${R53DOMAIN_NAME} \
--duration-in-years ${R53DOMAIN_YEAR} \
--admin-contact file://${R53DOMAIN_FILE_ADMIN} \
--registrant-contact file://${R53DOMAIN_FILE_REG} \
--tech-contact file://${R53DOMAIN_FILE_TECH} \
--auto-renew \
--privacy-protect-admin-contact \
--privacy-protect-registrant-contact \
--privacy-protect-tech-contact
{
"OperationId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
- ドメイン取得確認
=========================
3.1. 処理状況の確認
ドメイン登録の処理状況を確認します。
aws route53domains list-operations \
--region us-east-1
{
"Operations": [
{
"Status": "IN_PROGRESS",
"Type": "REGISTER_DOMAIN",
"SubmittedDate": 1407500711.711,
"OperationId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
]
}
{
"Operations": [
{
"Status": "SUCCESSFUL",
"Type": "REGISTER_DOMAIN",
"SubmittedDate": 1407500711.711,
"OperationId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
]
}
- 登録が完了すると、Billingメールがすぐ届きます;-)
3.2. コンタクト先存在確認メールの受信
ドメイン登録が完了すると、コンタクト先として登録したメールアドレスに存在確認メールが届くので、本文のURLにアクセスしてください。
From: Amazon Route 53 <noreply@domainnameverification.net>
Date: 2014年8月8日 21:54:39 JST
Subject: Verification of your contact data
To: info@example.net
Hello,
This is an important email, and your prompt action is required. If you do not act on the instructions we are providing below, your domain name(s) will be suspended on 2014-08-23 14:27.
Why is this required?
Beginning January 1st, 2014, ICANN requires that registrars verify that domain contacts can be reached.
What do you need to do?
Please confirm that your email address info@example.net can be reached, by clicking on the link below:
http://domainnameverification.net/?hash=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
If you use this link, we will not need to ask you for any password during this process.
Amazon Route 53
To setup your domain, log in to the AWS Console at https://console.aws.amazon.com/route53/home
3.3. コンタクト先存在確認webページへのアクセス
URLにアクセスして、'Your contact is now validated.' と表示されればコンタクト先存在確認手続きは完了です。
3.4. コンタクト先存在確認完了メールの受信
Webでの確認が完了すると、コンタクト先として登録したメールアドレスに存在確認完了メールが届きます。
From: Amazon Route 53 <route53-dev-admin@amazon.com>
Subject: example.jp was successfully registered with Route 53
Date: 2014年8月8日 21:30:41 JST
To: Admin <info@example.net>
Hi,
We have successfully registered example.jp. We also created a hosted zone for your domain. This hosted zone is where you store information about how to route traffic for your domain, for example, to an Amazon EC2 instance or a CloudFront distribution. To learn how to add resource record sets to your hosted zone, see Working with Resource Record Sets.
If you did not request this change, please contact Amazon Web Services Customer Support immediately.
Amazon Route 53
- NameServersの確認
============================
一応、whoisデータベースにNameServerが登録されていることを確認しておきます。
R53_ZONE_NAME=${R53DOMAIN_NAME}
whois ${R53DOMAIN_NAME} | grep '^Name Server: '
Name Server: NS-X.AWSDNS-XX.COM
Name Server: NS-XXXX.AWSDNS-XX.CO.UK
Name Server: NS-XXX.AWSDNS-XX.NET
Name Server: NS-XXXX.AWSDNS-XX.ORG
- ドメイン移転の防護設定
=========================
不正にドメイン移転されないように、防護設定をしておきましょう。
5.1. 設定
aws route53domains enable-domain-transfer-lock \
--region us-east-1 \
--domain-name ${R53DOMAIN_NAME}
{
"OperationId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
5.2. 設定変更の処理状況確認
aws route53domains list-operations \
--region us-east-1
{
"Operations": [
{
"Status": "SUCCESSFUL",
"Type": "DOMAIN_LOCK",
"SubmittedDate": 1407559215.777,
"OperationId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
]
}
5.3. 設定完了通知メールの受信
設定が完了すると、コンタクト先として登録したメールアドレスに設定完了通知が届きます。
From: Amazon Route 53 <route53-dev-admin@amazon.com>
Subject: Domain details update for example.jp succeeded
Date: 2014年8月9日 13:40:23 JST
To: Admin <info@example.net>
Hi,
We recently received an online request from your AWS account to make the following change:
Lock the domain
If you requested this change, you don't need to take any further action.
If you did not request this change, please contact Amazon Web Services Customer Support immediately.
Amazon Route 53
(任意) Privacy Protection
ドメイン取得時にPrivacy Protectionの設定をしていない場合、住所や電話番号、メールアドレスなどがwhoisデータベースで表示されます。
Privacy Protectionは後からでも設定できるので、個人での取得の場合は設定しておくとよいでしょう。
設定
aws route53domains update-domain-contact-privacy \
--region us-east-1 \
--domain-name ${R53DOMAIN_NAME} \
--admin-privacy \
--registrant-privacy \
--tech-privacy
{
"OperationId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
設定変更の処理状況確認
処理状況はlist-operationsコマンドで確認できます。
aws route53domains list-operations \
--region us-east-1
{
"Operations": [
{
"Status": "SUCCESSFUL",
"Type": "CHANGE_PRIVACY_PROTECTION",
"SubmittedDate": 1407541562.054,
"OperationId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
]
}
設定完了通知メールの受信
設定が完了すると、コンタクト先として登録したメールアドレスに設定完了通知が届きます。
From: Amazon Route 53 <route53-dev-admin@amazon.com>
Subject: Domain details update for example.jp succeeded
Date: 2014年8月9日 8:46:14 JST
To: Admin <info@example.net>
Hi,
We recently received an online request from your AWS account to make the following change:
Enable ADMIN contact privacy for the domain example.jp.
Enable OWNER contact privacy for the domain example.jp.
Enable TECH contact privacy for the domain example.jp.
Enable BILL contact privacy for the domain example.jp.
If you requested this change, you don't need to take any further action.
If you did not request this change, please contact Amazon Web Services Customer Support immediately.
Amazon Route 53
whoisデータベースの確認
whoisデータベースでのコンタクト先が、レジストラのものになっていることを確認します。
whois ${R53DOMAIN_NAME}
(snip)
Registrant Name: Taro Domai
Registrant Organization: Example, LLC.
Registrant Street: Gandi, 63-65 boulevard Massena
Registrant City: (Gandi) Paris
Registrant State/Province:
Registrant Postal Code: (Gandi) 75013
Registrant Country: (Gandi) FR
Registrant Phone: (Gandi) +33.170377666
Registrant Phone Ext:
Registrant Fax: (Gandi) +33.143730576
Registrant Fax Ext:
Registrant Email: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXX@contact.gandi.net
Registry Admin ID:
Admin Name: Taro Domai
Admin Organization: Example, LLC.
Admin Street: Gandi, 63-65 boulevard Massena
Admin City: (Gandi) Paris
Admin State/Province:
Admin Postal Code: (Gandi) 75013
Admin Country: (Gandi) FR
Admin Phone: (Gandi) +33.170377666
Admin Phone Ext:
Admin Fax: (Gandi) +33.143730576
Admin Fax Ext:
Admin Email: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXX@contact.gandi.net
Registry Tech ID:
Tech Name: Taro Domai
Tech Organization: Example, LLC.
Tech Street: Gandi, 63-65 boulevard Massena
Tech City: (Gandi) Paris
Tech State/Province:
Tech Postal Code: (Gandi) 75013
Tech Country: (Gandi) FR
Tech Phone: (Gandi) +33.170377666
Tech Phone Ext:
Tech Fax: (Gandi) +33.143730576
Tech Fax Ext:
Tech Email: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXX@contact.gandi.net
- hosted zoneの確認
====================
取得したドメインのRoute53での設定を確認します。
6.1. hosted zone IDの取得
まず、hosted zone IDを取得します。
R53_ZONE_ID=$( \
aws route53 list-hosted-zones \
--query "HostedZones[?Name == \`${R53_ZONE_NAME}.\`].Id" \
--output text \
| sed 's/\/hostedzone\///' \
) && echo ${R53_ZONE_ID}
ZXXXXXXXXXXXXX
6.2. ゾーン情報の取得
hosted zone IDをキーにゾーン情報を確認します。
aws route53 list-resource-record-sets \
--hosted-zone-id /hostedzone/${R53_ZONE_ID}
{
"ResourceRecordSets": [
{
"ResourceRecords": [
{
"Value": "ns-XXXX.awsdns-XX.co.uk."
},
{
"Value": "ns-XXX.awsdns-XX.com."
},
{
"Value": "ns-XXX.awsdns-XX.net."
},
{
"Value": "ns-XXXX.awsdns-XX.org."
}
],
"Type": "NS",
"Name": "example.jp.",
"TTL": 172800
},
{
"ResourceRecords": [
{
"Value": "ns-XXXX.awsdns-XX.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400"
}
],
"Type": "SOA",
"Name": "example.jp.",
"TTL": 900
}
]
}
この時点では、SOAレコードとNSレコードだけが登録されています。
- nsレコードの確認
====================
インターネット上で実際にnsレコードが引けることを確認します。
dig ns ${R53_ZONE_NAME}
; <<>> DiG 9.8.3-P1 <<>> ns example.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17924
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;example.jp. IN NS
;; ANSWER SECTION:
example.jp. 172800 IN NS ns-XXXX.awsdns-XX.org.
example.jp. 172800 IN NS ns-XXXX.awsdns-XX.co.uk.
example.jp. 172800 IN NS ns-XXX.awsdns-XX.net.
example.jp. 172800 IN NS ns-X.awsdns-XX.com.
;; Query time: 378 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Sat Aug 9 22:15:39 2014
次は
この手順では以下が完了し、ドメイン運用の基盤的な準備が完了しました。
- ドメインの取得
- whiosデータベースの登録
- ゾーン情報の作成 (SOA/NS)
この後は、個別のリソースレコードを登録して、ドメインの実運用をしていくことになります。