Help us understand the problem. What is going on with this article?

S3の画像をCloudFrontを使ってWordpressに配信する

以前の記事で、Wordpressの画像をS3に移行しました。

これでWordpressの移行や、静的サイトジェネレータへの移行ができると思っていたのですが、s3に画像を移行して数日で、s3の無料枠である20000requests/monthをあっという間に超えてしまうと思ったので、CloudFront(CDN)で配信することにしました。
※s3のpostは、2000req/monthです。移行画像数が多すぎると2000を超えてしまいますが、これは仕方ありません。

参考にした記事は、こちらです。

s3のアクセス権を確認する

S3のBlock public accessがすべてoffになっていることを確認します。

cloudfrontを作成する

参考にした記事通りに、cloudfrontを作成します。

Screen Shot 2020-08-16 at 11.42.34.png
cloudfront作成画面で、s3バケット名を選択する

Screen Shot 2020-08-16 at 11.42.42.png
redirect HTTP to HTTPSを選択

Screen Shot 2020-08-16 at 11.43.06.png
画像を圧縮したい場合は、compress objects automaticallyをyesにする。

Screen Shot 2020-08-16 at 11.44.02.png
Create Distributionをクリックして作成。

Screen Shot 2020-08-16 at 11.47.42.png
statusがDeployedになれば作成完了。

僕はサブドメインは設定しませんでしたが、設定したい方は、CNAME設定にサブドメインに置き換えてください。

wordpressでcroudfrontURLを設定する

Screen Shot 2020-08-16 at 11.50.14.png
WP Offload Media LiteプラグインのProvideのchangeをクリック。

Screen Shot 2020-08-16 at 11.50.22.png
croudfrontを選択。

Screen Shot 2020-08-16 at 11.51.03.png
croudfront画面から、CNAMEURLをコピーして貼り付ける。

Screen Shot 2020-08-16 at 11.51.17.png
Force HTTPSをONにする。

以上で設定完了です。

画像URLをcroudfrontのCNAMEURLに変更して、画像が表示されるか確認してみましょう。

記事内URLを置き換える

search regexプラグインで記事のURLをCNAMEURLに置き換えます。

サイト全体の画像URLを変更しておく

メディアライブラリなどは、まだサーバ画像URLになっているので、これをcroudfrontのCNAMEURLに変更しておきます。

https://your-domain-name/wp-admin/options.phpにアクセスしてください。

command+Fでupload_url_pathを検索します。

Screen Shot 2020-08-16 at 13.04.32.png

upload_url_pathフォームにcroudfrontのCNAMEURLを入力します。

これで、メディアライブラリなどの画像URLもすべてcroudfrontから画像が配信されるようになるはずです。
※これを設定すれば、記事内のURLもすべて変更されるかもしれません。置き換える前に試してみてください。

kenji__n
大手IT→ベンチャーへ転職した社会人4年目のプログラマ。 サーバサイド中心ですが、最近はフロントエンドも勉強しつつ、副業でプログラミング講師をやったり、SPAの案件に携わったりしてます。 ブログでもエンジニア系の事を発信しています。
https://ongaku.org/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away