# EC2 を利用した動的サイトの構築
## 目的
AWS を学ぶ事を目的として、VPC, EC2, RDS といったサービスを利用して、WordPress を使用したブログサイトを構築します。
## 1. AWS コンソールへのログイン
:::info
URL: 別途配布
アカウント名: 別途配布
パスワード: 別途配布
:::
## 2. リージョンの選択
#### 画面右上のメニューよりサイトを構築するリージョンを選択する。
```=
admin01 ~ admin05:アジアパシフィック(東京)
admin06 ~ admin10:アジアパシフィック(ソウル)
Lect01 〜 Lect04 :アジアパシフィック(シンガポール)
```
:::warning
VPC は 1 リージョンに 5 つまでの登録が上限
:::
|[](https://i.imgur.com/68X8KkK.png)
|:-:|
## 3. VPC とパブリックサブネット(1つ目)の作成
:::info
本章の作成範囲 (赤色)
:::
|[](https://i.imgur.com/4Hxs4Zi.png)
|:-:|
### 3. 1. サービスより、 VPC を選択する。
|[](https://i.imgur.com/WkKDSSc.png)
|:-:|
### 3. 2. VPC ウィザードの起動ボタンをクリックし、VPC を作成する。
|[](https://i.imgur.com/8l5Kucr.png)
|:-:|
### 3. 1 個のパブリックサブネットを持つ VPC を選び、選択ボタンをクリックする。
|[](https://i.imgur.com/t0mduP0.png)
|:-:|
### 3. 4. 以下のとおり設定し、VPC の作成ボタンをクリックする。
```=
IPv4 CIDR ブロック: 10.X.0.0/16 (Xには受講者番号)
VPC 名: vpc-(アカウント名)
パブリックサブネットの IPv4 CIDR: 10.X.0.0/24 (Xには受講者番号)
アベイラビリティゾーン: (アベイラビリティゾーン)a
サブネット名: public-subnet01-(アカウント名)
```
|[](https://i.imgur.com/1aYPpKL.png)
|:-:|
### 3. 5. OK ボタンをクリックする。
|[](https://i.imgur.com/5RtQs07.png)
|:-:|
### 3. 6. 作成した VPC が表示されていることを確認する。
|[](https://i.imgur.com/xZ06YCg.png)
|:-:|
## 4. パブリックサブネット(2つ目)の作成
:::info
本章の作成範囲 (赤色)
:::
|[](https://i.imgur.com/oIzLDKZ.png)
|:-:|
### 4. 1. サブネットをクリックする。
|[](https://i.imgur.com/XASnTHU.png)
|:-:|
### 4. 2. サブネットの作成ボタンをクリックする。
|[](https://i.imgur.com/CmJTU2W.png)
|:-:|
### 4. 3. 以下のとおり入力し、作成ボタンをクリックする。
```=
名前タグ: public-subnet02-(アカウント名)
vpc: (アカウント名のVPC) * 後述
アベイラビリティゾーン: (アベイラビリティゾーン)c
IPv4 CIDR ブロック: 10.X.1.0/24 (Xは受講者番号)
```
|[](https://i.imgur.com/CpJVe6o.png)
|:-:|
### 4. 3. a. VPC の選択については、以下のとおり、vpc-(アカウント名) が表示されているものを選択する。
|[](https://i.imgur.com/IzihYdF.png)
|:-:|
### 4. 4. 閉じるボタンをクリックする。
|[](https://i.imgur.com/IlEv4Fr.png)
|:-:|
### 4. 5. 作成したパブリックサブネットが表示されていることを確認する。
|[](https://i.imgur.com/MiXJ753.png)
|:-:|
## 5. プライベートサブネット(1つ目)の作成
:::info
本章の作成範囲 (赤色)
:::
|[](https://i.imgur.com/EHZSRiF.png)
|:-:|
### 5. 1. サブネットの作成ボタンをクリックする。
|[](https://i.imgur.com/CmJTU2W.png)
|:-:|
### 5. 2. 以下のとおり入力し、作成ボタンをクリックする。
```=
名前タグ: private-subnet01-(アカウント名)
vpc: (アカウント名のVPC) * 後述
アベイラビリティゾーン: (アベイラビリティゾーン)a
IPv4 CIDR ブロック: 10.X.2.0/24 (Xは受講者番号)
```
|[](https://i.imgur.com/ZHu6evx.png)
|:-:|
### 5. 2. a. VPC の選択については、以下のとおり、vpc-(アカウント名) が表示されているものを選択する。
|[](https://i.imgur.com/IzihYdF.png)
|:-:|
### 5. 3. 閉じるボタンをクリックする。
|[](https://i.imgur.com/WmVSQNm.png)
|:-:|
### 5. 4. 作成したプライベートサブネットが表示されていることを確認する。
|[](https://i.imgur.com/NCgxab3.png)
|:-:|
## 6. プライベートサブネット(2つ目)の作成
:::info
本章の作成範囲 (赤色)
:::
|[](https://i.imgur.com/StqTgfx.png)
|:-:|
### 6. 1. サブネットの作成ボタンをクリックする。
|[](https://i.imgur.com/CmJTU2W.png)
|:-:|
### 6. 2. 以下のとおり入力し、作成ボタンをクリックする。
```=
名前タグ: private-subnet02-(アカウント名)
vpc: (アカウント名のVPC) * 後述
アベイラビリティゾーン: (アベイラビリティゾーン)c
IPv4 CIDR ブロック: 10.X.3.0/24 (Xは受講者番号)
```
|[](https://i.imgur.com/5ZzqpzF.png))
### 6. 2. a. VPC の選択については、以下のとおり、vpc-(アカウント名) が表示されているものを選択する。
|[](https://i.imgur.com/Yy9AFMS.png)
|:-:|
### 6. 3. 閉じるボタンをクリックする。
|[](https://i.imgur.com/OXM5URO.png)
|:-:|
### 6. 4. 作成したプライベートサブネットが表示されていることを確認する。
|[](https://i.imgur.com/Mb2l2i2.png)
|:-:|
## 7. ルートテーブルの設定
パブリックサブネット(2つ目)にインターネットからアクセスできるように、インターネットゲートウェイへのルートテーブルを設定する。
:::info
本章の作成範囲 (赤色)
:::
|[](https://i.imgur.com/y88FcNI.png)
|:-:|
### 7. 1. public-subnet02-(アカウント名) を選択する。
|[](https://i.imgur.com/2fsKomc.png)
|:-:|
### 7. 2. 画面下のルートテーブルタブより、ルートテーブルの関連付けの編集ボタンをクリックする。
|[](https://i.imgur.com/tk5i90y.png)
|:-:|
### 7. 3. 現在選択されているルートテーブル IDとは別のルートテーブル IDを選択する。
|[](https://i.imgur.com/vsmE9Rm.png)
|:-:|
### 7. 4. ルートテーブルの表に送信先が 0.0.0.0/0 のレコードが追加されたことを確認し、保存ボタンをクリックする。
|[](https://i.imgur.com/OHMvq9v.png)
|:-:|
### 7. 5. 閉じるボタンをクリックする。
|[](https://i.imgur.com/VOVJeXD.png)
|:-:|
## 8. EC2 インスタンスの作成(1台目)
:::info
本章の作成範囲 (赤色)
:::
|[](https://i.imgur.com/n5x9o9w.png)
|:-:|
### 8. 1. サービスより、 EC2 をクリックする。
|[](https://i.imgur.com/WaU1rCM.png)
|:-:|
### 8. 2. インスタンスの作成ボタンをクリックする。
|[](https://i.imgur.com/BTh4Pqt.png)
|:-:|
### 8. 3. Amazon Linux 2 AMI の選択ボタンをクリックする。
|[](https://i.imgur.com/554ckYl.png)
|:-:|
### 8. 4. t2.micro が選択されていることを確認し、次の手順: インスタンスの詳細の設定ボタンをクリックする。
|[](https://i.imgur.com/5Gg84fc.png)
|:-:|
### 8. 5. 以下のとおり設定し、次の手順: ストレージの追加ボタンをクリックする。
```
ネットワーク: (アカウント名のVPC) * 後述
サブネット: public-subnet01-(アカウント名)
自動割り当てパブリック IP: 有効
```
|[](https://i.imgur.com/f77Euva.png)
|:-:|
### 8. 5. a. ネットワークについては、以下のとおり、vpc-(アカウント名) が表示されているものを選択する。
|[](https://i.imgur.com/97ekORv.png)
|:-:|
### 8. 6. 変更を行わず、次の手順: タグの追加ボタンをクリックする。
|[](https://i.imgur.com/LL3zqSM.png)
|:-:|
### 8. 7. タグの追加ボタンをクリックする。
|[](https://i.imgur.com/2Vuiev2.png)
|:-:|
### 8. 8. 以下のとおり入力し、次の手順: セキュリティグループの設定ボタンをクリックする。
```
キー: Name
値: web01-(アカウント名)
```
|[](https://i.imgur.com/D9Rzj4M.png)
|:-:|
### 8. 9. 以下のとおり入力し、ルールの追加ボタンをクリックする。
```=
セキュリティグループの割り当て: 新しいセキュリティグループを作成する
セキュリティグループ名: web-(アカウント名)
説明: web-(アカウント名)
```
|[](https://i.imgur.com/medzhHy.png)
|:-:|
### 8. 10. HTTP を選択し、確認と作成ボタンをクリックする。
|[](https://i.imgur.com/WQvAqTb.png)
|:-:|
### 8. 11. 起動ボタンをクリックする。
|[](https://i.imgur.com/qgzuy6N.png)
|:-:|
### 8. 12. 新しいキーペアの作成を選択し、キーペア名に web-(アカウント名) を入力して、キーペアのダウンロードボタンをクリックする。
|[](https://i.imgur.com/MhsW6F9.png)
|:-:|
### 8. 13. インスタンスの作成ボタンをクリックする。(* ダウンロードしたキーペアは任意の場所に保存しておく)
|[](https://i.imgur.com/f7zxgtY.png)
|:-:|
### 8. 14. インスタンスの表示ボタンをクリックする。
|[](https://i.imgur.com/Yhc5qG5.png)
|:-:|
### 8. 15. 作成したインスタンスが表示されることを確認する。
|[](https://i.imgur.com/I82ijQe.png)
|:-:|
### 8. 16. ステータス欄の表示に「2/2 のチェックに合格しました」と表示されるまで待機する。(* 数分程度かかる)
|[](https://i.imgur.com/CzQuQS4.png)
|:-:|
:::info
EC2 インスタンスの画面は引き続き使用するため、そのまま起動しておく。
:::
## 9. EC2 インスタンスへの接続
### 9. 1. web01-(アカウント名) のインスタンスを選択する。
|[](https://i.imgur.com/EMUpbZz.png)
|:-:|
### 9. 2. 画面下の説明タブに表示されているパブリック DNS (IPv4) のコピーアイコンをクリックする。(* パブリック DNS 名は EC2 を再起動すると変更される)
|[](https://i.imgur.com/ZgCYUN9.png)
|:-:|
### 9. 3. Teraterm を起動し、ホストにコピーした DNS 名をペーストして OK ボタンをクリックする。
|[](https://i.imgur.com/61yJJet.png)
|:-:|
### 9. 4. 以下のような画面が表示された場合は、続行ボタンをクリックする。
|[](https://i.imgur.com/RCUAmoh.png)
|:-:|
### 9. 5. ユーザ名に ec2-user を入力、秘密鍵ボタンをクリックして、インスタンス作成時にダウンロードしたキーペアを選択し、 OK ボタンをクリックする。(キーペア名は web-(アカウント名).pem)
|[](https://i.imgur.com/4lrDW0V.png)
|:-:|
### 9. 6. 以下の画面が表示されれば、ログイン成功。
|[](https://i.imgur.com/fgi7svu.png)
|:-:|
## 10. EC2 インスタンスのセットアップ
:::info
本章の作成範囲 (赤色)
:::
|[](https://i.imgur.com/HjRyXV9.png)
|:-:|
### 10. 1. 以下のコマンドを入力してパスワードを設定する。
```bash=
sudo passwd
以下のように入力を求められるので、自身のアカウントパスワードと同じパスワードを設定する。
Changing password for user root.
New password: <- 自身のアカウントパスワード
Retype new password: <- 再入力
passwd: all authentication tokens updated successfully. <- 設定完了メッセージ
```
### 10. 2. 以下のコマンドを入力して root ユーザにスイッチする。
```=
su -
Password: <- 設定した root ユーザのパスワード
[root@ip-10-1-0-29 ~]# <- root@~ のプロンプトが表示されれば成功
```
### 10. 1. Nginx のインストール
> [nginx(「エンジンエックス」のように発音)は、フリーかつオープンソースなWebサーバである。](https://ja.wikipedia.org/wiki/Nginx)
#### 10. 1. 1. 以下のコマンドを入力して Nginx をインストールする。
```bash=
amazon-linux-extras install -y nginx1.12
```
#### 10. 1. 2. プロンプトが復帰し、以下のログが表示されていればインストール完了。
```bash=
nginx1.12=latest enabled [ =1.12.2 ]
```
### 10. 2. PHP のインストール
> [PHP (PHP: Hypertext Preprocessor を再帰的に略したものです) は、広く使われているオープンソースの汎用スクリプト言語です。](https://www.php.net/manual/ja/intro-whatis.php)
#### 10. 2. 1. 以下のコマンドを入力して PHP をインストールする。
```bash=
amazon-linux-extras install -y php7.2
```
#### 10. 2. 2. プロンプトが復帰し、以下のログが表示されていればインストール完了。
```bash=
php7.2=latest enabled \
[ =7.2.0 =7.2.4 =7.2.5 =7.2.8 =7.2.11 =7.2.13 =7.2.14
=7.2.16 =7.2.17 =7.2.19 ]
```
### 10. 3. MySQL のインストール
:::info
最近では mysql を指定してインストールすると mariadb がインストールされる。
:::
> [MariaDBは、MySQL派生として開発されている、オープンソースの関係データベース管理システム (RDBMS) である。](https://ja.wikipedia.org/wiki/MariaDB)
#### 10. 3. 1. 以下のコマンドを入力して MySQL をインストールする。(* MySQL は後述する RDS 接続用クライアントとしてのみ利用するためサーバー機能は使わない)
```bash=
yum -y install mysql
```
#### 10. 3. 2. プロンプトが復帰し、以下のログが表示されていればインストール完了。
```bash=
Installed:
mariadb.x86_64 1:5.5.62-1.amzn2.0.1
Complete!
```
### 10. 4. WordPress のインストール
> [WordPress は美しいサイトやブログ、アプリを作るためのオープンソースソフトウェアです。](https://ja.wordpress.org/)
#### 10. 4. 1. 以下のコマンドを入力し、 WordPress のインストール(配備)ディレクトリに移動する。
```bash=
cd /usr/share/nginx/
```
#### 10. 4. 2. 以下のコマンドを入力し、WordPress をダウンロードする。
```bash=
curl -O https://ja.wordpress.org/latest-ja.tar.gz
```
#### 10. 4. 3. 以下のコマンドを入力し、ダウンロードしたファイルが表示されることを確認する。
```bash=
ls -l latest-ja.tar.gz
```
#### 10. 4. 4. 以下のコマンドを入力し、ダウンロードしたファイルを展開する。
```bash=
tar zxvf latest-ja.tar.gz
```
#### 10. 4. 5. 以下のコマンドを入力し、ファイルが展開されたことを確認する。
```bash=
ls -l wordpress/
```
#### 10. 4. 6. 以下のコマンドを入力し、ファイルの所有権を nginx に変更する。
```bash=
chown -R nginx:nginx wordpress/
```
## 10. 5. Nginx のセットアップ
### 10. 5. 1. 以下のコマンドを入力し、Nginx の設定ディレクトリに移動する。
```bash=
cd /etc/nginx
```
### 10. 5. 2. 以下のコマンドを入力し、Nginx の設定ファイルをバックアップする。
```bash=
cp -p nginx.conf nginx.conf.org
```
### 10. 5. 3. 以下のコマンドを入力し、初期設定を変更する。
```bash=
sed -i 's/ default_server//' nginx.conf
```
### 10. 5. 4. 以下のコマンドを入力し、変更内容を確認する。
```bash=
diff nginx.conf nginx.conf.org
以下のように表示されれば問題ない。
39,40c39,40
< listen 80;
< listen [::]:80;
---
> listen 80 default_server;
> listen [::]:80 default_server;
62,63c62,63
< # listen 443 ssl http2;
< # listen [::]:443 ssl http2;
---
> # listen 443 ssl http2 default_server;
> # listen [::]:443 ssl http2 default_server;
```
### 10. 5. 5. 以下のコマンドを入力し、wordpress のウェブサーバ設定ファイルを作成する。
```bash=
vi /etc/nginx/conf.d/wordpress.conf
```
### 10. 5. 6. vi エディタの編集画面が開くので、「i」キーを押下して挿入モードに移行する。
### 10. 5. 7. 以下の内容をコピーしてペーストする。
```=
server {
listen 80 default_server;
server_name wordpress;
root /usr/share/nginx/wordpress;
location / {
try_files $uri $uri/ /index.php?$args;
}
location = /wp-config.php {
deny all;
}
include /etc/nginx/default.d/*.conf;
}
```
### 10. 5. 8. 「ESC」キーを押下した後に、「:wq」キーを入力して保存する。
## 10. 6. PHP のセットアップ
### 10. 6. 1. 以下のコマンドを入力し、PHP の設定ディレクトリに移動する。
```bash=
cd /etc/php-fpm.d
```
### 10. 6. 2. 以下のコマンドを入力し、PHP の設定ファイルをバックアップする。
```bash=
cp -p www.conf www.conf.org
```
### 10. 6. 3. 以下のコマンドを入力し、PHP の実行ユーザを nginx ユーザに変更する。
```bash=
sed -i 's/user = apache/user = nginx/' www.conf
sed -i 's/group = apache/group = nginx/' www.conf
sed -i 's/;listen.owner = nobody/listen.owner = nginx/' www.conf
sed -i 's/;listen.group = nobody/listen.group = nginx/' www.conf
```
### 10. 6. 4. 以下のコマンドを入力し、変更内容を確認する。
```bash=
diff www.conf www.conf.org
以下のように表示されれば問題ない。
24c24
< user = nginx
---
> user = apache
26c26
< group = nginx
---
> group = apache
48,49c48,49
< listen.owner = nginx
< listen.group = nginx
---
> ;listen.owner = nobody
> ;listen.group = nobody
```
## 10. 7. php-fpm サービスの有効化と起動
### 10. 7. 1. 以下のコマンドを入力し、 php-fpm サービスを有効化する。
```bash=
systemctl enable php-fpm.service
```
### 10. 7. 2. 以下のコマンドを入力し、 php-fpm サービスを起動する。
```bash=
systemctl start php-fpm.service
```
## 10. 8. nginx サービスの有効化と起動
### 10. 8. 1. 以下のコマンドを入力し、 nginx サービスを有効化する。
```bash=
systemctl enable nginx.service
```
### 10. 8. 2. 以下のコマンドを入力し、 nginx サービスを起動する。
```bash=
systemctl start nginx.service
```
:::info
Teraterm は引き続き使用するため、そのまま起動しておく。
:::
## 11. DB セキュリティグループの作成
:::info
本章の作成範囲 (赤色)
:::
|[](https://i.imgur.com/YyjCPXE.png)
|:-:|
### 11. 1. 画面左のメニューより、セキュリティグループをクリックする。
|[](https://i.imgur.com/PhcR5hD.png)
|:-:|
### 11. 2. セキュリティグループの作成ボタンをクリックする。
|[](https://i.imgur.com/big3Mho.png)
|:-:|
### 11. 3. 以下のとおり入力し、ルールの追加ボタンをクリックする。
```=
セキュリティグループ名: db-(アカウント名)
説明: RDS for MySQL
VPC: vpc-(アカウント名)
```
|[](https://i.imgur.com/sCGE6tB.png)
|:-:|
### 11. 4. 以下のとおり選択し、作成ボタンをクリックする。
```=
タイプ: MYSQL/Aurora
ソース: 任意の場所
```
|[](https://i.imgur.com/eiHYtO7.png)
|:-:|
### 11. 5. 作成たセキュリティグループが表示されていることを確認する。
|[](https://i.imgur.com/SYdllIB.png)
|:-:|
## 12. DB サブネットグループの作成
:::info
本章の作成範囲 (赤色)
:::
|[](https://i.imgur.com/2iPYdtf.png)
|:-:|
### 12. 1. サービスより、 RDS をクリックする。
|[](https://i.imgur.com/Sv8ylj9.png)
|:-:|
### 12. 2. サブネットグループをクリックする。
|[](https://i.imgur.com/qABfKFn.png)
|:-:|
### 12. 3. DB サブネットグループの作成ボタンをクリックする。
|[](https://i.imgur.com/mKgGW8B.png)
|:-:|
### 12. 4. サブネットグループの詳細を以下のとおり入力する。
```=
名前: db-subnet-(アカウント名)
説明: RDS for MySQL
VPC: vpc-(アカウント名) を選択
```
|[](https://i.imgur.com/CkvgNMB.png)
|:-:|
### 12. 5. サブネットの追加を以下のとおり選択し、サブネットを追加しますボタンをクリックする。
```=
アベイラビリティーゾーン: (アベイラビリティーゾーン)a
サブネット: (10.X.2.0/24) * X は受講者番号
```
|[](https://i.imgur.com/qE5rIKo.png)
|:-:|
### 12. 6. このグループのサブネット欄に追加したサブネットが表示されていることを確認する。
|[](https://i.imgur.com/n48nIUW.png)
|:-:|
### 12. 7. サブネットの追加を以下のとおり選択し、サブネットを追加しますボタンをクリックする。
```=
アベイラビリティーゾーン: (アベイラビリティーゾーン)c
サブネット: (10.X.3.0/24) * X は受講者番号
```
|[](https://i.imgur.com/eahmMeD.png)
|:-:|
### 12. 8. このグループのサブネット欄に追加したサブネットが表示されていることを確認し、作成ボタンをクリックする。
|[](https://i.imgur.com/bJYsHB2.png)
|:-:|
### 12. 9. 作成したサブネットグループが表示されていることを確認する。
|[](https://i.imgur.com/peOLWPz.png)
|:-:|
## 13. RDS の作成
:::info
本章の作成範囲 (赤色)
:::
|[](https://i.imgur.com/C4EvIIc.png)
|:-:|
### 13. 1. 画面左のメニューより、データベースを選択し、データベースの作成ボタンをクリックする。
|[](https://i.imgur.com/JhrCqn2.png)
|:-:|
### 13. 2. エンジンのオプションで MySQL を選択する。
|[](https://i.imgur.com/QiGhit1.png)
|:-:|
### 13. 3. テンプレートで無料利用枠を選択する。
|[](https://i.imgur.com/A0UlTcl.png)
|:-:|
### 13. 4. 設定で以下のとおり入力する。
```=
DB インスタンス識別子: wp-(アカウント名)
マスターユーザー名: admin
マスターパスワード: wordpress
パスワードを確認: マスターパスワードを再入力
```
|[](https://i.imgur.com/TFQh7YX.png)
|:-:|
### 13. 5. Storage で「ストレージの自動スケーリング」のチェックを外す。
|[](https://i.imgur.com/LJqJC26.png)
|:-:|
### 13. 6. 接続で Virtual Private Cloud に vpc-(アカウント名)を選択し、追加の接続設定をクリックする。
|[](https://i.imgur.com/fa2mhzg.png)
|:-:|
### 13. 7. 追加の接続設定で default のセキュリティグループを削除する。
|[](https://i.imgur.com/TOKuNvS.png)
|:-:|
### 13. 8. 既存の VPC セキュリティグループより、db-(アカウント名) を選択する。
|[](https://.imgur.com/M7NGLdk.png)
|:-:|
### 13. 9. 選択肢た VPC セキュリティグループが表示されていることを確認し、アベイラビリティーゾーンより、(アベイラビリティーゾーン)a を選択する。
|[](https://i.imgur.com/sC2qWVY.png)
|:-:|
### 13. 10. 追加設定をクリックする。
|[](https://i.imgur.com/2iArPKW.png)
|:-:|
### 13. 11. データベースの選択肢より、最初のデータベースに wordpress を入力する。
|[](https://i.imgur.com/myEVKMl.png)
|:-:|
### 13. 12. バックアップより、自動バックアップの有効化のチェックを外す。
|[](https://i.imgur.com/OOX5rik.png)
|:-:|
### 13. 13. メンテナンスより、マイナーバージョン自動アップグレードの有効化のチェックを外す。
|[](https://i.imgur.com/vtDUKW8.png)
|:-:|
### 13. 14. データベースの作成ボタンをクリックする。
|[](https://i.imgur.com/v1Bl4J9.png)
|:-:|
### 13. 15. 作成したデータベースが表示されることを確認する。
|[](https://i.imgur.com/dWiltcc.png)
|:-:|
### 13. 16. ステータス欄に利用可能と表示されるまで待機する。(* 5分程度かかる)
|[](https://i.imgur.com/UrNXUBS.png)
|:-:|
## 14. WordPress のセットアップ
:::info
本章の作成範囲 (赤色)
:::
|[](https://i.imgur.com/YJbGSsJ.png)
|:-:|
### 14. 1. EC2 サービスのコンソールより、web-(アカウント名) のインスタンスを選択する。
|[](https://i.imgur.com/o69hKLR.png)
|:-:|
### 14. 2. 画面下の説明タブより、パブリック DNS (IPv4) のコピーアイコンをクリックする。
|[](https://i.imgur.com/6dnUAgM.png)
|:-:|
### 14. 3. ウェブブラウザのアドレスバーに、コピーしたパブリック DNS をペーストし、Enter キーを押下する。
|[](https://i.imgur.com/V8MFpL1.png)
|:-:|
### 14. 4. WordPress の画面が表示されるので、「さあ、始めましょう!」ボタンをクリックする。
|[](https://i.imgur.com/0hPCXw3.png)
|:-:|
### 14. 5. 以下の内容を入力し、送信ボタンをクリックする。
```=
データベース名: wordpress
ユーザー名: admin
パスワード: wordpress
データベースのホスト名: (RDS エンドポイント名) * 後述
```
|[](https://i.imgur.com/vG5zSqS.png)
|:-:|
:::info
RDS エンドポイント名については、以下の方法でコピーする。
:::
#### 14. 5. a. AWS コンソールより、RDS のデータベースを表示し、db-(アカウント名) をクリックする。
|[](https://i.imgur.com/ikwO5ss.png)
|:-:|
#### 14. 5. b. エンドポイント名をコピーする。
|[](https://i.imgur.com/GNMmq4k.png)
|:-:|
### 14. 6. インストール実行ボタンをクリックする。
|[](https://i.imgur.com/8d7GOue.png)
|:-:|
### 14. 7. 以下の内容を入力し、WordPress をインストールボタンをクリックする。
```=
サイトのタイトル: はじめてのAWS
ユーザー名: (アカウント名)
パスワード: (アカウントのパスワード)
メールアドレス: (アカウントのメールアドレス)
```
|[](https://i.imgur.com/MBu6DT8.png)
|:-:|
### 14. 8. ログインボタンをクリックする。
|[](https://i.imgur.com/2gS2tt4.png)
|:-:|
### 14. 9. 入力したユーザ名とパスワードでログインする。
|[](https://i.imgur.com/seG8vSI.png)
|:-:|
### 14. 10. 以下のダッシュボードが表示されれば完了。
|[](https://i.imgur.com/O2HDwxg.png)
|:-:|
## 15. EC2 インスタンス(1台目)のイメージ化
### 15. 1. サービスより、 EC2 をクリックする。
|[](https://i.imgur.com/6ApxdWq.png)
|:-:|
### 15. 2. 左メニューより、インスタンスをクリックする。
|[](https://i.imgur.com/PnK76lR.png)
|:-:|
### 15. 3. web-(アカウント名) のインスタンスを右クリックし、イメージ -> イメージの作成をクリックする。
|[](https://i.imgur.com/vWaumed.png)
|:-:|
### 15. 4. イメージ名に web-(アカウント名)-ami を入力し、イメージの作成ボタンをクリックする。
|[](https://i.imgur.com/qc05AyX.png)
|:-:|
### 15. 5. 閉じるボタンをクリックする。
|[](https://i.imgur.com/VG1BFVa.png)
|:-:|
### 15. 6. 左メニューより、 AMI をクリックする。
|[](https://i.imgur.com/104jtNO.png)
|:-:|
### 15. 7. 作成したイメージが表示されている事を確認する。
|[](https://i.imgur.com/vH4ZHzR.png)
|:-:|
### 15. 8. ステータス欄に available と表示されるまで待機する。(2分程度かかる)

|:-:|
## 16. EC2 インスタンスの作成(2台目)
:::info
本章の作成範囲 (赤色)
:::
|[](https://i.imgur.com/4HQrx4p.png)
|:-:|
### 16. 1 web-(アカウント名)-ami を右クリックし、起動をクリックする。
|[](https://i.imgur.com/EWvGSJP.png)
|:-:|
### 16. 2. 次の手順: インスタンスの詳細の設定ボタンをクリックする。
|[](https://i.imgur.com/3BIuq3V.png)
|:-:|
### 16. 3. 以下のとおり選択し、次の手順: ストレージの追加ボタンをクリックする。
```=
ネットワーク: vpc-(アカウント名)
サブネット: public-subnet02-(アカウント名)
自動割り当てパブリック IP: 有効
```
|[](https://i.imgur.com/Gzzae9H.png)
|:-:|
### 16. 4. そのまま、次の手順: タグの追加ボタンをクリックする。
|[](https://.imgur.com/IYLIk8h.png)
|:-:|
### 16. 5. タグの追加ボタンをクリックする。
|[](https://i.imgur.com/vsFxrpf.png)
|:-:|
### 16. 6. 以下のとおり入力し、次の手順: 1セキュリティグループボタンをクリックする。
|[](https://i.imgur.com/uWHkps2.png)
|:-:|
```=
キー: Name
値: web02-(アカウント名)
```
### 16. 7. 既存のセキュリティグループを選択するをチェックし、表示された一覧から名前が web-(アカウント名) のセキュリティグループをチェックして確認と作成ボタンをクリックする。
|[](https://i.imgur.com/AWQLWd4.png)
|:-:|
### 16. 8. 起動ボタンをクリックする。
|[](https://i.imgur.com/HgNyZOY.png)
|:-:|
### 16. 9. 選択したプライベートキーファイル〜 のチェックを入れ、インスタンスの作成ボタンをクリックする。
|[](https://i.imgur.com/WiVqDWC.png)
|:-:|
### 16. 10. インスタンスの表示ボタンをクリックする。
|[](https://i.imgur.com/4IkROcX.png)
|:-:|
### 16. 11. 作成したインスタンスが表示されている事を確認し、ステータスチェック欄に 2/2 のチェックに合格しましたと表示されるまで待機する。
|[](https://i.imgur.com/HCwlROo.png)
|:-:|
### 16. 12. web02-(アカウント名) のインスタンスを選択し、画面下の説明タブより、 パブリック DNS (IPv4) のコピーボタンをクリックして、DNS 名をコピーする。
|[](https://i.imgur.com/O8yXi6S.png)
|:-:|
### 16. 13. ウェブブラウザのアドレスバーにペーストして、ウェブページが表示される事を確認する。
|[](https://i.imgur.com/SmTEG8u.png)
|:-:|
## 17. ELB の作成
:::info
本章の作成範囲 (赤色)
:::
|[](https://i.imgur.com/0QyZaW2.png)
|:-:|
### 17. 1. サービスより、 EC2 をクリックする。
|[](https://i.imgur.com/6ApxdWq.png)
|:-:|
### 17. 2. 左メニューより、ロードバランサー をクリックする。
|[](https://i.imgur.com/1qJDBdQ.png)]()
### 17. 3. ロードバランサーの作成ボタンをクリックする。
|[](https://.imgur.com/y6EieCL.png)
|:-:|
### 17. 4. Classic Load Balancer の作成ボタンをクリックする。
|[](https://i.imgur.com/n82NjO1.png)
|:-:|
### 17. 5. 基本的な設定で以下のとおり入力する。
```=
ロードバランサー名: elb-(アカウント名)
ロードバランサーを作成する場所: vpc-(アカウント名)
```
|[](https://i.imgur.com/KSXHtiE.png)
|:-:|
### 17. 6. サブネットの選択の利用可能なサブネット欄より、以下のサブネットの + ボタンをクリックする。
```=
public-subnet01-(アカウント名)
public-subnet02-(アカウント名)
```
|[](https://i.imgur.com/2yk1eVI.png)
|:-:|
### 17. 7. 選択済みのサブネット欄に、選択したサブネットが表示されている事を確認し、次の手順: セキュリティグループの割り当てボタンをクリックする。
|[](https://i.imgur.com/rENURcq.png)
|:-:|
### 17. 8. 以下のとおり入力し、次の手順: セキュリティ設定の構成ボタンをクリックする。
```=
セキュリティグループの割り当て: 新しいセキュリティグループ
セキュリティグループ名: elb-(アカウント名)
説明: elb-(アカウント名)
タイプ: HTTP
```
|[](https://.imgur.com/gWgBG6z.png)
|:-:|
### 17. 9. そのまま、次の手順: ヘルスチェックの設定ボタンをクリックする。
|[](https://i.imgur.com/rQrYBxs.png)
|:-:|
### 17. 10. 以下のとおり入力し、次の手順: EC2 インスタンスの追加ボタンをクリックする。
```=
ping パス: /
応答タイムアウト: 5
間隔: 10
非正常のしきい値: 2
正常のしきい値: 2
```
[1](https://i.imgur.com/R8CA8he.png)
|:-:|
### 17. 11. すべてのインスタンスを選択し、次の手順: タグの追加ボタンをクリックする。
|[](https://i.imgur.com/QaGCTFo.png)
|:-:|
### 17. 12. 以下のとおり入力し、確認と作成ボタンをクリックする。
```=
キー: Name
値: elb-(アカウント名)
```
|[](https://i.imgur.com/wtJJ2kx.png)
|:-:|
### 17. 13. 作成ボタンをクリックする。
|[](https://i.imgur.com/Ok370Bw.png)
|:-:|
### 17. 14. 閉じるボタンをクリックする。
|[](https://i.imgur.com/Jf6aVdw.png)
|:-:|
### 17. 15. 作成したロードバランサーが表示されている事を確認する。
|[](https://i.imgur.com/EU0LSys.png)
|:-:|
### 17. 16. 画面下のインスタンスタブより、表示されているインスタンスのステータス欄に InService と表示されている事を確認する。(数分程度かかる場合がある)
|[](https://i.imgur.com/RCCixyH.png)
|:-:|
## 18. ELB 経由でのアクセス確認
### 18. 1. ロードバランサー画面の画面下の説明タブより、 DNS 名をコピーし、ウェブブラウザのアドレスバーにペーストしてアクセスする。
|[](https://i.imgur.com/VJcPMdh.png)
|:-:|
### 18. 2. 以下のようにウェブページが表示される事を確認する。
|[](https://i.imgur.com/DAhbGgU.png)
|:-:|
### 18. 3. これまで作成した ウェブサーバの EC2 インスタンス 2 台に Teraterm でアクセスする。
### 18. 4. それぞれのターミナルで以下のコマンドを実行し、アクセスログをリアルタイムで表示する。
```bash=
tail -f /var/log/nginx/access.log
```
### 18. 5. 以下のログが 10 秒おきに出力され、ヘルスチェックが正常に行われている事を確認する。
```=
"GET / HTTP/1.1" 200 12297 "-" "ELB-HealthChecker/1.0" "-"
"GET / HTTP/1.1" 200 12297 "-" "ELB-HealthChecker/1.0" "-"
```
### 18. 6. ウェブブラウザを使用し、リロードボタンをクリックするなどして、ELB 経由で何度かアクセスを実行し、アクセスしたログがターミナルに分散して出力される事を確認する。
## 19 最後に
### 19. 1. 構成図スライド
本手順で掲載した構成図を抽出したスライドです。
> https://hackmd.io/@XPx55BOdQVm_Flkoze74_A/ry2fAgQmr
### 19. 2. 無料利用枠について
AWS はアカウント作成日から 12 ヶ月間は、一部リソースを無料で利用できるサービスを提供しています。(* 全てではないので注意してください)
無料で使用できる枠については、以下のサイトで確認できます。
> https://aws.amazon.com/jp/free/
### 19. 3. 後片付け
今回構築した環境は、基本的に無料利用枠の範囲内ですが、一部リソースは起動状態にしておくと月間の利用枠を超え、課金が発生する可能性があるため、確実に停止するようにします。
今回の環境で課金が発生するリソースは以下です。
* EC2 インスタンス
* EC2 AMI
* EC2 ボリューム
* EC2 スナップショット
* EC2 ロードバランサー
* RDS データベース
* RDS スナップショット
各リソースの管理画面で削除するようにしてください。
そのほかのリソースについては、そのままでも課金は発生しませんが、残したままにしておくと必要・不要がわからなくなってしまうので、環境を再構築する場合や、しばらく触らない場合は一旦削除しておくことをお勧めします。
今回の環境で非課金である、そのほかのリソースは以下です。
* VPC
* VPC サブネット
* EC2 セキュリティグループ
* RDS データベース
* RDS サブネットグループ
###### tags: `Action Plan 46th 2nd half` `NWS` `AWS`