使うサービス
- S3
- AWS Certificate Manager(以下ACM)
- CloudFront
- Route53
- ドメインレジストラ(ドメイン管理会社のこと。今回はお名前.com)
静的なサイトならこれらだけでSSL化まで出来る
独自ドメインを取得し,Route53に設定
今回は私がお名前ドットコムで取得した"suamagaumai.com"というドメインを使う
手順通りで大丈夫なのでここの説明は省略
Route53に新規でホストゾーンを作成し,
NSレコードをお名前.comのネームサーバーに登録してあげる
S3でバケットを作成
※バケット名は,独自ドメインの名前にすること
下記の画像の通り設定し,バケットを作成
作成したバケットにアクセスし,"アクセス許可"タブからバケットポリシーを編集
下記のように設定する
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::{バケット名}/*"
]
}
]
}
なので,私の場合は,下記の通り
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::suamagaumai.com/*"
]
}
]
}
その後用意したindex.htmlをアップロードする
今回はこのようなHTMLファイルを用意しました
設定が完了していれば,プロパティタブの最下部のここのURLで,アップロードしたHTMLファイルが見れるようになる
SSL証明書の取得
HTTPS化するため,SSLの証明書を取得する
ACMで、証明書をリクエスト
※必ず米国東部 (バージニア北部) us-east-1 で取得する
パブリック証明書を作成→
発行した証明書にアクセスすると保留中となっているので,これをRoute53で解決
CNAMEの値を,レコードに追加
しばらく(私の場合は5分くらい)すると"保留中の検証"から"発行済み"に変わる
これでSSL証明書は取得完了
CloudFrontの設定
CloudFrontにアクセスし,ディストリビューションを作成
このオリジンドメインをクリックすると,サジェストでS3のバケットが出てくるが,これは選択せず,
HTTPにアクセスされた際,HTTPSにリダイレクトするよう下記の通り設定
"代替ドメイン名"にドメイン名,
"カスタムSSL証明書"に先ほど取得したACMの証明書を設定
その他の箇所はデフォルトの設定で。
Route53でCloudFrontのディストリビューションを設定
Route53に戻って,Aレコードを追加する
ここでの注意は,値の箇所はエイリアスをオンにして,
CloudFrontディストリビューションを設定すること
ドメイン名でアクセスできるようになりました
Route53でのCloudFrontのディストリビューションの設定は反映までに結構時間かかります10分以上かかりました