📌

WordPressの画像ストレージをS3+CloudFrontで構築する①

2025/01/08に公開

はじめに

こちらで作成したものを使用していきます。
https://zenn.dev/t_oishi/articles/86c775ae336672

画像のストレージをS3にすることで以下のメリットがあります。

  • WEBサーバーのストレージの圧迫を防ぐ。
  • HTMLへのアクセスと画像へのアクセスを分け、負荷分散する。
  • スケールアウトがしやすくなる。
    • WEBサーバー上に画像を置いておくと、スケールアウト時に同期しなければいけない。
  • CDNを使用でき、高速に配信ができる。

S3の設定

  • バケット名は一意の名前で作成する。リージョンは東京。
  • パブリックアクセスをオフにする。

S3を操作可能な権限を持つIAMユーザーを作成する

  • プラグラムによるアクセスにチェック。
  • 既存のポリシーを直接アタッチからAmazonS3FullAccessを設定。
  • credentialを保存。

S3との連携設定

WPプラグインのインストール

  • WP管理画面からWP Offload Media Liteをインストールし有効化。

EC2にライブラリをインストール

  • EC2にログインし、下記をインストール。
$ sudo yum install php-xml
  • Apacheの再起動。
$ sudo systemctl restart httpd.service

WP Offload Media Liteの設定

  • Define access keys in wp-config.phpの内容をwp-config.phpに追記。
  • access-key-idとsecret-access-keyは作成したIAMユーザーのものを記述する。
$ cd /var/www/html/
$ nano wp-config.php
Vimでも可。if文より前に追記。
  • WP Offload Media Liteの管理画面に戻り、リロード
  • Browse existing bucketsをクリックし、WP用に作成したバケットを選択し保存。
  • ADVANCE OPTIONSRemove File From Serverをオンにする。
    • WEBサーバーに画像を保存しないようにする為。

S3に画像が保存されているか確認

WPから画像を投稿して、URLを確認。S3にも画像が保存されているか確認。

Discussion