R53 Fox も Google Spreadsheets のも知ってるけどさ
boto が好きなので boto で Route 53 いじるぜ。
boto のセットアップ的なことは「http://aws.lefthandz.org/joomla/cloud/97-python-boto-aws-」に任せるぜ。
>>> from boto import route53 >>> conn = route53.Route53Connection() >>> conn.get_all_hosted_zones() {u'ListHostedZonesResponse': {u'HostedZones': [], u'IsTruncated': u'false', u'MaxItems': u'100'}}
空だなぁ。
xn--diz.jp というドメインを取ってみたので登録してみようと思います。
>>> conn.create_hosted_zone('xn--diz.jp.') {u'CreateHostedZoneResponse': {u'HostedZone': {u'CallerReference': u'1e82cbe0-4027-4f66-885e-2e277a73f7e5', u'Config': {u'Comment': {}}, u'Id': u'/hostedzone/Z3P4DE8ND2AYEM', u'Name': u'xn--diz.jp.'}, u'ChangeInfo': {u'Status': u'PENDING', u'SubmittedAt': u'2011-11-09T15:38:16.057Z', u'Id': u'/change/C2U2D3UJRE80AQ'}, u'DelegationSet': {u'NameServers': [u'ns-615.awsdns-12.net', u'ns-1985.awsdns-56.co.uk', u'ns-1320.awsdns-37.org', u'ns-211.awsdns-26.com']}}} >>> conn.get_all_hosted_zones() {u'ListHostedZonesResponse': {u'HostedZones': [{u'CallerReference': u'1e82cbe0-4027-4f66-885e-2e277a73f7e5', u'Config': {}, u'Id': u'/hostedzone/Z3P4DE8ND2AYEM', u'Name': u'xn--diz.jp.'}], u'IsTruncated': u'false', u'MaxItems': u'100'}} >>> for i in conn.get_all_rrsets('Z3P4DE8ND2AYEM'): ... i.name, i. type, i.resource_records ... (u'xn--diz.jp.', u'NS', [u'ns-615.awsdns-12.net.', u'ns-1985.awsdns-56.co.uk.', u'ns-1320.awsdns-37.org.', u'ns-211.awsdns-26.com.']) (u'xn--diz.jp.', u'SOA', [u'ns-615.awsdns-12.net. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400'])
DNS サーバの名前がいくつか出てるので WHOIS 情報をこれに合わせて更新してあげましょう。
$ whois xn--diz.jp -h whois.jprs.jp | grep 'Name Server' [Name Server] ns-1320.awsdns-37.org [Name Server] ns-1985.awsdns-56.co.uk [Name Server] ns-211.awsdns-26.com [Name Server] ns-615.awsdns-12.net
うし。
ってここまではまぁ ipython から色々いじってできてたんだけど次どーやってレコード登録したらいいか分からなくて「うわーん」ってなったので、source 落としてきて悩もうと思ったら bin とかいう directory があって bin/route53 とかいうコマンドがあるでやんのよ。
$ ./bin/route53 Usage: route53 [command] add_alias Add a new alias to a zone add_record Add a new record to a zone change_record Delete and then add a record to a zone cmd Prints this help message create Create a hosted zone, returning the nameservers del_alias Delete an alias from a zone del_record Delete a record from a zone delete_zone Delete a hosted zone by ID get Get all the records for a single zone help Prints this help message ls List all hosted zones $ ./bin/route53 ls ================================================================================ | ID: Z3P4DE8ND2AYEM | Name: xn--diz.jp. | Ref: 1e82cbe0-4027-4f66-885e-2e277a73f7e5 ================================================================================ {}
━━━━━━(゚∀゚)━━━━━━ !!!!!
くやしいけど中身見るヨ。
def add_record(conn, hosted_zone_id, name, type, values, ttl=600, comment=""): """Add a new record to a zone""" from boto.route53.record import ResourceRecordSets changes = ResourceRecordSets(conn, hosted_zone_id, comment) change = changes.add_change("CREATE", name, type, ttl) for value in values.split(','): change.add_value(value) print changes.commit()
なるほど。便利だ。なんでこれが boto.route53 の下にないんだ? まぁもぉいいや、面倒だから route53 でいいよね。
$ ./bin/route53 add_record add_record() takes at least 5 arguments (1 given) Add a new record to a zone Usage: add_record [hosted_zone_id] [name] [type] [values] [ttl] [comment] $ ./bin/route53 add_record Z3P4DE8ND2AYEM aws.xn--diz.jp. CNAME aws.amazon.com 86400 'just test for route53' {u'ChangeResourceRecordSetsResponse': {u'ChangeInfo': {u'Status': u'PENDING', u'SubmittedAt': u'2011-11-09T15:56:59.332Z', u'Id': u'/change/C2WJQNZ6KQZSZW'}}} $ ./bin/route53 get Z3P4DE8ND2AYEM Name Type TTL Value(s) xn--diz.jp. NS 172800 ns-615.awsdns-12.net.,ns-1985.awsdns-56.co.uk.,ns-1320.awsdns-37.org.,ns-211.awsdns-26.com. xn--diz.jp. SOA 900 ns-615.awsdns-12.net. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400 aws.xn--diz.jp. CNAME 86400 aws.amazon.com $ host aws.xn--diz.jp aws.xn--diz.jp is an alias for aws.amazon.com. aws.amazon.com has address 72.21.206.131
━━━━━━(゚∀゚)━━━━━━ !!!!!
えーとなんだこれ、結論としては route53 コマンド便利だよ、なのか??