独自サブドメインをHerokuに設定する

Heroku のアプリケーションはデフォルトでは xxxx.herokuapp.com という URL ですが,独自ドメインを持っていればそれを Heroku に利用することができます.今回はサブドメインを設定しますが,メインドメインでも設定できるはずです.

Heroku の設定

Heroku の各アプリケーションの [Settings] > [Domains and certificates] で使いたいドメインを登録します.DNS Target を DNS の CNAME レコードに設定するので控えておきます.

ちなみに,ブラウザの GUI ではなく Heroku CLI で追加することもできます.

terminal
$ Heroku domains:add app.example.com

注意する点として,herokuapp.com のサブドメインを利用しているときは無料で証明書が付いているので,何もしなくても HTTPS (SSL/TLS) で接続できますが,独自サブドメインを利用する場合は有料サービスになります.($7/month)

独自ドメインの設定

サブドメインの DNS レコード設定を変更します.

ホスト名を app.example.com, CNAME レコードで値を xxxx.herokudns.com. に設定します.TTL はデフォルトで 3600 なのでこの設定が反映されるのは最長一時間後です.

ここで重要なのは,herokuapp.com. の最後のピリオドです.これがないと設定が上手くいきません.DNS でレコード設定するとき value にホスト名が含まれるときは,最後にピリオドを付けるのが常識です,知りませんでしたが.設定画面をよく見ると最後にピリオドを付けるように,って書いてあったんですけどね...(ハマった)

ちなみに,さくらの VPS で利用できる DNS ではピリオドが必要ですが,お名前.com の DNS は自動で付与するので不要です.

Linux サーバに SSH できるなら,次のコマンドを打つと DNS レコード設定の状況が分かります.

terminal
$ host app.example.com

参考

お名前.com の CNAME 設定で独自サブドメインに heroku の転送設定を行う | Qiita