Route53 を使って heroku アプリを サブドメイン の https にリダイレクトさせる

ドメインを Route53 で管理している場合、herokuが推奨する方法(Aレコード指定すればできるが非推奨)で rootdomain を設定することはできません。(2017/07/21時点)
したがってアプリケーションのURLは www. などのサブドメインをつけることになり、SEOの観点から rootdomain にアクセスがきたら サブドメイン へリダイレクトする必要があります。
また、https にリダイレクトして欲しい場合は、Static website hostingのエンドポイント が https に対応していないので、cloudfront を経由しなければなりません。
それらをクリアにすることで下記の通り、リダイレクトしてくれるようになります。(めちゃくちゃめんどい)

作業手順を簡単にまとめると下記のようになります。

  • s3 backet 「pc-keyboard.info」を作成し、 Static website hosting で www.pc-keyboard.info にリダイレクトさせる
  • herokuでwww.pc-keyboard.info のSSL証明書を作成する(Hodyで無料)
  • AWS Certificate Manager で pc-keyboard.info のSSL証明書を作成する
  • cloudfront の Origin Domain Name に さきほど作成した s3 backet のエンドポイントを設定する
  • Route53 で Aレコードのaliasに cloudfront のDomain Name を設定する
  • アプリケーションで http を https にリダイレクトする

参考にさせていただいたリンク

    category:
  • aws