記事一覧
前回記事
全体像

WordPressから画像を投稿したら、S3に保存されるようにする。
画像の配信もS3から行うようにする。
CloudFrontを利用して画像をキャッシュできるようにして配信を高速化する。
画像の保存場所をWebサーバーではなくS3にする理由
- Webサーバーのストレージが画像でいっぱいになるのを防ぐ
- HTMLへのアクセスと画像へのアクセスを分けることで負荷分散する
- サーバーの台数を増やしやすくする
- Webサーバー上に画像が保存されていると、Webサーバーの台数を増やしたときに、画像を同期する必要があり、スケールアウトが難しい
- コンテンツ配信サービスから配信することで、画像配信を高速化できる
AWS側の準備
S3のバケット作成
S3ダッシュボードに移動し、バケットを作成をクリック
![FireShot Capture 056 - ホームページ - S3 - ap-northeast-1 - [ap-northeast-1.console.aws.amazon.com].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2Fe6426d65-7a55-4ace-877f-bf60788fd68f.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=942171b8c5e953123d6d87abfbcd5740)
バケット名:aws-and-infra-wp21301(グローバルで一意になるように設定する)
オブジェクト所有者:ACL 有効を選択
「パブリックアクセスをすべて ブロック」のチェックを外す
バケットを作成をクリック
![FireShot Capture 079 - S3 バケットを作成 - S3 - ap-northeast-1 - [ap-northeast-1.console.aws.amazon.com].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2F9d50a9cc-1a51-46d9-a1ef-7daca57318cd.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=c76619a5d9906d51678a2d1c7a444959)
![FireShot Capture 061 - S3 バケットを作成 - S3 - ap-northeast-1 - [ap-northeast-1.console.aws.amazon.com].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2F25c9c03c-b456-478c-9595-f4fad515fda5.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=4e3ab8438bdb38378dcb18faef47bd6c)
![FireShot Capture 062 - S3 バケットを作成 - S3 - ap-northeast-1 - [ap-northeast-1.console.aws.amazon.com].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2Fa5ab498f-2edf-4925-8bd5-9bf0b99afc7b.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=d89136e4c45efc89e50acb2676759897)
S3の権限を持ったIAMユーザーを作成
IAMダッシュボードに移動し、左のタブからユーザーを選択
ユーザーの作成をクリック
![FireShot Capture 063 - ユーザー - IAM - Global - [us-east-1.console.aws.amazon.com].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2Fcfebacff-8d47-489c-9641-f88df3d89d89.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=e2cf9fa5674af7bb6c092ceb42b6d7dc)
ユーザー名:自分で入力
次へをクリック
![FireShot Capture 064 - ユーザーの作成 - IAM - Global - [us-east-1.console.aws.amazon.com].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2Fab7c3aa3-52dc-49ff-9eb7-9eab3eb0cd29.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=5305f937cd81696b8dd5cf0414aaeb2b)
許可のオプション:ポリシーを直接アタッチする
許可ポリシーの検索窓に「S3」を入力
「AmazonS3FullAccess」にチェックを入れる
次へをクリック
ユーザーの作成をクリック
![FireShot Capture 065 - ユーザーの作成 - IAM - Global - [us-east-1.console.aws.amazon.com].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2Fe6af7bd1-4f68-454c-ae0c-3585416177da.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=d7fdfa3025aced08892124a64e82437f)
作成したIAMユーザーをクリック
中段にあるアクセスキーを作成をクリック
![FireShot Capture 071 - aws-andinfra-wp-admin - IAM - Global - [us-east-1.console.aws.amazon.com].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2Ff3f15801-5070-4ac8-93d8-0dda2e1aaa89.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=80b49bfa95c1feb3af470e33a608175a)
ユースケースを選択し、確認にチェックを入れる
次へをクリック
アクセスキーを作成をクリック
![FireShot Capture 072 - アクセスキーを作成 - IAM - Global - [us-east-1.console.aws.amazon.com].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2Ff05c8f94-19ab-4019-a0d0-21e684181911.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=3da48b0918cf2f2c1c5a5ca8dd8ffbe8)
アクセスキーとシークレットアクセスキーを保存・管理しておく
![FireShot Capture 073 - アクセスキーを作成 - IAM - Global - [us-east-1.console.aws.amazon.com].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2F8d45f984-6503-4dff-8cc0-b74b0df927e6.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=818c51f3593adece6d56f7b60793d944)
WordPressの設定
プラグインをインストール
WordPress管理画面を表示する
- Webブラウザで「http://[パブリックIPアドレス]/wp-admin/」に移動
左のプラグインタブ→プラグインを追加をクリック
![FireShot Capture 066 - ダッシュボード ‹ test — WordPress - [52.192.133.38].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2Fbefa87f2-46b1-462d-ac46-e85f5efb382b.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=832261fb227bdbe94871e885800c0255)
プラグインの検索窓に「WP offload media」を入力
「Amazon S3、DigitalOcean Spaces、Google Cloud Storage 用の WP Offload Media Lite」を今すぐインストール
有効化をクリック
![FireShot Capture 067 - プラグインを追加 ‹ test — WordPress - [52.192.133.38].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2F0c2ab2c5-2e46-4545-897d-baa2810fb5da.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=a4720abb515d5ee8e6b6d81590e8ff88)
![FireShot Capture 068 - プラグイン ‹ test — WordPress - [52.192.133.38].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2Ff5fb84b3-4656-4a84-bb60-2d849eb189c8.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=5399e58d28abd7c56ee8be48a92d3559)
必要なライブラリをEC2にインストール
Tera TermでWebサーバーにログインする
必要なライブラリをEC2にインストール
sudo yum install -y php-xml
sudo yum install -y php-gd
Apacheを再起動
sudo systemctl restart httpd.service
プラグインの設定
WordPress管理画面を表示する
左の設定タブ→WP Offload Mediaを選択
![FireShot Capture 069 - WP Offload Media Lite ‹ test — WordPress - [52.192.133.38].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2F77ea1364-d81e-4cf7-bd7a-eb8a2f6e3bad.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=3dedec8b765c7e9dc720695d187ef35b)
3. Add Credentialsのコードをコピーする
![FireShot Capture 070 - WP Offload Media Lite ‹ test — WordPress - [52.192.133.38].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2Fd92d1645-801c-4274-82a7-0e27795c74fb.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=fc2fe4f2417dc765b84ec0ac62493360)
Tera Termで/var/www/html/ディレクトリに移動する
cd /var/www/html/
nanoエディタでwp-config.phpを編集する
nano wp-config.php
defineが記述されている所にコピーしたコードを貼り付ける

