CloudFront設置

Uncategorized

はじめに

クライアントからELBへの通信の間にCloudFrontを置いて通信をキャッシュ化する際のメモです。

前提

こちらの記事の続きです

やっていく

事前準備

「blog.<ドメイン>」の証明書はACMとRoute53上から削除しておく

「blog.<ドメイン>」の証明書が適用されてALBのリスナーは削除

S3バケット作成

Route53のフェイルオーバー先のレコード名として「alb.〜」というドメインを一時的に利用する為、
「alb.<オリジナルドメイン」のS3バケットを作成する。
バケットポリシーでアクセスを許可する。

Route53レコード変更

ALBとS3に紐づくAレコード(blog.〜)を一時的に(alb.〜)に変更する。

ALBに紐づくAレコードを「alb.〜」に変更。
セカンダリも同様。セカンダリのバケットは事前準備で作成したバケットを指定。

ACM証明書発行

「*.<オリジナルドメイン>」の証明書を作成。検証を行いRoute53にもレコードが追加される。

リスナー追加

ELBのリスナー(HTTP)を追加。証明書は新規に作成した「*.<オリジナルドメイン>」の証明書を適用

現時点でhttps://alb.<オリジナルドメイン>へのアクセスが可能となる。

CloudFront用証明書取得

CloudFront用の証明書はバージニア北部でしか存在しないので、リージョンを切り替えて、
「*.<オリジナルドメイン>」の証明書を取得。検証してRoute53のレコードも作成させる。

CloudFront作成

作成する。ドメインは「alb.ドメイン名」を指定。
HTTPSオンリー
証明書は先ほど作成したものを適用。
キャッシュポリシーは適当に作成したものを適用。
しばらくすると有効になる。この時点でCloudFrontのドメイン名でアクセス可能

CloudFront向けのレコード作成

CloudFrontのDNSと、「blog.<ドメイン名>」と紐づくAレコード作成

これで作業完了

最終盤の設定状況

CloudFront

オリジンに「alb.<ドメイン名>」を指定。

Route53

「blog.<ドメイン名>」にHTTPアクセスすると、証明書を適用したCloudFrontへ。
CloudFrontはオリジンを証明書を適用したELBを指定しており、ELBへHTTP通信。

ALB

証明書を適用したHTTPSのリスナーが受け付け、HTTPポートを受け付けるターゲットグループに転送。

ALBのSGはHTTPSでフルオープン

WebサーバはSSHフルオープンと、ALBからのHTTPを許可

タイトルとURLをコピーしました