【AWSで独自ドメイン、SSLのWordPress (18)】メディアライブラリの保存先をS3に変更

【AWSで独自ドメイン、SSLのWordPress】シリーズの 18 回目の投稿です。

これまでの (1) 〜 (15) の設定により、AWS の EC2 インスタンス上で稼働している WordPress に対して独自ドメイン、かつ HTTPS でアクセスできるようになりました。

ここでは、AWS の EC2 インスタンス上で稼働している WordPress のメディアライブラリを EC2 インスタンスから AWS S3 に変更します。そのために、プラグイン WP Offload Media Lite を使用します。これにより、WordPress のメディアライブラリにファイルをアップロードすると、S3 のバケットに保存されるようになります。

S3 バケットの作成

AWS マネジメントコンソールを開き、S3 に入ります。

バケットを作成ボタンをクリックします。

バケット名には自分にとってわかりやすい名前を設定します。リージョン東京を選択しました。パブリックアクセスをすべてブロックのチェックは外しました。そうしなければ、WordPress から S3 にファイルを転送できません。

パブリックアクセスをすべてブロックの設定は下図の通りです。ここは個々のセキュリティポリシーに従って適宜設定します。

詳細設定は下図の通りです。ここも個々のセキュリティポリシーに従って適宜設定します。バケットを作成ボタンをクリックします。

バケットが作成されます。

S3 アクセスキーの作成

AWS マネジメントコンソールを開き、IAM に入ります。

ダッシュボードでユーザーをクリックし、ユーザーを追加ボタンをクリックします。

ユーザー詳細の設定画面が表示されます。ユーザー名は、自分にとってわかりやすい名前を設定します。アクセスの種類は、プログラムによるアクセスを選択します。次のステップボタンをクリックします。

アクセス許可の設定画面が表示されます。既存のポリシーを直接アタッチを選択します。

ポリシーは多数あるため、ポリシーのフィルタS3 でフィルタします。フィルタにより表示された AmazonS3FullAccess にチェックし、次のステップボタンをクリックします。

タグの追加画面が表示されます。ここでは特に何も設定せず、次のステップボタンをクリックします。

確認画面が表示されます。ユーザーの作成ボタンをクリックします。

成功画面が表示されます。この画面で、アクセスキー IDシークレットアクセスキーをダウンロードするか表示させます。

結果として、ユーザーが作成し、ポリシーをユーザーにアタッチし、ユーザーのアクセスキーを作成したことになります。

WordPress プラグインの設定

WordPress にメディアをアップロードする際に、その保存先を S3 にするためのプラグインには WP Offload Media Lite を使用します。WordPress のプラグインの新規追加で WP Offload S3 のような文字列で検索します。結果として WP Offload Media Lite が表示されます。インストールします。

インストール後、プラグインを有効化します。

WordPress の設定に Offload Media Lite が表示されるようになります。それをクリックします。Offload Media Lite の設定画面が表示されます。

Amazon S3 を選択し、Define access keys in wp-config.php を選択しました。これを選択した場合、WordPress の設定ファイルを直接編集します。EC2 インスタンスで WordPress を稼働している場合、2 番目の My server is on Amazon Web Service … のほうが適切です。

WordPress が稼働している EC2 インスタンスに SSH で接続し、設定ファイルに追記します。下図の 4 〜 8 行目です。

設定ファイルを編集して保存し、WordPress の設定画面を再度開くと、下図のように、wp-config.php に設定済みであると表示されます。Next ボタンをクリックします。

WordPress のメディアを保存するための S3 バケットを選択する画面が表示されます。Browse existing buckets をクリックします。

存在する S3 バケットの一覧が標示されます。使用するバケットをクリックします。

Save Selected Bucket ボタンが有効になります。クリックします。

S3 バケットに関する各種設定が表示されます。デフォルトのままにしました。

最後に Save Changes ボタンをクリックします。

これで、WordPress に画像などのメディアをアップロードする際、S3 に保存されるようになります。