Skip to main content
Gitを使ったRoute53の管理
クックパッド株式会社
菅原 元気
注意
「るーとふぃふてぃすりー」が多
数はかもですが、発表者は
「るーとごじゅうさん」と読みま
す。
気にしないように
自己紹介
菅原 元気
@sgwr_dts / id:winebarrel
白金台の方から来ました。
● クックパッド(株) インフラ部所属
● Ruby・AWSのツールを作ってます
○ Bitbucket - bitbucket.org/winebarrel
○ GitHub - github.com/winebarrel
みんな大好きRoute53
● 安い
● 簡単
● 頑丈
(APIが死んだことはあったけど…)
Route53であった怖い話
ある日突然メールが届かなくなった
↓
調べたらMXレコードがなくなってた
↓
オペミスでMXレコード消したっぽい…
Route53で困ってたこと
API操作→即反映
● 事前に検証できない
● 変更履歴が残らない
R53 FoxにImport/Export機能をつけた
● dry runができない
● テストが手動(GUIなので)
→ExportしたJSONをgitに保存する運用…
Roadworker
bitbucket.org/winebarrel/roadworker
● 内部DSLでChefっぽ
くRoute53を管理
● 冪等性を保証
● 設定をGitで管理でき
る
設定ファイル
hosted_zone "winebarrel.jp." do
rrset "winebarrel.jp.", "A" do
ttl 300
resource_records(
"127.0.0.1",
"127.0.0.2"
)
end
rrset "winebarrel.jp.", "MX" do
ttl 300
resource_records(
"10 mx.winebarrel.jp"
)
end
end
hosted_zone "info.winebarrel.jp." do
rrset "for.your.info.winebarrel.jp.", "A" do
dns_name "elb-dns-name.elb.amazonaws.com"
end
rrset "my.info.winebarrel.jp", "A" do
set_identifier "Primary"
failover "PRIMARY"
health_check "http://192.0.43.10:80/path", :host => "example.com"
ttl 456
resource_records(
"127.0.0.1",
"127.0.0.2"
)
end
end
DEMO
www.youtube.com/watch?v=3nImLkmETDo
その他
GitHub/Bitbucket+Travis CI/drone.ioで
DNSを管理できる
Bitbucket
bitbucket.org/winebarrel/roadworker-example
drone.io
drone.io/bitbucket.org/winebarrel/roadworker-example
Please try it out!