aws, wordpress

awsでwordpressを開設する 5 〜 画像や動画をs3でホスティングする

小さいインスタンスを使っていると、サイトの画像や動画(メディアファイル)がけっこう負荷になるので、これらをwordpressを置いてるサーバーから直接提供せずに、awsのs3へのリンクにしてしまうという設定です。

これは、EIPの設定とかドメイン設定はしていなくても大丈夫です。wordpressを立ち上げたまっさらな状態でできます。ただ、s3に接続するためのアクセスキーIDとシークレットアクセスキーというのが必要です。これらをあらかじめ作って置いてください。このサイトawsのドキュメンテーションに方法が書いてあります。

  1. bitnamiインスタンスを立ち上げる
  2. ssh接続設定をする
  3. Elastic IP設定
  4. ドメイン取得
  5. 画像や動画をs3でホスティングするようにする(プラグイン)(この記事)
  6. google analytics設定
  7. 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容量がいっぱいになることはない。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です