🔏

【AWS⑦】ブログシステムを構築する

2022/10/03に公開

どうもoreoです。

これまでの記事で、NATを構築することでプライベートサブネットからインターネットへの接続のみができるようにしました。この記事では、MariaDBやWordPressをインストールしてブログシステムを構築します。

【AWS①】ネットワークを構築してみる

【AWS②】サーバーを構築してみる

【AWS③】EC2インスタンスにWebサーバーをインストールしてアクセスできるようにする

【AWS④】 HTTPの動きについて理解を深める

【AWS⑤】 プライベートサブネットにDB用サーバーを構築する

【AWS⑥】 NATを構築して、プライベートサブネットからインターネットへの接続のみを許可する

自分へのメモ的な記事になりますが、普段インフラを触らない人の参考になれば幸いです!

1 この記事の概要

この記事では、DB用サーバにMariaDBをインストール、WebサーバーへWordPressをインストールし、初期設定をすることで、下記のようなブログシステムを構築します。

2 DBサーバーを構築する

2-1 MariaDBのインストール

DB用のサーバーに、MariaDBをインストールして、データベースを作成します。

踏み台サーバー(webサーバー)を経由してDBサーバーにログインします。

ssh -i ~/.ssh/my-key.pem ec2-user@[パブリックIPアドレス or パブリックDNS名]
ssh -i my-key.pem ec2-user@10.0.2.10

MariaDBをインストールします。前回、NATの構築を行ったため、プライベートサブネットからインターネット方向への接続が可能であり、ソフトウェアをインストールすることができます。

sudo yum -y install mariadb-server

インストール完了後。MariaDBを起動します。

sudo systemctl start mariadb

MariaDBの管理者パスワードを設定します。この時に設定するパスワードは、今後MariaDBのrootユーザーで操作する際に必要になるので、忘れないようにしてください

mysqladmin -u root password

2-2 データベースの作成

WordPressで使用するデータベースを作成するために、rootユーザーでMariaDBに接続します(この時、先ほど設定したパスワードを入力します)。

mysql -u root -p

この状態で、SQLを実行することで、データベースの操作ができます。まず、「wordpress」という名前のデーターベースを作成します。

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

「wordpress」というユーザーを、「wordpresspasswd」と言うパスワードで作成し、wordpressデータベースへの全ての権限を与えます。

grant all on wordpress.* to wordpress@"%" identified by 'wordpresspasswd';

権限を反映させ、データベースの設定は完了です。

flush privileges;

wordpressユーザーが登録されているのか、SELECTで確認すると登録されていることがわかります。

select user, host from mysql.user;

設定完了後、exitでMariaDBコマンドを終了します。

exit

最後に、下記コマンドをDBサーバー上で実行して、DBサーバー起動時にMariaDBが自動的に起動するようにします。

sudo systemctl enable mariadb

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

3-1 WebサーバーからMariaDBへの接続確認など

WordPressが動くようにphpを7.3にアップデートします。DBサーバーからexitして、Webサーバーに入り、アップデートします。

sudo amazon-linux-extras install php7.3

WordPressの実行に必要なライブラリー、MariaDBコマンドをインストールします。

sudo yum -y install php php-mbstring
sudo yum install mariadb-server

WebサーバーからDBサーバー上のMariaDBへwordpressユーザーで接続します。この時wordpressユーザーのパスワードである「wordpresspasswd」で接続します。

mysql -h 10.0.2.10 -u wordpress -p

接続できると下記のようにMariaDBのプロンプトが表示されるので、接続が確認できるとexitでMariaDBのプロンプトを抜けます。

exit

3-2 WordPressのインストール

WebサーバのホームディレクトリでWordPressをインストールし、展開します。

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

wordpressディレクトリに移動し、WordPressのファイル一式をApacheから見えるディレクトリ/var/www/html/にコピーします。

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

コピー後、WordPressのファイル一式の所有者/グループをapache/apacheに変更します。

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

4 WordPressの設定を行う

Apacheを起動します。すでにApacheを起動している場合は、PHPなどをアップデートしているため、sudo systemctl restart httpdで再起動を行います。

sudo systemctl start httpd

AWSマネジメントコンソールのEC2から、パブリックドメイン名を確認し、ブラウザからアクセスすると、WordPressの設定画面が現れるので、「さあ、始めましょう!」を選択し、設定を進めます。

データベースの情報を入力します。

インストールを実行します。

サイトのタイトルや管理者のユーザー名などを設定します。

初期設定が完了です。

設定した管理者のユーザー名とパスワードでログインすると、WordPress管理ページにアクセスできるようになります。これで記事の作成などができるようになり完了です。

5 最後に

7回の記事に渡ってブログシステムを構築しました。AWSを触ることで、普段の業務で開発しているアプリケーションがどのように構成され、セキュリティが担保されているのか非常に気になるようになりました!ここで理解した内容は、今後の個人開発や業務での障害発生時に活かしていきたいと思います!

6 参考

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

AWSの基本・仕組み・重要用語が全部わかる教科書

Discussion