【追記:2015年9月4日】
以下の方法はDNSの仕様として認められておらず、メールが届かないなどの不具合を引き起こす場合があります。
2015年6月からDozensにALIASレコードが追加され、ALIASレコードを使うことでルートドメインへCNAME的な割り当てを行うことができるようになりました。
【参考】Dozens Blog — ALIASレコード機能を追加しました!
そのため、以下のCNAMEを使う方法は推奨できなくなりましたのでご注意ください。
@kasumiiです。こんにちは。
Herokuで動かしているアプリケーションに、ルートドメイン(ネイキッドドメイン)を設定する方法です。
以前からDozensというサービスを使ってルートドメイン運用できていましたが、設定方法が変わってしまったようなので合わせてメモメモ。
Aレコードが使用できなくなってしまった
いつのまにかHerokuアプリにルートドメインでアクセスできなくなっていたので調べてみたところ、Aレコードが使用できなくなっていたことが判明。
2013年の4月頃にHerokuのサービスに独自ドメインを設定したときにはAレコードを使うことができていました。しかし2014年5月現在、Aレコードから飛ばす先のIPが廃止されているため新しいアプリケーションからは使うことができなくなっています。その上今回の対応で完全に既存のアプリケーションでも使えなくなるようなので、Aレコードを使ったドメインの設定は変えなければいけなくなりました。
CloudFlare使ってHerokuでルートドメイン使おう – PILOG
そういえば、何度かHerokuからメールが届いていたけど、あとで見ようと思ってそのままになってました…(ダメすぎ)。
以下のサイトでHerokuの新しいルーティングに対応できているかどうか調べることができます。Routing Type が「Current」になっていればOKですが、「Legacy」という表示になっている場合は対応が必要です。
【参考】Are your apps using legacy routing? – Heroku Support
Heroku側でドメイン名を追加する
Herokuの管理画面から、使用したいドメインを追加しておきます。
DozensでCNAMEを設定する
無料で使えるDNSサービス「Dozens」に登録し、Domain Name に使用したいルートドメインを追加します。
ドメインに、以下のレコードを追加設定します。Typeを「CNAME」にし、Contentに「xxxxx.herokuapp.com」を入れれば、あとは空欄でOK。
Dozens側の設定はこれで完了。
VALUE DOMAIN のネームサーバーを変更する
わたしの場合はバリュードメインですが、お名前.com とかでも同様です。
ネームサーバーを、以下に変更。
ns1.dzndns.com
ns2.dzndns.com
ns3.dzndns.com
ns4.dzndns.com
設定が反映されるまでに少し時間がかかるかもしれませんが、これでルートドメインでHerokuアプリにアクセスできるようになりました。よかったー!
余談ですが、わたしはHeroku Schedulerで定期的にHerokuアプリをたたき起こす設定をしていました。今まではずっと無料だったんですが、ルートドメインでアクセスできなくなっていたせいか、Herokuの料金が発生してしまっていたので、同様にほったらかしてた方は念のためご注意を。(とはいっても、数ドルだったので助かりましたが。)