はじめに
DNSを他からRoute53へ移行するときどうしてますか?
ゾーン情報があればGUIから「Import Zone File」でコピペして完了ですが、いちいち管理コンソールへログインしてHosted Zoneを作成して。。。ttl部分を避けてコピペしないと行けなかったり、複数ドメインあったら一つ一つファイル開いてコピペしないとだし。。。って正直面倒で仕方ないです。。。
そんな時にbindtoroute53.plとdnscurl.plを利用すると、BINDのゾーン情報をGUIから行わなくても設定が可能になるのでとても便利で時短になります。
ツールのダウンロード
まずはじめに、bindtoroute53.plをダウンロードします。
次にdnscurl.plをダウンロードします。
BIND → Route53
bindtoroute53.plでBINDから取得したゾーン情報をRoute53へ登録するためのXMLファイルに変換します。
$ $ ./bindtoroute53.pl --ignore-origin-ns --ignore-soa --origin hogehoge.jp < hogehoge.jp.zone > hogehoge.jp.xml
Ignoring 'hogehoge.jp. 300 IN SOA ns1.nameserver.jp. postmaster.nameserver.jp.hogehoge.jp. (
1355980110 ;serial
10800 ;refresh
3600 ;retry
604800 ;expire
300 ) ;minimum', --ignore-soa enabled.
Ignoring 'hogehoge.jp. 300 IN NS ns1.nameserver.jp.', --ignore-origin-ns enabled.
Ignoring 'hogehoge.jp. 300 IN NS ns2.nameserver.jp.', --ignore-origin-ns enabled.
Hosted Zoneの作成
登録するためのHosted Zoneを作成します。
$ aws route53 create-hosted-zone --name hogehoge.jp --caller-reference `date +%Y-%m-%d_%H-%M-%S`
{
"HostedZone": {
"ResourceRecordSetCount": 2,
"CallerReference": "2016-10-12_23-42-18",
"Config": {
"PrivateZone": false
},
"Id": "/hostedzone/Z2B42SHHTH6TX1",
"Name": "hogehoge.jp."
},
"DelegationSet": {
"NameServers": [
"ns-498.awsdns-62.com",
"ns-844.awsdns-41.net",
"ns-1215.awsdns-23.org",
"ns-1972.awsdns-54.co.uk"
]
},
"Location": "https://route53.amazonaws.com/2013-04-01/hostedzone/Z2B42SHHTH6TX1",
"ChangeInfo": {
"Status": "PENDING",
"SubmittedAt": "2016-10-12T14:42:20.702Z",
"Id": "/change/C1N36QDVJM9J4O"
}
}
Route53へ登録
まず、「.aws-secrets」を作成します。
$ vi .aws-secrets
内容は以下です。
%awsSecretAccessKeys = (
"my-aws-account" => {
id => "********************",
key => "****************************************",
},
);
作成したらdnscurl.plコマンドでRoute53へ情報を登録します。
$ ./dnscurl.pl --keyname my-aws-account -- -H "Content-Type: text/xml; charset=UTF-8" -X POST --upload-file hogehoge.jp.xml https://route53.amazonaws.com/2010-10-01/hostedzone/Z2B42SHHTH6TX1/rrset | tee out
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 3127 100 276 100 2851 247 2552 0:00:01 0:00:01 --:--:-- 2554
<?xml version="1.0"?>
<ChangeResourceRecordSetsResponse xmlns="https://route53.amazonaws.com/doc/2010-10-01/"><ChangeInfo><Id>/change/C2ZJGJOSDSK9L0</Id><Status>PENDING</Status><SubmittedAt>2016-10-12T16:19:08.986Z</SubmittedAt></ChangeInfo></ChangeResourceRecordSetsResponse>
以上で完了です。
おわりに
はじめにも述べましたが、ゾーン情報はGUIからコピペで登録可能ですが、やはりいちいちファイル開いてコピペはちょっと面倒かなと。。。時間もかかりますし。
なので、環境の下準備(.aws-secretsの作成とか)が出来てしまえばこっちの方がミスするポイントも減って、時間の短縮もできてとても楽になるのではないでしょうか?