LoginSignup
3
5

More than 5 years have passed since last update.

bindtoroute53.plとdnscurl.plを使ってRoute53にBINDのゾーン情報を登録する。

Posted at

はじめに

DNSを他からRoute53へ移行するときどうしてますか?
ゾーン情報があればGUIから「Import Zone File」でコピペして完了ですが、いちいち管理コンソールへログインしてHosted Zoneを作成して。。。ttl部分を避けてコピペしないと行けなかったり、複数ドメインあったら一つ一つファイル開いてコピペしないとだし。。。って正直面倒で仕方ないです。。。
そんな時にbindtoroute53.pldnscurl.plを利用すると、BINDのゾーン情報をGUIから行わなくても設定が可能になるのでとても便利で時短になります。

ツールのダウンロード

まずはじめに、bindtoroute53.plをダウンロードします。
bindtoroute53.png

次にdnscurl.plをダウンロードします。
dnscurl.png

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を作成します。

HostedZone作成
$  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 

内容は以下です。

.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の作成とか)が出来てしまえばこっちの方がミスするポイントも減って、時間の短縮もできてとても楽になるのではないでしょうか?

3
5
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
3
5