何がしたい
- S3に出力したオブジェクトをCF経由で独自ドメインアクセスしたい
- アクセスの際は独自証明書を用いてHTTPS通信を強制したい
前提
- 証明書をCF用にインストール済みであること
- CF用はCLBとは異なりCLI経由でインストールする必要がある
手順
[S3]:バケットの作成
- S3にバケットを作成し、静的ウェブサイトホスティングを有効化する
- この際、バケット名は使用するウェブサイトのURL名にする必要がある
- www.sample.net を使用する場合、バケット名も同様にする
- indexファイルを設定する
[CF]:ディストリビューションの作成
- Webディストリビューションを作成する(未記載の部分はデフォルトポリシーを指定)
- Origin Domain Name:使用するS3のバケットを指定
- Origin Path:バケット内プレィックスを指定
- Restrict Bucket Access:CFからのアクセスに制限するか否か(今回はYES)
- Viewer Protocol Policy: HTTPS Only(HTTPSを強制)
- Alternate Domain Names(CNAMEs): アクセスする際のURL名を記載する
- SSL Certificate: *.cloudfront.net 証明を使用するか、独自証明書を使用するか選ぶ(証明書はインストールされているものから選択)
- Custom SSL Client Support: Only Clients that Support Server Name Indication (SNI)でよければ600ドルは不要 https://ja.wikipedia.org/wiki/Server_Name_Indication
[Route53] CNAMEレコードの作成
- CNAMEレコードでValueにCFのエンドポイント(xxxxxxxxxx.cloudfront.net)となっている値を設定する
注意点
Route53は設定が適応されるまで毎回15分ほどかかる