'access-key-id'と'secret-access-key'(WordPressからS3にアクセスするためのIAMユーザーの認証情報)に、作成したIAMユーザーのアクセスキーを入力する

WordPress管理画面のWP Offload Mediaページを再表示する
Browse existing bucketsを選択し、作成したバケットを選択する
Saveをクリック
![FireShot Capture 074 - WP Offload Media Lite ‹ test — WordPress - [52.192.133.38].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2Fdf5a6bd1-28c5-452c-b3ef-66767c12ba32.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=fd7f98cbe06d030c067484e7f6f07e2f)
サーバー側の画像を削除してサーバーの容量を節約するため、Remove Local Mediaにチェックを入れる
Saveをクリック
![FireShot Capture 075 - WP Offload Media Lite ‹ test — WordPress - [52.192.133.38].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2Fbf3d5eb0-820b-42ce-8c73-82a9d30b462c.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=63cae5f84a10046adc529586ce543c1b)
動作確認
左の投稿タブから投稿一覧をクリック
編集をクリック
![FireShot Capture 077 - 投稿 ‹ test — WordPress - [52.192.133.38].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2Fef9a2cff-42c3-498c-acaf-112d8932a6fa.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=892506eb2dea95017e06907cefd89091)
画像をアップロードする
保存をクリック
Webページに画像が表示されたら成功
![FireShot Capture 078 - 投稿を編集 “Hello world!” ‹ test — WordPress - [52.192.133.38].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2Fc3e0b93f-bcb6-412e-aed6-7b3a6d972eca.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=ba3579ef3f3f4beefa3aa393a23b4c74)
CloudFrontから配信する
ディストリビューションの作成
CloudFrontダッシュボードに移動し、CloudFrontディストリビューションを作成をクリック
![FireShot Capture 080 - ディストリビューション - CloudFront - Global - [us-east-1.console.aws.amazon.com].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2Fe001c1a9-f09f-4b8a-aa5b-24e33db2e324.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=3380c8f5ff485b16da0bac196f397134)
Distribution name:自分で入力
![FireShot Capture 082 - ディストリビューション - CloudFront - Global - [us-east-1.console.aws.amazon.com].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2F826b5c14-0ee0-4522-bbe6-50ece8f2d10d.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=3016db5bd5316855bb01e38b426896e9)
![FireShot Capture 083 - ディストリビューション - CloudFront - Global - [us-east-1.console.aws.amazon.com].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2F1adea976-16a9-4d30-92a7-59b45865afe7.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=0a4fbb412271f4807ff3dc063cc53811)
![FireShot Capture 084 - ディストリビューション - CloudFront - Global - [us-east-1.console.aws.amazon.com].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2Ffc276fb8-f4d8-4af4-9386-3a7780027dd6.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=7f943ced6a94f15be51de47a07ebf017)
![FireShot Capture 085 - ディストリビューション - CloudFront - Global - [us-east-1.console.aws.amazon.com].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2F601ba967-2566-4f5e-ad47-221d09c507cb.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=4daf057166700414f8540de368b599b7)
Create distributionをクリック
![FireShot Capture 086 - ディストリビューション - CloudFront - Global - [us-east-1.console.aws.amazon.com].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2F4281ae3f-e284-4c62-a153-b7c01126a6f2.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=8c183f37628e9917294580daf3b28aaa)
作成したCloudFrontディストリビューションのDomain nameをコピーしておく
![FireShot Capture 089 - ディストリビューション - CloudFront - Global - [us-east-1.console.aws.amazon.com].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2Fff86c61b-b5f1-4b30-a415-5df11d24173e.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=1b346762a2f6eda83a518530b752f1c8)
WP Offload Mediaの設定→Delivery Settings→Editをクリック
Amazon CloudFrontを選択
![FireShot Capture 087 - WP Offload Media Lite ‹ test — WordPress - [3.112.243.147].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2F5ba0a921-e12b-4263-9d14-13b355175dd0.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=f06fd5212017380da7bc9c44088e10b5)
WP Offload Mediaの設定→Delivery Settings→Use Custom Domain NameにコピーしたDomain nameを貼り付け
Saveをクリック
![FireShot Capture 090 - WP Offload Media Lite ‹ test — WordPress - [3.112.243.147].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F4237108%2F62c826ea-75ef-4ca3-98a7-e6d158dea55e.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=2d3288c32c080ea4d67dcb6da20201b7)
次の記事