Route53+S3+CloudFrontでhttpsのurlをリダイレクトさせる

  • 5
    Like
  • 0
    Comment

概要

サイトのお引越しの時などに、Route53+S3でS3の静的Webサイトホスティング機能を使うと便利なのですが、
Httpsをリダイレクトしたい場合、S3単体ではSSL証明書を扱うことができないため、CloudFront経由で行います。
その方法とはまったところを紹介します。

手順

  • S3のバケットを作り、全てのリクエストをリダイレクトするように設定する
  • Certificate Managerで証明書を作る
  • CloudFrontのDistributionを新しく作りOriginをS3にし証明書を設定する
  • Route53にS3に向くようにRecordを追加する

S3のバケットを作り、全てのリクエストをリダイレクトするように設定する

S3のコンソールを開いてバケットを作り、「Static Website Hosting」を選んで

スクリーンショット 2017-06-05 8.07.46.png

リダイレクト先を設定します。
スクリーンショット 2017-06-05 8.08.14.png

エンドポイントのところをクリックして意図通りにリダイレクトされたらOKです。

Certificate Managerで証明書を作る

CloudFrontで使うようの証明書を作るのですが、必ずリージョンをバージニア北部(us-east-1)で作ってください。そうしないとCloudFrontの設定画面に出てきません。ここにはまって少し時間を使いました。

スクリーンショット 2017-06-05 8.15.45.png

CloudFrontのDistributionを新しく作りOriginをS3にし証明書を設定する

スクリーンショット 2017-06-05 8.19.24.png

CloudFrontの設定をするのですが、ここでOrigin Domain Nameにサジェストで出てくるバケットを指定してはいけません!!!

S3はストレージとして使う時とWebサイトとして使うときでエンドポイントが違います!

ではここで何を指定するかというと、先ほどのS3の設定の時に出てきた{バケット名}.s3-website-{リージョン名}.amazonaws.comを指定します。ここにめちゃくちゃはまって時間を無駄にしました。ツライ。

あとは証明書を設定してCNAMEに自分のリダイレクト元にしたいドメイン名を指定します。

スクリーンショット 2017-06-05 8.32.24.png

Route53にS3に向くようにRecordを追加する

スクリーンショット 2017-06-05 8.29.03.png

AレコードでCloudFrontに向けてALIAS貼ります

まとめ

最初はS3とRoute53だけでできるんだろうと呑気にやってたら色々やらなきゃいけず、結構はまってしまいました。
設定し終わると便利だなあという感じ。