1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS_WebサーバーにWordPressをインストールする

1
Last updated at Posted at 2025-10-04

この記事でわかること

 ▪️AWSの東京リージョンでVPCを構築し、パブリックサブネットにEC2インスタンスを
  作成した上で、Apache HTTP Serverをインストールする手順を解説します。
 ▪️プライベートサブネットの作成から、WebサーバーとDBサーバー間の通信設定まで
  を対象とし、DBサーバーの構築やNAT設定の詳細についても説明します。

前提条件

 ▪️使用PC:Mac
 ▪️リージョン:東京
 ▪️ターミナルソフトを使用

ご注意

 画像は設定手順をイメージしやすくするための参考です。
細部の仕様や正確性についてはAWS公式ドキュメントをご確認ください。
また、一部個人情報などを削除しています。

手順の流れ

以下は、この記事で解説する手順です。
 項番1_プライベートサブネットの作成
  ↓
 項番2_踏み台サーバーを経由してプライベートサブネット内のEC2にSSH接続する
  ↓
 項番3_NATゲートウェイ設定
  ↓
 項番4_DBサーバーにMariaDBをインストール
  ↓
 項番5_WordPress用のデータベース作成
  ↓
 項番6_WebサーバーにWordPressをインストールする

項番1_プライベートサブネットの作成

手順1_プライベートサブネットの作成

 ▪️AWSコンソールの「サブネット」から「サブネットを作成」を選択します。
  ▫️手順1_で作成したVPCを選択します。
  ▫️「サブネット名」を入力します。(一意に区別がつく名前)
  ▫️「アベイラビリティーゾーン」を入力します。
   ※パブリックサブネットと同じにします。
  ▫️「CIDRブロック」に10.0.1.0/24を入力します。
  ▫️「サブネットを作成」を押下して、プライベートサブネットを作成します。

手順2_プライベートサブネットにEC2を作成する

 ▪️AWSマネージメントコンソールで「EC2」を選択します。
 ▪️画面左側の「インスタンス」から「インスタンスを起動」を選択します。
  ▫️「インスタンス名」を入力します。(一意に区別がつく名前)
  ▫️AMI:Amazon Linux 2023
  ▫️インスタンスタイプ:t2.micro
  ▫️キーペアは既存のキーペアを選択、または新規作成します。
  ▫️ VPCとサブネットを項番2_手順1・2で作成したものに設定します。
  ▫️「パブリックIP自動割り当て」を無効化にします。
  ▫️「プライマリIP」を10.0.2.10に設定します。
 ▪️セキュリティグループを作成し以下を許可します。
  ▫️SSH(ポート:22)(踏み台サーバーとして利用)
  ▫️MySQL/Aurora(ポート:3306)
  ※後の項番で、MariaDBをインストールする為です。
  ▫️カスタムICPM-IPv4
 ※後の項番で、ping疎通実施の為です。
  ▫️「ソースタイプ」: 「任意の場所(0.0.0.0/0)」に設定します。

手順3_接続確認(Pingによる疎通テスト)

 ▪️Webサーバー(踏み台)からDBサーバーにPingを実行

   ping 10.0.2.10

  ▫️疎通が確認できると以下のような結果が表示

   64 bytes from 10.0.2.10: icmp_seq=1 ttl=255 time=0.326 ms

項番2_踏み台サーバーを経由してプライベートサブネット内のEC2にSSH接続する

手順1_ネットワーク構成の確認

プライベートサブネット内のEC2は直接インターネットに接続できないため、
パブリックサブネットに配置したWebサーバーを踏み台にしてアクセスするのが一般的な手法です。

 ▪️踏み台サーバー(Webサーバー)
  ▫️サブネット: パブリックサブネット(10.0.1.0/24)
  ▫️プライマリIP: 10.0.1.10
  ▫️パブリックIP: xxx.xxx.xxx.xxx
  ▫️セキュリティグループ:
    SSH(22番ポート):任意のIP(0.0.0.0/0)
    HTTP(80番ポート):任意のIP(0.0.0.0/0)

 ▪️DBサーバー
  ▫️サブネット: プライベートサブネット(10.0.2.0/24)
  ▫️プライマリIP: 10.0.2.10
  ▫️パブリックIP: なし
  ▫️セキュリティグループ:
    SSH(22番ポート):WebサーバーのプライベートIP(10.0.1.10)のみ許可
    MySQL(3306番ポート):WebサーバーのIPを許可
    カスタムICPM-IPv4:ping疎通実施の為です。

