WordPressでブログをAWS CloudFrontで配信する時のビヘイビア設定

2023/11/11 (土) - 00:00 PHP&CMSServer

AWSでEC2とCloudFront経由で非常にシンプルなWordPressのサイトを構築したときのはなし。検索ページや記事へのコメントフォームを実装したり、アクセスのたびに関連記事やお勧め記事をランダムに表示させる実装をしたのであまりキャッシュがしつこいと効果が薄れてしまう…その時に設定したかなりザックリとしたCloudFrontのキャッシュ設定の備忘録。

今回CloudFrontを1から導入する場合の手順や、ドメイン設定、SSL証明書設定などは割愛しています。

AWSのおおまかな構成図

AWSのコンソールからCloudFrontにアクセスし、[ディストリビューション]→[対象のディストリビューション]にアクセス。[ビヘイビア]のタブを押して移動し、[ビヘイビアを作成]を押下します。

フロントのキャッシュ設定

  • パスパターン:/WordPressのディレクトリ/*
  • オリジンとオリジングループ:WordPressのあるEC2を選択
  • オブジェクトを自動的に圧縮:Yes
  • ビューワープロトコルポリシー:Redirect HTTP to HTTPS
  • ビュワーのアクセスを制限する: No
  • 許可された HTTP メソッド:GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE(検索やコメント、フォームプラグインなどを使う場合)
  • キャッシュキーとオリジンリクエスト:Legacy cache settings
  • ヘッダー:すべて
  • クエリ文字列:すべて(プラグインやアクセス解析などを使う場合)
  • cookie:すべて(プラグインやアクセス解析などを使う場合)
  • オブジェクトキャッシュ:Customize
    • 最小 TTL:300
    • 最大 TTL:300
    • デフォルト TTL:300

と設定し保存しデプロイが終わるまでしばし待ちます。

コンタクトフォームやWordPressの管理画面用のキャッシュ設定

コンタクトフォームや管理画面や動的なのでキャッシュさせてしまうと厄介です。キャッシュさせないようTTLを0にします。

CloudFront ビヘイビア設定

  • パスパターン:/WordPressのディレクトリ/wp-admin/* & /WordPressのディレクトリ/wp-login.php & /WordPressのディレクトリ/フォームのパーマリンク/*
  • オリジンとオリジングループ:WordPressのあるEC2を選択
  • オブジェクトを自動的に圧縮:Yes
  • ビューワープロトコルポリシー:Redirect HTTP to HTTPS
  • ビュワーのアクセスを制限する: No
  • 許可された HTTP メソッド:GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE
  • キャッシュキーとオリジンリクエスト:Legacy cache settings
  • ヘッダー:すべて
  • クエリ文字列:すべて
  • cookie:すべて
  • オブジェクトキャッシュ:Customize
    • 最小 TTL:0
    • 最大 TTL:0
    • デフォルト TTL:0

と設定し保存しデプロイが終わるまでしばし待ちます。

WordPressの設定

EC2からCloudFrontに変えてしまうと、EC2にあるWordPressに直接アクセスできなくなります。そこでWordPressのURL設定を変更します。WordPressのデータベースでURLを変えてもいいのですが、最も楽なのはwp-config.phpで直接設定値を変更することです。

$ cd /WordPressのディレクトリ/
$ vi wp-config.php

wp-config.phpを開き

define('WP_HOME','https://クラウドフロントのドメイン/WordPressのディレクトリ');
define('WP_SITEURL','https://クラウドフロントのドメイン/WordPressのディレクトリ');

WP_HOMEWP_SITEURLの設定値と編集し保存します。ブラウザでWordPressにアクセスし正常に表示され、遷移できること確認します。その上で管理画面にアクセスし問題なくログインができ、正常に操作ができることも確認ください。

おしまい

タグ:

記事をシェアする

  • facebookでシェアする
  • twitter(X)でシェアする
  • LINEでシェアする
  • はてなブックマークでシェアする
  • Pocketでシェアする
  • Pinterestでシェアする

トラックバック & ピンバック

この記事へのトラックバックURI
https://weblog.walk-life.me/wordpress_cloudfront/trackback/

コメント

コメントは下記からどうぞ

ページの先頭へ