herokuにルートドメインを無料で設定する

  • 97
    Like
  • 1
    Comment
More than 1 year has passed since last update.

herokuにルートドメインを設定した時のメモ

概要

herokuではルートドメインの登録をサポートしていません。
もしexample.comというドメインを取得した場合、www.example.comとかapp.example.com
のようなサブドメインを登録する必要があります。

どうしても、example.comでheroku上のアプリを参照したい場合は、別のDNSサービスを利用する
必要があります。

参考
Custom Domains | Heroku Dev Center

前提

  • ドメイン取得済み
  • 下記等を参照し、herokuにアプリがデプロイ済み

Node.js + Expressのアプリをherokuにデプロイしたときのメモ

heroku側にドメインを登録する

heroku domains:add ${your_domain}

DNS登録する

今回はApex Aliasに対応したGEHIRN WEB SERVICEを利用します。
2ドメインまでは無料で利用できます。

詳しいDNSの説明はサービスのブログにスクリーンショット付きで解説されていますので、参照ください。ざっくり、流れは下記です。

2016/10/12現在Gehirnのバージョンについての説明

Gehrinはデザインのみならず料金体系などもリニューアルされています。
Apex Aliasの設定は、Aレコードの編集によって、その機能を代替されているため、当記事当初の内容と少し操作が異なります。
詳しくは以下のブログをご確認ください。
新しくなった Gehirn DNS のエイリアス機能を使う | Gehirn News(ゲヒルンニュース) : https://news.gehirn.jp/dev/717/


1. DNSの登録ボタンを押下
2. 表示されたDNSホストを取得したドメインサービスに登録する (※1)
3. 取得したドメインサービスのDNSにGEHIRNのDNSが登録できたら、再度、ドメイン登録ボタンを押してドメイン登録すると、GEHIRN側でドメインの認証が完了
4. GEHIRNのDSNのメニュー画面に登録したドメインが表示
5. メニュー画面から登録したドメインを押下してApex Aliaを押下
6. 作成したherokuのアプリの既存urlを登録。必ずドメインの最後にドット(.)を入れること( ${app_name}.herokuapp.com.)
7. しばらく待つ(6時間くらい)
8. 登録が完了すると、ルートドメインでherokuアプリで参照できるようになる

※1 .coのドメインを取得したときに、ドメインサービスのDNSに登録するフローが大変だったので下記にまとめる

.coドメインのDNSにGEHIRN WEB SERVICEの認証DNSを登録する

2013年11月に行われたStartup Weekend Tokyoに参加しました。
参加の特典で.coドメインが無料でもらえたので、それをGEHIRN WEB SERVICEを利用してルートドメインで参照できるようにしようとしましたが、うまくいかず手こずったので、下記に方法をまとめておきます。

参照

.coドメイン登録

認証用のDNSが登録できない

上記に書いた通り、GEHIRN WEB SERVICEのDNSにドメインを登録しようとすると、そのドメインが
本当にあなたのものなのか、確認するために、ドメインを取得したサービス側のDNSにGEHIRN WEB SERVICEの下記のような認証用DNSを登録するように言われます。

XXXXX.dns-verify.gehirn.ne.jp

しかし、上記認証用DNSだけ、.coドメインサービスのDNSには登録できませんでした。
なぜか、エラーで怒られる。。。

Failed to Modify Domain Nameservers: Nameserver not found at registry

そのため、直接メールにて、エラーで登録出来ない旨を.coドメインサービス側に連絡したら、無事登録してもらえました。
下記その返信です。

That error happens when the name server you are attempting to add doesn't exist in the Registry. All name servers have to be created in the Registry before they can be added to a domain. I've gone ahead and created the name server for you and updated your domain.

これで、GEHIRN WEB SERVICE側の認証が無事通りました。