小さいインスタンスを使っていると、サイトの画像や動画(メディアファイル)がけっこう負荷になるので、これらをwordpressを置いてるサーバーから直接提供せずに、awsのs3へのリンクにしてしまうという設定です。
これは、EIPの設定とかドメイン設定はしていなくても大丈夫です。wordpressを立ち上げたまっさらな状態でできます。ただ、s3に接続するためのアクセスキーIDとシークレットアクセスキーというのが必要です。これらをあらかじめ作って置いてください。このサイトやawsのドキュメンテーションに方法が書いてあります。
- bitnamiインスタンスを立ち上げる
- ssh接続設定をする
- Elastic IP設定
- ドメイン取得
- 画像や動画をs3でホスティングするようにする(プラグイン)(この記事)
- google analytics設定
- google adsense設定
5. 画像や動画をs3でホスティングする
やることはプラグインを2つインストールする+その設定です。ただし過去にアップロードしたメディアはs3に保存されませんし、記事内に書かれているリンクもそのままです。これらを移行する方法はこの記事に書いてあります。が、やはり移行作業が大変なので、やるならできるだけ最初にs3設定をして置いた方がいいと思います。
手順
Amazon Web Servicesというプラグインをインストールする。wordpress内の「プラグイン」 → 「新規追加」から検索でインストールできる。これは、awsのアクセスキー等を設定するために必要
インストールできたら、左のメニューに「AWS」というのが表示されるので、その「Access Keys」をクリック
以下のような画面が表示される。awsのアクセスキーIDとシークレットアクセスキーを設定する方法は2通りある。
- wp-config.phpにアクセスできる場合(推奨)
この場合は、上の赤枠部分をwp-config.phpにコピペし、
xxxxxx
部分にアクセスキーID、シークレットアクセスキーを書く。私はwp-config.phpの最後に追記した。bitnamiの場合、多分パスは/opt/bitnami/apps/wordpress/htdocs/wp-config.php
。なかったら検索する。// 例 // aws access key ID and secret access key define( 'DBI_AWS_ACCESS_KEY_ID', 'AKIAJJH0EY26X2ET6PQR' ); define( 'DBI_AWS_SECRET_ACCESS_KEY', 'Tta2L3wqq04Ej9FQzWXslPg42dHllj7OpeFmk/C9' );
セキュリティ上wp-config.phpのパーミッションは400か440がいいみたい。ただ、確か上のコードを追記しても400だと反映されなくて、440にしたら反映された(ちゃんと確認したわけではない)。もしかしたら反映に少し時間がかかっただけかもしれない。
-
wp-config.phpにアクセスできないあるいはよくわからない場合
この場合は、
click here to reveal a form
をクリックして入力欄を表示させ、そこにアクセスキーIDとシークレットアクセスキーを入力して保存。これは、書いてある通りセキュリティ上あまりよろしくない。
設定が完了して反映されたら、以下のような画面に変わる。
次にWP Offload S3 Liteをインストールする。これもwordpress内の「プラグイン」 → 「新規追加」から検索でインストールできる。
有効化すると、左のメニューの「AWS」のところに「S3 and CloudFront」というのが出てくるので、ここで設定できる。
既存のs3バケットを選択するか、新しく作成するか選べる。私はここで新しく作成した。(キャプチャ撮り忘れた)
バケット選択 or 作成したら、以下のような画面になる。
Copy Files to S3
これをonにすれば、wordpressにメディアをアップロードした時に自動でs3へコピーがアップロードされる。wordpressのサーバーにも保存される。Rewrite File URLs
これをonにすれば、記事内にメディアを挿入した時の画像urlがwordpressサーバー内のではなくs3上のファイルのurlになる。
とりあえず上の2つがonになってれば良い。あとは設定を保存して、試しに画像をアップロードしてs3にあるか確認し、メディアを記事に挿入してurlがs3になってるか確認。
大量に画像や動画をアップロードする予定の場合は、Remove Files From Server
をonにした方がいいかもしれない。こうすれば、wordpressサーバーにはメディアファイルは保存されず、s3のみに保存されるので、サーバーのHDD容量がいっぱいになることはない。