こんにちは!
このブログは自分で設定したホストから配信してます。 その構成や設定方法について紹介します。
に分けて記載してます。 2023年4月時点での情報になります。古くなってしまっている場合もありますのでご了承下さい。
下記のやり方で、設定することにより、 「https://[サブドメイン].[独自ドメイン]/」のURL(このサイトの場合https://tech-blog.ma299.me)で自身のブログにアクセスできるようになりました。
構成
以下のような構成になってます。
- 独自ドメイン取得サービス
- 私の場合は既にムームードメインで独自ドメインを登録済みだったため、それを利用しました。
- AWS
- S3
- ブログのhtml等を配置するために利用してます。
- CloudFront
- 配信用に利用します。
- Route53
- DNSとして利用してます。
- Certificate Manager
- 証明書管理してます。
- S3
設定の流れ
設定の流れは下記のようになります。
-
独自ドメイン取得する。
-
Route53でパブリックホストゾーンを登録する。
-
S3 バケットを登録する。
-
CloudFront オリジンアクセスコントロールを登録する。
設定の詳細
個人的に設定の際、迷ってしまう部分や注意点があった箇所のみ、下記に記載しました。
独自ドメインサービスへRoute53のNS値を登録する。
- Route 53 > ホストゾーン > [ホストゾーン名] のタイプNSの行のチェックをONにすると、右側の画面の値という項目にNS値が表示されました。
Certificate Managerで証明書を発行する。
- 「米国東部(バージニア北部)」[us-east-1]のリージョンで証明書のリクエストをします。
- 検証方法は「DNS検証」にします。
Route53にCNAMEレコードを登録する。
- Certificate Manager > 証明書 から上で登録した証明書IDのリンクをクリックして、「ドメイン」の「Route53でレコード作成」ボタンをクリックすることで、CNAMEレコードが登録できます。
- 少し待ち、証明書のステータスが「発行済み」になればOKです。
CloudFront ディストリビューションを登録する。
- オリジンアクセスは「Origin access control setting」にし、Origin accsess controlは上で登録したオリジンアクセスコントロールを登録します。
- 代替ドメイン名(CNAME)には、「[サブドメイン].[独自ドメイン]」のように設定し、カスタムSSL証明書は上でリクエストした証明書を設定します。
S3 バケットポリシーを登録する。
- 下記のようにS3バケットポリシーに設定します。
- 私のやった時はCloudFront デイストリビューション登録完了の通知バーからコードをコピーできました。
- 下記の[バケット名][AWSアカウントID][ディストリビューションID]を各々のものに書き換えます。
{
"Version": "2008-10-17",
"Id": "PolicyForCloudFrontPrivateContent",
"Statement": [
{
"Sid": "AllowCloudFrontServicePrincipal",
"Effect": "Allow",
"Principal": {
"Service": "cloudfront.amazonaws.com"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::[バケット名]/*",
"Condition": {
"StringEquals": {
"AWS:SourceArn": "arn:aws:cloudfront::[AWSアカウントID]:distribution/[ディストリビューションID]"
}
}
}
]
}
Route53にAレコードを登録する。
- 「エイリアス」をONにし、トラフィックのルーティング先を「CloudFront ディストリビューションへのエイリアス」に設定します。
推奨設定
URLが"/“で終わる時にindex.htmlを保管する設定
- CloudFront > ディストリビューション のデフォルトルートオブジェクトに「index.html」を設定します。
- CloudFront > 関数で下記の関数を登録します。
- CloudFront > ディストリビューション のビヘイビアのビューワーリクエストに上で作成した関数を設定します。