AWSのEC2を使ってWordPressをゼロから公開するまでの手順をまとめました。 Amazon Linux 2023 + Apache + MariaDB + PHPの構成です。
必要なもの
- AWSアカウント
- Mac(Windowsの場合はコマンドが一部異なります)
- お名前.comなどのドメイン(SSL化する場合)
EC2とは?
EC2とは「Amazon Elastic Compute Cloud」の略で、AWSが提供する仮想サーバーサービスです。
簡単に言うと、クラウド上にレンタルできるパソコンのようなものです。
普通のレンタルサーバーとの違い
mixhostやエックスサーバーのような共有レンタルサーバーは、1台の物理サーバーを複数のユーザーで共有しています。設定の自由度が低い代わりに、難しい操作なしですぐ使えます。
EC2は1台まるごと自分専用のサーバーを借りるイメージです。OSのインストールからソフトウェアの設定まで全部自分でできる代わりに、自分でセットアップする必要があります。
| 共有レンタルサーバー | EC2 | |
|---|---|---|
| 設定の自由度 | 低い | 高い |
| 難易度 | かんたん | やや難しい |
| root権限 | なし | あり |
| 料金 | 月額固定 | 使った分だけ |
| 無料枠 | なし | あり(750時間/月) |
EC2のメリット
自分でサーバーを構築できるため、mixhostでは使えなかった以下のような機能も自由に設定できます。
- PHPの設定を自由に変更できる
- Redisなどのキャッシュシステムを使える
- Imagickなど好きなライブラリをインストールできる
- 複数のサイトを1台で運用できる
料金について
2025年7月15日より前にアカウントを作成した場合(旧プラン)
t3.microはアカウント作成から12ヶ月間、月750時間まで無料で使えます。750時間は約31日分なので、1台起動したままにしても無料枠内に収まります。
2025年7月15日以降にアカウントを作成した場合(新プラン)
無料枠の有効期間はアカウント作成から6ヶ月間、または$100のクレジットを使い切るまでのどちらか早い方です。期間を超えると無料枠の上限を超えることはできません。
無料期間終了後は1時間あたり約$0.0136(約2円)かかります。個人ブログであれば月額約1,000円前後が目安です。
「インスタンス停止中のEBS(ストレージ)料金が毎月発生していた」というケースも少なくありません。使わないときはインスタンスを「終了(削除)」するか、Elastic IPを解放しておきましょう。
STEP 1|EC2インスタンスを作成する
1-1. AWSコンソールにログインする
https://console.aws.amazon.com にアクセスしてログインします。
1-2. EC2を開く
画面上部の検索バーに「EC2」と入力 → 「EC2」をクリック。
左メニューの「インスタンス」→「インスタンスを起動」ボタンをクリックします。
1-3. 名前を入力する
「名前とタグ」の欄に好きな名前を入力します(例:my-wordpress)。 あとから自分のインスタンスを識別するためのものなので、何でもOKです。
1-4. AMI(OS)を選ぶ
AMIとは「Amazon Machine Image」の略で、サーバーにインストールするOSのことです。Macを買ったときに最初からmacOSが入っているように、EC2もOSを選んで起動します。
「アプリケーションおよびOSイメージ(Amazon マシンイメージ)」の欄を確認します。
「Amazon Linux 2023 AMI」 を選びます。
画面上部のタブに「クイックスタート」が表示されていれば、一番左の「Amazon Linux」をクリックします。その中から以下を選んでください。
| 項目 | 確認内容 |
|---|---|
| 名前 | Amazon Linux 2023 AMI |
| アーキテクチャ | 64ビット(x86) |
| 無料利用枠の対象 | 「無料利用枠の対象」と表示されているか確認 |
1-5. インスタンスタイプを選ぶ
インスタンスタイプとは、サーバーのスペック(CPUやメモリの性能)のことです。
「インスタンスタイプ」の欄で 「t3.micro」 を選びます。
検索ボックスに「t3.micro」と入力すると絞り込めます。
t3.microのスペック
| 項目 | スペック |
|---|---|
| vCPU | 2 |
| メモリ | 1GB |
| 無料枠 | 750時間/月(約31日分) |
| 料金(無料枠終了後) | 約$0.0136/時間 |
✅ 個人ブログなら十分なスペックです。月間数万PV程度であれば問題なく動きます。
1-6. キーペアを作成する
キーペアとは、EC2サーバーにSSHで接続するための「鍵」です。家の鍵と同じで、これがないとサーバーに入れません。
「キーペア(ログイン)」の欄の右側にある 「新しいキーペアの作成」 をクリックします。
小さなウィンドウが開くので、以下のように設定します。
| 項目 | 設定値 |
|---|---|
| キーペア名 | 好きな名前(例:mysite-key) |
| キーペアのタイプ | RSA |
| プライベートキーファイル形式 | .pem(Macの場合) |
設定できたら 「キーペアを作成」 ボタンをクリックします。
クリックした瞬間に .pem ファイルが自動でダウンロードされます。
ダウンロード直後に以下の場所に移動しておきましょう。
~/Documents/mysite-key.pem
Finderを開いて「ダウンロード」フォルダから「書類」フォルダにドラッグ&ドロップでOKです。
1-7. セキュリティグループを設定する
セキュリティグループとは、サーバーへの通信を許可・拒否するファイアウォールのようなものです。初期状態では全ての通信がブロックされているので、必要なポートを開放します。
「ネットワーク設定」の欄を確認します。
SSH(ポート22)を許可する
「SSHトラフィックを許可する」のチェックボックスにチェックを入れます。 → これはMacのターミナルからサーバーに接続するために必要です。チェックがないとSSH接続できません。
ソース(接続元)は 「任意の場所」(0.0.0.0/0) でOKです。自宅のIPアドレスが変わっても接続できます。
HTTP(ポート80)を許可する
「HTTPトラフィックをインターネットから許可する」のチェックボックスにチェックを入れます。 → これはブラウザでWordPressのサイトを表示するために必要です。チェックがないとサイトが表示されません。
✅ 最終的に以下の2つにチェックが入っていればOKです。
- SSHトラフィックを許可する(ポート22)
- HTTPトラフィックをインターネットから許可する(ポート80)
1-8. インスタンスを起動する
右側の「インスタンスを起動」ボタンをクリックします。
「インスタンスの状態」が 「実行中」(緑のマーク) になるまで1〜2分待ちます。
1-9. IPアドレスを確認する
EC2 → インスタンス → 作成したインスタンスをクリック → 下の詳細パネルに「パブリック IPv4 アドレス」が表示されます。
この数字(例:54.xxx.xxx.xxx)がサーバーのアドレスです。後のSSH接続で使うのでメモしておきましょう。
これでインスタンスの作成は完了です!次のSTEPでSSH接続します。
STEP 2|SSH接続する
2-1. .pemファイルを移動する
ダウンロードされた .pem ファイルをDocumentsフォルダに移動します。
Finderを開いて「ダウンロード」フォルダから「書類」フォルダにドラッグ&ドロップするか、ターミナルで以下を実行します。
bash
mv ~/Downloads/キーペア名.pem ~/Documents/
2-2. ターミナルを開く
Macの場合は Command + スペース で Spotlight検索を開き、「ターミナル」と入力してEnterを押します。
2-3. Documentsフォルダに移動する
ターミナルを開いたらまず作業フォルダに移動します。
bash
cd ~/Documents
cd は「Change Directory」の略で、フォルダを移動するコマンドです。
2-4. .pemファイルの権限を設定する
bash
chmod 400 キーペア名.pem
chmod 400 は「このファイルを自分だけ読める状態にする」コマンドです。これをやらないとSSH接続時に以下のエラーが出て接続できません。
WARNING: UNPROTECTED PRIVATE KEY FILE!
2-5. SSH接続する
bash
ssh -i "キーペア名.pem" ec2-user@(IPアドレス)
初回接続時に以下のメッセージが出ます。
Are you sure you want to continue connecting (yes/no/[fingerprint])?
yes と入力してEnterを押してください。
接続に成功すると以下のような鳩のアスキーアートが表示されます。
, #_
~\_ ####_ Amazon Linux 2023
~~ \_#####\
~~ \###|
~~ \#/ ___
~~ V~' '->
~~~ /
~~._. _/
_/ _/
_/m/'
プロンプトが以下のように変わればログイン成功です!
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$
STEP 3|LAMP環境をインストールする
bash
sudo dnf update -y
sudo dnf install -y httpd php php-mysqlnd php-fpm php-json mariadb105-server
インストールが完了したらサービスを起動します。
bash
sudo systemctl start httpd
sudo systemctl start mariadb
sudo systemctl enable httpd
sudo systemctl enable mariadb
ブラウザで http://(IPアドレス) にアクセスして「It works!」が表示されれば成功です。
STEP 4|データベースを作成する
bash
sudo mysql -u root
sql
CREATE DATABASE wordpress;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'パスワード';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
STEP 5|WordPressをインストールする
bash
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
sudo mv wordpress /var/www/html/
sudo chown -R apache:apache /var/www/html/wordpress
wp-config.phpを設定します。
bash
sudo cp /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php
sudo sed -i "s/database_name_here/wordpress/" /var/www/html/wordpress/wp-config.php
sudo sed -i "s/username_here/wpuser/" /var/www/html/wordpress/wp-config.php
sudo sed -i "s/password_here/パスワード/" /var/www/html/wordpress/wp-config.php
Apacheの設定ファイルを作成します。
bash
sudo tee /etc/httpd/conf.d/wordpress.conf << 'EOF'
<VirtualHost *:80>
DocumentRoot /var/www/html/wordpress
<Directory /var/www/html/wordpress>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
EOF
httpd.confのDocumentRootも変更します。
bash
sudo sed -i 's|DocumentRoot "/var/www/html"|DocumentRoot "/var/www/html/wordpress"|' /etc/httpd/conf/httpd.conf
sudo systemctl restart httpd
ブラウザで http://(IPアドレス) にアクセスしてWordPressのインストール画面が表示されれば成功です!
STEP 6|Elastic IP(固定IP)を設定する
Elastic IP(固定IP)とは?
Elastic IPとは、AWSが提供する固定のIPアドレスのことです。
そもそもIPアドレスとは?
IPアドレスとは、インターネット上の住所のようなものです。
ブラウザでWebサイトを開くとき、実際には https://54.238.232.51 のようなIPアドレスにアクセスしています。ドメイン(charakatsu.com など)は、このIPアドレスをわかりやすい文字列に変換したものです。
EC2のIPアドレスは再起動すると変わる
EC2はデフォルトでIPアドレスが動的に割り当てられます。つまり、インスタンスを停止→起動するたびにIPアドレスが変わります。
これが起きると以下の問題が発生します。
- SSH接続に使っていたIPでつながらなくなる
- ブラウザでサイトが表示されなくなる
- ドメインのDNS設定をやり直す必要が出る
WordPressを運用していると、ちょっと作業を中断してEC2を停止した後に再起動したら全部つながらなくなった…というトラブルが起きやすいです。
Elastic IPで固定IPを取得する
Elastic IPを設定すると、EC2を何度再起動してもIPアドレスが変わらなくなります。
| 通常のIP | Elastic IP | |
|---|---|---|
| 再起動後 | IPが変わる | IPが変わらない |
| ドメインとの紐付け | 毎回やり直し | 一度設定すればOK |
| SSH接続 | 毎回IPを確認 | 同じIPで接続できる |
料金について
Elastic IPは以下のルールで課金されます。
| 状態 | 料金 |
|---|---|
| インスタンスが起動中 | 無料 |
| インスタンスが停止中 | 約$0.005/時間 |
| インスタンスに関連付けていない | 約$0.005/時間 |
Elastic IP(固定IP)を設定作業内容
EC2を再起動するとIPアドレスが変わってしまいます。Elastic IPを設定すると固定IPになります。
- EC2 → 左メニュー「Elastic IP」
- 「Elastic IPアドレスを割り当てる」→「割り当て」
- 割り当てたIPを選択 →「アクション」→「Elastic IPアドレスを関連付ける」
- インスタンスを選択して「関連付ける」
IPが変わったらWordPressのURLを更新します。
bash
sudo mysql -u root wordpress -e "UPDATE wp_options SET option_value='http://(ElasticIP)' WHERE option_name='siteurl' OR option_name='home';"
STEP 7|ドメインを紐付ける(お名前.com)
お名前.com管理画面 → DNS設定 → DNSレコード設定でAレコードを追加します。
| ホスト名 | TYPE | VALUE |
|---|---|---|
| 空欄(@) | A | Elastic IPアドレス |
ネームサーバーを以下に変更するのを忘れずに!
反映後にURLを更新します。
bash
sudo mysql -u root wordpress -e "UPDATE wp_options SET option_value='http://ドメイン名' WHERE option_name='siteurl' OR option_name='home';"
補足|ファイルアップロードの上限を上げる
大きなテーマをアップロードなどするとエラーになることがあります。その場合は以下を実行してください。
bash
sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 64M/' /etc/php.ini
sudo sed -i 's/post_max_size = 8M/post_max_size = 64M/' /etc/php.ini
sudo systemctl restart httpd
sudo systemctl restart php-fpm
補足|よく使うコマンド
bash
# EC2にSSH接続
ssh -i "~/Documents/キーペア名.pem" ec2-user@(IPアドレス)
# Apacheを再起動
sudo systemctl restart httpd
# Apacheのエラーログを確認
sudo tail -f /var/log/httpd/error_log
# SSH接続を切断
exit
以上でAWS EC2にWordPressを公開する手順は完了です! 「AWS EC2でLAMP環境構築」は転職・ポートフォリオのアピールにもなるので、ぜひ挑戦してみてください。


