質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

1回答

1591閲覧

AWSのS3に画像が格納できない

ituking

総合スコア80

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

1グッド

0クリップ

投稿2023/09/15 07:21

編集2023/09/16 10:26

実現したいこと

  • WordPressでアップロードした画像をS3に格納して配信されるようにしたい。

前提

会社の個人年間目標にAWSを用いて検証環境を用意すると設定し、現在AWS(VPC、EC2、Route53、RDS、S3)+WordPressの構成でブログが配信できるように勉強しています。
https://www.udemy.com/share/101Yby3@1n2qInl84rgdgzgB3mrRRoZHVVSjJWiRyYKatsaFvTPSR6b2PrW5DEjgpONU0R36oQ==/
上記のUdemy講座を見ながら、AWSを用いたインフラ設計を学んでおり、現在S3に画像が格納されないという状況です。
WordPressのプラグインで、WP Offload Media Lite(WordPressを使用する際にS3に格納を可能にするものらしいです)というものがあり、それを導入後発生している事象。

発生している問題・エラーメッセージ

投稿画像がS3に格納されない。

試したこと

1、php xmlのインストール
2、サーバーの再起動
3、WP Offload Media Liteの有効化
4、EC2サーバーにログイン後、wp-config.php内にS3にアクセスするためのアクセスキーの定義
5、Offloaded media URLs may be broken. An error was encountered while testing the domain: Received 403 from endpointでググり、ヒットしたページhttps://dev.classmethod.jp/articles/saitchan-20210114/
で記載されている、ブロックパブリックアクセス (バケット設定)を確認。パブリックアクセスをすべて ブロックがオフになっていることを確認。
6、https://zenn.dev/akkie1030/articles/aws-cli-setup-tutorial
を見ながら、AWS cliをローカルマシンにインストールしアクセスキーを aws cli の認証情報と紐付ける作業を実施し完了。
7、aws s3 ls バケット名をコマンドとして入力。
8、touch test.txt
aws s3 cp test.txt s3:バケット名で、test.txtファイルが格納されることを確認。WordPress側の原因と断定。
9、アクセスキーを直接設定するのはベストプラクティスではないということなので、aws cli及びwp-config.php内のアクセスキーの削除実施
10、削除実施後、本件回答にてIAMロールの付与方法を受領。現在実施中。
11、EC2サーバーにログイン後、ls -l wp-config.php、id、cat wp-config.phpをしたところ、wp-config.phpファイルがなくなってしまっていることを確認。

補足情報(FW/ツールのバージョンなど)

現在WordPressのダッシュボード内に以下の記載があることを確認しています。
イメージ説明

8-0_nyan5を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mike2mike4

2023/09/15 08:48

バケットポリシーを質問にコードとして追加してください。
ituking

2023/09/15 09:01

バケットポリシーを確認したところ、存在していませんでした。
mike2mike4

2023/09/15 09:04

パブリックにするは公開の前段階の作業なので、バケットポリシーが必要です。クラスメソッドさんの記事を参考に設定してください。
yu_1985

2023/09/16 00:44

バケットポリシーは最終的にS3に上げたものをそのまま公開する際に設定が必要ですが、S3にファイルアップロードできないことはまた別の問題かと思います。
guest

回答1

0

まずはWP Offload Media Lite自体の使い方を調べてみてはどうでしょうか。

あまり明確には記載していないですが今回の構成ではEC2にWordpressをインストールしているんですよね?
必要なのはWordpressをインストールしているEC2インスタンスにIAMロールで権限を与えることです。

以下にやり方がほぼそのまま書いてあるので参考にしてみてください。
EC2 インスタンスで稼働する WordPress サイトの画像を WP Offload Media Lite プラグインを使って S3 バケットに保存するための IAM ロールの設定

もしAWS外にWordpressがあるなら基本的にはアクセスキーを使わざるを得ません。
ただ、必要最小限の権限が望ましいですね。

投稿2023/09/16 00:43

yu_1985

総合スコア7478

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ituking

2023/09/16 09:01

回答ありがとうございます。共有いただいた記事を参考にトライしてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問