前回のブログではS3を使ったHTTPリダイレクトサーバを構築しました。
ここでは、もう一歩踏み込んで、CloudFrontを使ったHTTPSでのリダイレクトサーバを構築してみましょう。
例として、https://ohitori.fun
-> https://www.ohitori.fun
というドメインにリダイレクトするサーバを構築します。
今回の構成
今回はリダイレクトそのものはS3にて行います。
ただし、S3では証明書をインポートしてのHTTPSの接続には対応していません。(現在)
そのためCloudFrontをHTTPSのエンドポイントとして、S3の前に置きます。
S3の準備
S3を使って、まずはhttp://ohitori.fun
-> http://www.ohitori.fun
へのリダイレクトサーバを構築します。
今回の構成は、CloudFrontでこのS3のリダイレクトサーバに繋ぎます。よって、まずはS3でのリダイレクトサーバを構築しましょう。
具体的な手順は以下の記事に分けています。
まずはこちらを完了させましょう。
※エンドポイントのドメインを控えて置きましょう。
ACMで証明書の準備
ACM(AWS Certificate Manager)はAWSのいわゆるSSL/TLS証明書(サーバ証明書といわれることも)を発行するサービスです。こちらはpublicなものなら追加料金はかかりません。
まずはACMにアクセスしましょう。
ACMにアクセスしたら、リージョンを米国東部 (バージニア北部)us-east-1
に切り替えます。
これは、証明書をCloudFrontで使うため。CloudFrontはグローバルなサービスのため、us-east-1(バージニア北部)のリージョンで作成した証明書しか利用できないからです。
リージョンを選択したら、「証明書のプロビジョニング」の「今すぐ始める」をクリックしましょう。(すでにACMで発行した証明書を持っている人は「証明書のリクエスト」をクリックします。
そして、「パブリック証明書のリクエスト」をクリックします。
続いて、証明書のドメイン名を入力しましょう。ここではリダイレクト元のドメインを入力します。
今回はhttps://ohitori.fun
-> https://www.ohitori.fun
なので、ohitori.fun
を入力します。
これ以降はドメインを所有しているかどうかの検証になります。
どちらか自分の可能な方を選択して実施しましょう。
ここでは、ほとんどの人は自分でドメインを管理していると思うので、「DNSの検証」を選びます。
DNS検証では、DNSにCNAMEレコードを追加することで認証されます。
画面に表示されたCNAMEレコードをDNSの設定に追加しましょう。
Route53を使っている場合は「Route53でのレコードの作成」をクリックすると自動でレコードが作成されるため、とても便利です。
あとは画面に従って証明書の作成が完了するのを待ちましょう。
CloudFrontでDistributionを作成
さて、いよいよCloudFrontを使っていきます。
AWSのCloudFrontのページにアクセスしましょう。
2020年8月28日現在、残念ながらまだ日本語化されておりません。。。
まずは「Create Distribution」をクリックしましょう。
続いて、「Web」側の「Get Started」をクリックします。
すると、多数の設定項目が現れます。(最初にみるとちょっと圧倒されてしまいます。。。)
ただし、今回は3点のみ設定すればOK。
Original Domain Name
ここには先ほどリダイレクトを設定したS3のドメイン名を入力します。
入力補完では出てきません。控えていない人はS3に戻ってエンドポイントをコピーしよう。
S3 > バケットを選択 > プロパティ > Static website hosting > エンドポイント
詳しくは前回の記事をご覧ください。
Alternate Domain Names(CNAMEs)とSSL Certificate
少し下にスクロールしてDistribution Settingsを見つけましょう。そこに残り2つの設定項目があります。
Alternate Domain Names(CNAMEs)には、リダイレクト元のドメイン名を入力しましょう。
ここでは、https://ohitori.fun
-> https://www.ohitori.fun
なので、リダイレクト元のohitori.fun
を入力します。
続いて、SSL Certificateの設定です。
チェックボックスの「Custom SSL Certificate(example.com)」をクリックします。
そして、テキストボックスをクリックすると、先ほどACMで作成した証明書がでてくるので、それを選択します。
※もしここに証明書が出てこない人は、ACMで証明書を作成するときにリージョンが「(バージニア北部)us-east-1」になっていなかった可能性があります。確認してみよう。
以上で設定完了です。
StatusがDeployedになったら、IDをクリックしましょう。
そこに出てきたDomain Nameを確認しておきましょう。
これでCloudFrontの作成は完了です。
DNS(Route53)の設定
最後にRoute53でDNSのレコードを作成しましょう。
以下のようなAレコードを作成します。
レコード名
:リダイレクト元のドメイン(今回はohitori.fun)値/トラフィックのルーティング先
:先ほど作成したCloudFrontのDomain Name -レコードタイプ
:Aレコード
前回の記事でS3のリダイレクトを設定したひとは、すでにAレコードができているはずです。
そのレコードを編集するだけでOKです。まだの人はレコードを新規に作成しましょう。
設定は以下のようにしましょう。
※Route53の設定は、前回の記事も参考にしてください。
以上で全ての設定が完了です!
リダイレクト元のURLにアクセスし、意図した動作になることを確認しましょう。
参考リンク