neutligenの日記

初心者が商用開発に挑む姿を綴ります。僕のような初心者の方に「こんな奴もいるんかー」と思って読んでもらい、コメントまで貰えたら幸いです。

開発のわだち(8):herokuアプリに独自ドメインからアクセスできるようにする

「herokuアプリに独自ドメインからアクセスできるようにする」

目標:herokuでホスティングしているアプリに「独自ドメイン」と「www付きのサブドメイン」の両方からアクセスできるようにする

目次:
1.AWSのroute53とS3の設定
2.heorku側の設定

herokuは便利なPaaSですが、デフォルトだとドメインが"herokuapp.com"っていうすごいカッコイイやつになっちゃうので、自分の取得したドメインからアクセスできるようにしたいって時の設定をメモります。

ちなみに、この記事ではドメイン取得以降の話を書いてます。
ドメインは"お名前.com"で取得しました。      

1.AWSのroute53とS3の設定

www.のサブドメインもデフォルトドメインのどちらからでもアクセスできるようにできるAWSが最適かと思います。
お金はかかりますが。。。

やり方についてはい以下のサイトを参考にさせていただきました。

heroku で 独自ドメインを使う際の最善策を考えた

まずはroute53でHostedZoneを開きます。
f:id:neutligen:20160426172955j:plain

このとき、Hosted zoneの名前を「独自ドメイン」にします。

続いてCNAMEレコードのNameには"www."を付記し、Valueにherokuに払い出された(herokuで使っている)ドメインを設定します。
f:id:neutligen:20160426175102j:plain

次にS3で「独自ドメイン」名のバケットを作成します。 f:id:neutligen:20160426180355j:plain

バケットの静的ウェブサイトホスティング機能を使います。
バケットのプロパティから静的ウェブサイトホスティングを開き"別のホスト名にすべてのリクエストをリダイレクトする"を選択します。 そんで、リダイレクト先にwww.のサブドメインを設定します。
f:id:neutligen:20160426181124j:plain

route53に戻り、先ほど作成したHostedZoneにType:Aのレコードセットを追加します。 f:id:neutligen:20160426181643j:plain

Aliasをyesにして、AliasTargetは自動的にサジェストされるS3バケットを選択する。 f:id:neutligen:20160426182108j:plain

最後にNSレコードに表示されている四つのネームサーバをドメインレジストラに登録します。 お名前.comだと以下のような感じです。 f:id:neutligen:20160426183149j:plain

これで独自ドメイン(www.のサブドメインも)からの名前解決ができるようになりました。 設定が反映されるのには1日〜3日ほどがかかります。


2.heorku側の設定

翌日、ワクワクして独自ドメインにアクセスしてみたらこの画面です。

f:id:neutligen:20160426183757p:plain

はい、やられた。 オフィシャルを覗くと以下の対応方がありました。

$ heroku domains:add "独自ドメイン"
$ heroku domains:add "www.独自ドメイン"  

Herokuにも独自ドメインを認識させてやらにゃいかんということですな。
先に参考にさせて頂いたサイトにも書いてありましたね。

自分は一回目見落としました。お恥ずかしい。、

環境

Vagrant 1.7.4

VirtualBox 5.0.14

Apache/2.4.6