ぴよログ

↓に移転したのでこっちは更新されません、多分。

CloudFlare使ってHerokuでルートドメイン使おう

移転しました →

Herokuが古いルーティングの仕組みを使っているアプリケーションの管理者に対して "Action Required: Legacy Routing Ending" というタイトルでメールを出してきました。

廃止予定のRoutingを用いてかどうかをリストしてくれるサポートページがあり、Legacy!という赤いマークが付いているアプリケーションは対応が必要ということがわかります。

Heroku Support (Legacy Routing)

使っていない、使う予定のないものであればまあほっといていいんでしょうけど。

Aレコードが使えなくなる

2013年の4月頃にHerokuのサービスに独自ドメインを設定したときにはAレコードを使うことができていました。しかし2014年5月現在、Aレコードから飛ばす先のIPが廃止されているため新しいアプリケーションからは使うことができなくなっています。その上今回の対応で完全に既存のアプリケーションでも使えなくなるようなので、Aレコードを使ったドメインの設定は変えなければいけなくなりました。

代わりにCNAMEを使う

自分で使っているドメイン管理サービスでAレコードを削除し、代わりにCNAMEを追加します。CNAMEの値には、Herokuに割り当てられているXXXXX.herokuapp.comというドメインを入れます。

こんな感じ。

www.mydoamin.com => myapp.herokuapp.com

ルートドメイン使えない

サービスのURL,ルートドメイン(wwwとかが付いていない、mydomain.comなどのこと)にしたいことありますよね。確か、多くのドメイン管理サービスではルートドメイン対してCNAMEを使うことができなくなっています、確か。僕が使ったお名前.comもそうでした。サブドメイン入れろって怒られます。

元々Aレコードで運用していたときはルートドメインでサービスにアクセスできるようにしていたのでこれは困ります。

そこで登場する回避策がCloudFlareです。

CloudFlareを使うとどうなる?

詳しい仕組みはさておき、Herokuでルートドメインを使うという点においてどんなことができるかを簡単に紹介。

  1. ドメインを入力する
  2. 既存のDNSレコードを読んでコピーしてくれる
  3. CloudFlare上でレコードの追加ができる(ルートドメインのCNAMEも可能)
  4. ネームサーバーが提供される
  5. ↑のネームサーバーを元ドメインの管理サービスでドメインのネームサーバーに設定するとCloudFlareの設定を使える

サボって箇条書きで書いてしまった。。。で、設定を終えると次のようになります。

ほんとにルートにCNAMEの設定できるんですよねー。んで、あとはお名前.comで目的のドメインのネームサーバーをCloudFlareのネームサーバーに変更したら、、ちゃんと反映されました。

数日経った今でもAレコードは削除したのにルートドメインでサービスにアクセスできているのでもう大丈夫そうです。

これをやるだけなら無料なので試す価値あり!です。