ローファイ日記

出てくるコード片、ぼくが書いたものは断りがない場合 MIT License としています http://udzura.mit-license.org/

Route53で、サブドメインでHosted Zoneを分けたい

DNS 弱者であることが明るみに出たのでメモする。なお、 roadworker 使う前提。え、みんな使ってないんですか...

github.com

新しいHosted Zoneを追加する

たとえば、 staging を別のHosted Zoneにするとか。

hosted_zone "udzura-cool-app.com." do
  #...
end

hosted_zone "staging.udzura-cool-app.com." do
  rrset "staging.udzura-cool-app.com.", "A" do
    ttl 300
    resource_records(
      "192.0.2.100"
    )
  end
end

一度適用する

$ bundle exec roadwork -a -f Routefile

そうすると、 staging.udzura-cool-app.com Hosted Zoneが出来て、そこに上のAレコードの他に、SOAとNSレコードが作られるはず。

ns-123.awsdns-26.net.
ns-456.awsdns-62.co.uk.
ns-789.awsdns-37.org.
ns-10.awsdns-01.com.

NSレコードはこんな感じ。

しかし、このままではいつまでたってもAレコードを引けないぞ

きっとDNS強者の皆さんとしては当たり前なんだが、既存の udzura-cool-app.com から、 staging.udzura-cool-app.com をフォワードできないといけない。なので udzura-cool-app.com のHosted Zoneに上のNSレコードを入れ込んでおく。

 hosted_zone "udzura-cool-app.com." do
   #...
+
+  rrset "staging.udzura-cool-app.com.", "NS" do
+    ttl 86400
+    resource_records(
+      "ns-123.awsdns-26.net.",
+      "ns-456.awsdns-62.co.uk.",
+      "ns-789.awsdns-37.org.",
+      "ns-10.awsdns-01.com."
+    )
+  end
 end


その後、適用すると、引けるようになっているはず(設定によりネガティブキャッシュを踏んでたりしたらゴニョっといてください)。

とりあえずサブドメインのHosted Zoneを作っただけではダメだったのであった...。終わり。


なお、何か勘違いしているかもしれないので、その場合は優しく教えてください。