手順2_踏み台サーバーへSSH接続

 ▪️秘密鍵の転送
   ローカル環境からDBサーバーにSSH接続するためには、
  踏み台サーバー上にSSH鍵を配置する必要があります。
  MacやLinux環境では、以下のSCPコマンドで秘密鍵をWebサーバーに転送します。
  ローカル上のMacで以下のコマンドを実行します。

  scp -i my-key.pem my-key.pem ec2-user@パブリックアドレス:~/

 ▪️転送後、踏み台サーバー(Webサーバー)にログインします。

  ssh -i my-key.pem ec2-user@パブリックアドレス

 ▪️秘密鍵のパーミッション変更
  転送した秘密鍵のパーミッションを変更し、自分だけが読み取れる状態にします。

  chmod 400 my-key.pem

手順3_踏み台サーバー経由でDBサーバーにSSH接続

 ▪️踏み台サーバーからプライベートサブネット内のDBサーバーへSSH接続を実施します。

  ssh -i my-key.pem ec2-user@10.0.2.10

 ▪️DBサーバーへのログインが成功すれば、以下のようなプロンプトが表示されます。

  [ec2-user@ip-10-0-2-10 ~]$

 ▪️作業が完了したら、exit コマンドでDBサーバーからログアウトし、
  踏み台サーバーの作業に戻ることができます。

  exit

項番3_NATゲートウェイ設定

手順1_NATゲートウェイを構築する

 ▪️AWSマネージメントコンソールで「VPC」を選択します。
 ▪️画面左側の「NATゲートウェイ」を選択します。
  ▫️「NATゲートウェイを作成」 を押下します。
  ▫️「NATゲートウェイ名」を入力します。(一意に区別がつく名前)
  ▫️「サブネット」の項目で「パブリックサブネット」を選択します。
  ▫️「Elastic IPを割り当て」 ボタンを押下し、新しいElastic IPを取得します。
 ※補足
  Elastic IPは固定のパブリックIPアドレスです。これにより、NATゲートウェイを
 介してプライベートサブネット内のインスタンスが安定した外部通信を行えます。

nat_1.jpeg

手順2_ルートテーブルを設定

 ▪️NATゲートウェイの作成後、プライベートサブネットからインターネットに接続できるよう、
  ルートテーブルを変更します。
 ▪️「ルートテーブル」を選択し、プライベートサブネットに適用されている
  ルートテーブルを確認ルートを編集し、以下の設定を追加します。
  ▫️送信先: 0.0.0.0/0
  ▫️ターゲット: nat-xxx~
nat_2.jpeg

手順3_接続確認

 ▪️NATゲートウェイの設定が完了したら、
  プライベートサブネット内のインスタンスからインターネットに接続できるか
  確認します。
 ▪️プライベートサブネット内のEC2にSSHログイン
  以下のコマンドを実行し、外部との通信を確認

  ping 8.8.8.8

  ▫️以下のようなレスポンスがあれば成功です。

  PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
  64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=12.3 ms

手順4_NATゲートウェイの削除及びElastic IPの解放

  この手順は後の項番_手順が完了し、NATゲートウェイ及びElastic IPを
 使用しなってから行なって下さい。

  NATゲートウェイは使用時間やデータ転送量に応じて課金されます。
 不要になったNATゲートウェイは削除することで、課金を止められます。
 又、Elastic IPも解放 しないと、その分の料金が発生し続けるため注意が必要です。

 ▪️NATゲートウェイは時間単位とデータ転送量に応じて課金されます。
  ▫️必要なときだけ起動
    NATゲートウェイを常時起動すると、使っていない時間も課金されます。
   例、定期的なアップデート時にのみNATゲートウェイを有効化し、
   利用が終わったら削除することでコストを削減できます。
  ▫️データ転送を最小限にする
    アップデートやインストールの際には、プライベートサブネット内で
   キャッシュを活用し、同じデータを何度もダウンロードしないようにすることで、
   データ転送料を抑えられます。

▪️画面左側の「NATゲートウェイ」を選択します。
  ▫️「削除したいNATゲートウェイ」を選択します。
  ▫️画面右上の「アクション」→ 「NATゲートウェイを削除」を選択します。
  ▫️確認画面で 削除 を押下します。
 ▪️画面左側の「Elastic IP」を選択します。
  ▫️「解放したいElastic IP」を選択します。
  ▫️画面右上の「アクション」→ 「Elastic IPを解放」を選択します。
  ▫️確認画面で 解放 を押下します。

