LightsailのWordPressの前段にCloudFrontを挟んで配信する
Lightsailで同じようにWordPressのブログを運用している人の参考になれば。
CloudFrontの設定
まずは、Lightsailに割り当てた静的IPを指すオリジン用のドメインをDNSに登録します。私はRoute 53にAレコードで登録しました。
ここで登録するドメインは今まで使っていたブログのドメインとは別のものを作成します。
SSL証明書とかは設定していません。
次に登録したオリジンドメインを使ってCloudFrontディストリビューションを作成します。
デフォルトのキャッシュビヘイビアは次のように設定し、オリジンのキャッシュは行わず、すべてのリクエストをオリジンに転送します。
これだけだと、CloudFrontを挟む意味が薄いので、コンテンツ用のパスの「
wp-content/*
」と「wp-includes/*
」はキャッシュさせるようにそれぞれビヘイビアを追加します。後はディストリビューションに代替ドメインを設定して今までのブログのドメインを登録していたDNSのAレコードをCNAMEレコードに変えて、代わりにCloudFrontのドメインを設定します。
CloudFrontはACM証明書を使えるので、Lightsailサーバー内でLet’s EncryptでSSL証明書を更新する必要もありません。
今までと変わらない見た目で表示されればOK。
少し画像などのコンテンツの読み込みが早くなるはずです。
WAFの設定
折角CloudFrontから配信できるようになったのでセキュリティ対策にWAFも設定してみました。 そのままだとエディターからの画像アップロードや一部の機能が失敗するので「AWSManagedRulesCommonRuleSet」の「SizeRestrictions_BODY」と「CrossSiteScripting_」がプレフィックスのルールを外します。追記
オリジン側に証明書の設定がいらないと勝手に思っててここで設定したLet’s Encryptの更新のためのcronを止めてたんですが、ある日オリジン側の証明書が期限切れになってCloudFrontが502エラーを返すようになってました。
オリジン側でもCloudFrontのCNAMEに設定したドメインの証明書の更新を行ったらアクセスできるようになりました。
ということでCloudFrontを挟むにせよオリジンに証明書の設定は必要だってことですね。
勉強になりました。
ディスカッション
コメント一覧
まだ、コメントがありません