はじめに
クライアントからELBへの通信の間にCloudFrontを置いて通信をキャッシュ化する際のメモです。
前提
こちらの記事の続きです
やっていく
事前準備
「blog.<ドメイン>」の証明書はACMとRoute53上から削除しておく
「blog.<ドメイン>」の証明書が適用されてALBのリスナーは削除
S3バケット作成
Route53のフェイルオーバー先のレコード名として「alb.〜」というドメインを一時的に利用する為、
「alb.<オリジナルドメイン」のS3バケットを作成する。
バケットポリシーでアクセスを許可する。
Route53レコード変更
ALBとS3に紐づくAレコード(blog.〜)を一時的に(alb.〜)に変更する。
ALBに紐づくAレコードを「alb.〜」に変更。
セカンダリも同様。セカンダリのバケットは事前準備で作成したバケットを指定。
![](https://murablog.net/wp-content/uploads/2023/10/スクリーンショット-2023-10-22-14.33.02-1024x220.png)
ACM証明書発行
「*.<オリジナルドメイン>」の証明書を作成。検証を行いRoute53にもレコードが追加される。
![](https://murablog.net/wp-content/uploads/2023/10/スクリーンショット-2023-10-22-14.51.13.png)
リスナー追加
ELBのリスナー(HTTP)を追加。証明書は新規に作成した「*.<オリジナルドメイン>」の証明書を適用
![](https://murablog.net/wp-content/uploads/2023/10/スクリーンショット-2023-10-22-14.54.12-1024x198.png)
現時点でhttps://alb.<オリジナルドメイン>へのアクセスが可能となる。
CloudFront用証明書取得
CloudFront用の証明書はバージニア北部でしか存在しないので、リージョンを切り替えて、
「*.<オリジナルドメイン>」の証明書を取得。検証してRoute53のレコードも作成させる。
![](https://murablog.net/wp-content/uploads/2023/10/スクリーンショット-2023-10-23-20.44.58.png)
CloudFront作成
作成する。ドメインは「alb.ドメイン名」を指定。
HTTPSオンリー
証明書は先ほど作成したものを適用。
キャッシュポリシーは適当に作成したものを適用。
しばらくすると有効になる。この時点でCloudFrontのドメイン名でアクセス可能
CloudFront向けのレコード作成
CloudFrontのDNSと、「blog.<ドメイン名>」と紐づくAレコード作成
これで作業完了
最終盤の設定状況
CloudFront
オリジンに「alb.<ドメイン名>」を指定。
![](https://murablog.net/wp-content/uploads/2023/11/スクリーンショット-2023-11-04-22.01.17.png)
![](https://murablog.net/wp-content/uploads/2023/11/スクリーンショット-2023-11-04-22.01.44.png)
![](https://murablog.net/wp-content/uploads/2023/11/スクリーンショット-2023-11-04-22.02.01.png)
Route53
「blog.<ドメイン名>」にHTTPアクセスすると、証明書を適用したCloudFrontへ。
CloudFrontはオリジンを証明書を適用したELBを指定しており、ELBへHTTP通信。
![](https://murablog.net/wp-content/uploads/2023/11/スクリーンショット-2023-11-04-21.55.19-1024x324.png)
ALB
証明書を適用したHTTPSのリスナーが受け付け、HTTPポートを受け付けるターゲットグループに転送。
![](https://murablog.net/wp-content/uploads/2023/11/スクリーンショット-2023-11-04-22.34.44-1024x304.png)
![](https://murablog.net/wp-content/uploads/2023/11/スクリーンショット-2023-11-05-15.59.05-1024x285.png)
ALBのSGはHTTPSでフルオープン
![](https://murablog.net/wp-content/uploads/2023/11/スクリーンショット-2023-11-05-15.59.56-1024x148.png)
WebサーバはSSHフルオープンと、ALBからのHTTPを許可
![](https://murablog.net/wp-content/uploads/2023/11/スクリーンショット-2023-11-05-16.00.51-1024x162.png)