WPのメディアをS3に保存&読み込む+S3のレプリケーション(冗長化)

WordPressのメディアデータをS3に保存することで、負荷分散や冗長化のときにいちいちサーバのローカルをどこかに保存したり同期したりする必要がなくなる。

もちろんS3にはレプリケーション機能があるので、複製を同期的に作成することができる(クロスリージョンレプリケーション)。

ほとんどWordPress側の設定だけでS3との連携はできる。

S3に保存+S3から読み込む

インストールプラグイン

  • Amazon Web Services
  • WP Offload S3 Lite

「Amazon Web Services」はIAMで作成したS3 FullAccessユーザを登録する。

wp-config.phpに書き込むことが推奨されているが、一応フォームからも入力はできる。

「Wp Offload S3 Lite」は設定からアップロードするバケットを作成(既存のも使用できる)して登録するだけで、S3にファイルをアップロードすることができ、メディアへのアクセスURLもS3に変換される。

ローカルにもメディアデータは保存されるが、「Remove Files From Server」をOnにすると、S3のみに保存されるようになる。

レプリケーションについて

レプリケーションしたいS3の[管理] > [レプリケーション] > [ルールの追加]で必要事項を入力するだけ。

バケットごとできるし、特定のファイルだけもできる。

どのバケットにレプリケーション(同期複製)するか、リージョン、ロール(S3FullAccessか新しく作成しておけば上手くいく)などを適当に選択し作成できる。

元々あったファイルは同期されないので、コピーして貼り付ける必要がある。

最上位のディレクトリを選択してコピーすれば楽。

新しく作成されたオブジェクト、オブジェクトの更新、オブジェクトの削除が、レプリケート元バケットから他の AWS リージョンのレプリケート先バケットにレプリケートされます。 https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/user-guide/enable-crr.html