nat_4.jpeg

2.jpeg

項番4_DBサーバーにMariaDBをインストール

手順1_Webサーバーを踏み台にしてDBサーバーにログイン

 ▪️DBサーバーはプライベートサブネット内に配置されているため、
  直接インターネットからアクセスすることはできません。
  まず、踏み台となるWebサーバーにSSH接続し、
  その後DBサーバーへSSHでログインします。
  踏み台サーバー上で実行

  ssh -i my-key.pem ec2-user@10.0.2.10

 ▪️DBサーバーにログインしたら、以下のコマンドを実行してMariaDBをインストールします。

  sudo dnf -y install mariadb105-server

 NATゲートウェイ経由でインターネットに接続し、パッケージがダウンロードされ、
 MariaDBがインストールされるはずです。

手順2_MariaDBの起動と初期設定

 ▪️インストールが完了したら、MariaDBを起動し、セキュリティ設定を行います。
  以下のコマンドをDBサーバー上で実行してMariaDBを起動します。

  sudo systemctl start mariadb

 ▪️続いて、起動時に自動でMariaDBが立ち上がるように設定します。

  sudo systemctl enable mariadb

 ▪️セキュリティを強化するために、初期設定スクリプトを実行します。

  sudo mysql_secure_installation

 ▪️このコマンドを実行すると、いくつかの質問が表示されるため、
 以下の手順に従って入力してください。
  ▫️現在のrootパスワードを求められたら、そのままEnterを押す。
  ▫️Unixソケット認証を有効にするか聞かれるので、Yを入力しEnter。
  ▫️rootパスワードを変更するか聞かれるので、Yを入力し、新しいパスワードを設定。
  ▫️匿名ユーザーを削除するか聞かれるので、Yを入力。
  ▫️リモートからのrootログインを無効にするか聞かれるので、Yを入力。
  ▫️テストデータベースを削除するか聞かれるので、Yを入力。
  ▫️すべての設定を適用するか聞かれるので、Yを入力。

項番5_WordPress用のデータベース作成

手順1_WordPress用のデータベース作成

 ▪️以下のコマンドをDBサーバー上で実行し、MariaDBにログインします。
 (MariaDBのコマンドラインに入ります)

 mysql -u root -p
 enter password: パスワードを入力

 ▪️次のSQLを実行し、データベース名を設定します。
  ▫️データベース名:wordpress

 CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE  
 utf8_general_ci;

 ▪️WordPress用ユーザーの作成
  WordPressがデータベースにアクセスする為、以下を設定します。
  ▫️ユーザー名:wordpress
  ▫️パスワード:wordpresspasswd

  GRANT ALL ON wordpress.* TO 'wordpress'@'%' IDENTIFIED BY 'wordpresspasswd';

 ▪️上記の権限を反映させる為、以下のコマンドを実行します。

 FLUSH PRIVILEGES;

 ▪️作成されたユーザーが正しく登録されているか確認するには、
 以下のコマンドを実行します。

 SELECT user, host FROM mysql.user;

 ▪️以下のような出力が表示されれば、設定は完了です。

 +-------------+-----------+
 | User        | Host      |
 +-------------+-----------+
 | wordpress   | %         |
 | mariadb.sys | localhost |
 | mysql       | localhost |
 | root        | localhost |
 +-------------+-----------+

 ▪️設定が完了したら、exit で、mysqlコマンドを終了して下さい。

  exit

項番6_WebサーバーにWordPressをインストールする

手順1_PHPのインストール

 ▪️WordPressを動作させるために、PHPをインストールします。
  最新のWordPressではPHP 7.4以上が推奨されているため、
  ここでは PHP 8.1 をインストールします。
  Webサーバー上で実行

 sudo dnf -y install php8.1

 ▪️WordPressの実行に必要なPHPのライブラリ(mbstring、mysqli)もインストールします。
  Webサーバー上で実行

 sudo dnf -y install php8.1-mbstring php-mysqli

