本記事で紹介する WordPress をネット公開するための AWS インフラ構成は、実運用に耐えうる構成ではありません。あくまで、AWS を使用して WordPress をネット公開するための必要最低限※のインフラ構成を紹介することを目的としています。
※必要最低限とは、筆者の経験、スキル、知識に基づいています。そのため、あくまで参考程度にしてください。
はじめに
AWS を使用して WordPress をネット公開するためのインフラ構成を紹介します。ネット公開する WordPress は、以下のコンポーネントで構成されています。
- Webサーバー
- Nginx を使用して、ユーザーからのリクエストを処理しています。
- アプリケーションサーバー
- WordPress を PHP-FPM で動作させています。
- データベース
- MySQL を使用して、ブログ記事やユーザーデータを管理しています。
前提条件
- AWS アカウントを持っていること
- AWS でインフラを構築するためには、AWS アカウントが必要です。
- AWS の基本的なサービス(VPC、EC2、セキュリティグループ)、コンソールの操作方法を理解していることが望ましいです。
インフラの概要図
以下は、今回構築するインフラの概要図です。WordPress をホストする EC2 インスタンスを使用した必要最低限の構成を示しています。

改良する点は多く、例えば、RDS を使用してデータベースを管理することや、S3 を使用してメディアファイルを管理することなどが考えられますが、今回は基本的な構成に焦点を当てます。
ユーザー、管理者、運営者のアクセスフロー
- ユーザー
- ユーザーがブラウザからユーザー画面にアクセスします。
- Nginx がリクエストを受け取り、PHP-FPM に転送します。
- PHP-FPM が WordPress を実行し、MySQL から必要なデータを取得します。
- 処理されたレスポンスが Nginx を通じてユーザーに返されます。
- 管理者
- 管理者がブラウザからの管理画面にアクセスします。
- Nginx がリクエストを受け取り、PHP-FPM に転送します。
- PHP-FPM が WordPress を実行し、MySQL から必要なデータを取得します。
- 処理されたレスポンスが Nginx を通じて管理者に返されます。
- 運営者(開発者)
- 運営者は SSH を使用して EC2 インスタンスにアクセスします。
- EC2 インスタンス上で WordPress CLI を使用して、WordPress の管理を行います。
- コマンドが PHP-FPM を通じて実行され、必要に応じて MySQL にアクセスします。
構築するあたっての躓きポイント
CloudFront を使用して、WordPress をネット公開するためのインフラ構成を構築する際に、以下のような躓きポイントがありました。
- CloudFront のデフォルトルートオブジェクトに、index.php を指定したこと無限ループが発生してしまいました。CloudFront のデフォルトルートオブジェクトには、index.php を指定しないようにすることで無限ループを回避することができました。
まとめ
AWS を使用して WordPress をネット公開するためのインフラ構成を紹介しました。今回紹介した構成は、あくまで必要最低限の構成であり、実運用に耐えうる構成ではありません。今後、より実運用に耐えうる構成を紹介していきたいと思います。