📌
WordPressの画像ストレージをS3+CloudFrontで構築する①
はじめに
こちらで作成したものを使用していきます。
画像のストレージを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 OPTIONS
のRemove File From Server
をオンにする。- WEBサーバーに画像を保存しないようにする為。
S3に画像が保存されているか確認
WPから画像を投稿して、URLを確認。S3にも画像が保存されているか確認。
Discussion