手順2_MariaDBのインストールと接続確認

 ▪️WordPressのデータを保存するために、MariaDBを使用します。
  WebサーバーにMariaDBのクライアントをインストールし、DBサーバーへの接続を確認します。

 ▪️MariaDBクライアントのインストール  
  Webサーバー上で実行

  sudo dnf -y install mariadb105-server

 ▪️DBサーバーへの接続確認
  Webサーバー上で実行

  mysql -h 10.0.2.10 -u wordpress -p

 ここで、「10.0.2.10」はDBサーバーのIPアドレスです。
 -u wordpress はWordPress用のデータベースユーザー、
 -p はパスワード入力を意味します。

手順3_WordPressのダウンロード

 ▪️公式サイトからWordPressをダウンロードします。
  Webサーバー上で実行

 cd ~
 wget https://ja.wordpress.org/latest-ja.tar.gz

 ▪️ダウンロードしたファイルを解凍します。
  Webサーバー上で実行

 tar zxvf latest-ja.tar.gz

 解凍後、wordpress ディレクトリが作成されます。

手順4_WordPressをApacheの公開ディレクトリに配置

 ▪️WordPressをWebサーバー(Apache)の公開ディレクトリ
 /var/www/html/ にコピーします。
  Webサーバー上で実行

 sudo cp -r wordpress/* /var/www/html/

 ▪️コピーしたファイルの所有権をApacheに変更します。
  Webサーバー上で実行

 sudo chown apache:apache /var/www/html -R

手順5_Apacheの起動

 ▪️Apacheを起動し、変更を適用します。
  Webサーバー上で実行

 sudo systemctl start httpd

 ▪️すでに起動している場合は、以下のコマンドで再起動してください。
  Webサーバー上で実行

 sudo systemctl restart httpd

手順6_WordPressの初期設定

 ▪️ブラウザでWebサーバーの パブリックDNS または
  パブリックIPアドレス にアクセスすると、WordPressの初期設定画面が表示されます。
  Webサーバー上で実行

 http://ec2-43-207-94-243.ap-northeast-1.compute.amazonaws.com

 ▪️初期設定の手順:「さあ、始めましょう!」を押下します。
  ▫️データベース名: wordpress
  ▫️ユーザー名: wordpress
  ▫️パスワード: wordpresspasswd
  ▫️データベースのホスト名: 10.0.2.10
  ▫️テーブル接頭辞: wp_(デフォルトのまま)
  ▫️「インストール実行」を押下します。
Word Press_DB設定.png

 ▪️サイトのタイトル、管理者ユーザー名・パスワード/メールアドレスを設定します。
Word Press_設定.jpeg

手順7_WordPressのログイン

 ▪️インストールが完了すると、管理画面 /wp-admin/ にアクセスできるようになります。
  Webサーバー上で実行

 http://ec2-パブリックアドレス.ap-northeast-1.compute.amazonaws.com/wp-admin/

 ▪️作成したadminユーザーでログインし、ブログ記事の投稿や設定が
できるようになります。
Word Press_3.jpeg

まとめ

 ▪️AWS上のWebサーバーにWordPressをインストールし、ブログシステムを構築できました。
 ▪️DBサーバーはプライベートサブネットに配置され、
 ▪️NATゲートウェイ経由でのみインターネットに接続可能な構成になっています。

ポイント

 ▪️Webサーバーはパブリックサブネットに配置し、インターネット公開しています。
 ▪️DBサーバーはプライベートサブネットに配置し、
 直接インターネットからアクセスできないように設定しています。
 ▪️NATゲートウェイを経由してDBサーバーのアップデートや
  ソフトウェアインストールを実施しています。

参考文献

Amazon Web Services基礎からのネットワーク&サーバー構築改訂4版 Kindle版

ネットワーク構築からApache HTTP Serverのインストールまでを解説
Qiita

この記事を書いた理由

 これまで以下のAWS資格を取得し、2024年12月から2社目のIT会社に転職成功。
今はAWSを活用したシステム構築の支援業務を行なっています。
本記事は、業務で行った内容の復習とアウトプットを兼ねて作成しました。
AWSの具体的な設定手順を学びたい方に少しでも役立てば幸いです。

既に合格済のAWS資格

 2024年04月11日「AWS Certified Cloud Practitioner」
 2024年06月27日「AWS Certified Solutions Architect - Associate」
 2024年08月13日「AWS Certified Sysops Administrator - Associate」
 2024年11月19日「AWS Certified Solutions Architect - Professional」

最後まで読んでいただきありがとうございます!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?