【この通りやればとりあえず動く】【AWS】【初心者】wordpressのブログシステムを構築する　②

本文は、
https://qiita.com/gbf_abe/items/5c8cbf4acd9b452a7d7f
の続きです。

# EC2にSSH接続しよう
**EC2の構築が完了したので、Apacheをインストールしましょう。**
macのTerminalからSSH接続をしてみます。


①作成したインスタンスを選択し、「ネットワーキング」タブ>「パブリックIPv4アドレス」からIPアドレスを確認します。
②確認したIPアドレスを用いて、EC2にSSH接続をしましょう。
③MacのTerminalを起動します。コマンドラインに

```
ssh -i <作成したキーペア名> ec2-user@<確認したホスト名>
```
と入力します。
なんか色々聞かれますが、「yes」と入力してください。

結構詰みがちなので、想定通りいかなかったらこの記事を読んでみてください。
・https://qiita.com/yutasb/items/f30938a0870d8322bde2


Macでデスクトップにキーペアをダウンロードした場合、

```
cd desktop
```
でデスクトップのディレクトリに移動しておいて

```
ssh -i <キーペア名> ec2-user@<確認したIPアドレス>
```

という手順でもSSH接続できます。カレントディレクトリにpemファイルがあればOK


```
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '<キーペア名>' are too open.
```

とか言われると思うので、

```
chmod 400 <キーペア名>
```

で権限を最小限にしておきましょう。これでSSH接続できるはずです。

## Apache インストール

EC2へのSSH接続が完了したら、EC2にApacheをインストールします。

```
sudo yum -y install 
```
と入力すれば、数秒でインストールが完了します。

```
sudo systemctl start httpd.service
sudo systemctl enable httpd.service
```
上記のコマンド入力で、Apacheを起動し、自動起動を有効にします。
Apacheが有効になっているかは、

```
sudo systemctl list-unit-files -t service |grep httpd
```

で確認ができます。

```
httpd.service      enabled
```

上記のような状態になっていれば、完了です。


# 事前準備
「VPC」>「サブネット」で構築したサブネットのAZ(アベイラビリティーゾーン)を確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704575/6648f97e-f678-9be6-98b6-c60691c62980.png)

# プライベートサブネットの構築
「VPC」>「サブネット」>「サブネットの作成」でプライベートサブネットを構築します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704575/332012c5-33fd-86af-6fed-c67359eaf23d.png)

アベイラビリティーゾーンは事前準備で確認したパブリックサブネットのAZを指定しましょう。
VCPは作成したVPCを指定しましょう。(~~画像バカでけえな...~~)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704575/28b39e0e-d2f1-4785-e23f-bd980bfa7840.png)

# EC2 構築

①「EC2」>「インスタンス」>「インスタンスを起動」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704575/0a16d008-b677-dae0-ab53-b04a544f7f4f.png)

②マシンイメージは「Amazon Linux 2 AMI(HVM),SSD Volume Type」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704575/661d71d1-80f3-6ed6-f383-45b4054947df.png)

③インスタンスタイプは「t2.micro」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704575/26225e5f-8b7c-fbe4-e79b-887867cd79e4.png)

④「ネットワーク」は構築したVPCを選択します。
　「サブネット」は構築した**プライベートサブネット**を選択します。
　「自動割り当てパブリックIP」は「(**無効化**)」を選択します。
　「キャパシティーの予約」は「なし(~~画像は設定値ミスってますが~~)」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704575/08d39f7e-e75a-41a8-89ac-6703138703db.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704575/0462b03e-b835-60b8-6156-fd8c990d89bb.png)

⑤「ネットワークインターフェイス」>「プライマリIP」には「10.0.2.10」と入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704575/c160975e-f12b-3606-8664-246883045389.png)

⑥ストレージは、既定値のままでOKです。

⑦「タグの追加」は「キー」に「Name」,「値」に「DB_server」と入力します。(任意の名前でいいです)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704575/14dab9b8-8bbd-d36f-eef5-d9c0847c8556.png)

⑧「セキュリティグループの設定」
　「セキュリティグループの割り当て」は「新しいセキュリティグループを作成する」を選択します。
　「セキュリティグループ名」に「DB_SG」と入力します。
　「タイプ」は「SSH(規定値)」と「MYSQL/Aurora」を選択し、「MYSQL/Aurora」の「ソース」は「任意の場所」を選択します。
　「MYSQL/Aurora」のタイプを追加するには「ルールの追加」をクリックすればOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704575/8fa1939d-ed9c-bdc2-e07c-1d9d5f1187db.png)
⑦キーペアは既存の物を使いましょう。
　「既存のキーペアの選択」を選択し、「キーペアの選択」でWebサーバのEC2構築時に使ったキーペアを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704575/cef132cb-7927-7b0d-8a2e-cd2a4463d131.png)

# scpコマンドによるwebサーバへのファイル転送
MACのターミナルから``scp``コマンドを使用してファイルを転送します。
カレントディレクトリあるpemファイルをホームディレクトリにコピーします。

```
scp -i practice_key.pem ec2-user@(webサーバのIPアドレス)：~/
```

上記のコマンドを実行することで、webサーバへのファイル転送が行われました。

# DBサーバへのSSH接続
(webサーバ上で)下記コマンドを実行します。

```
chmod 400 practice_key.pem
```

```
ssh -i practice_key.pem ec2-user@10.0.2.10
```
なんかメッセージが出るはずなので、「yes」と入力します。

```
https://aws.amazon.com/amazon-linux-2
[ec2-user@ip-10-0-2-10 ~]$
```
上記のような画面が出ていれば成功です。



# NATゲートウェイの構築
①「VPC」>「NATゲートウェイ」>「NATゲートウェイを作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704575/649ae703-f902-123f-ebab-69b5981fd46a.png)

②「Name」に任意の名前を指定します。
　「サブネット」はパブリックサブネットを指定します。
　「Erastic IP 割り当て ID」は「Elastic IPの割り当て」を選択すると自動でIPアドレスが割り当てられます。
　「NATゲートウェイの作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704575/2a5d3d84-8fa0-c736-94a1-d530134c5334.png)

## ルートテーブルの更新
NATゲートウェイが構築できたので、プライベートサブネットのルートテーブルを更新します。

※事前準備：構築したNATゲートウェイの「NATゲートウェイID」を確認しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704575/47be56fb-95f3-f096-c642-d18992358ff7.png)

①「ルートテーブル」をクリックします。
②メインが「はい」になっているものを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704575/04704b00-444a-c232-57aa-5402def1621b.png)
③「ルートの追加」をクリックし、「送信先」に「0.0.0.0/0」と入力します。
④「ターゲット」には事前準備で確認したNATゲートウェイIDを選択します。
![スクリーンショット 2020-11-02 17.09.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704575/b69e289c-8e70-5daa-51a8-0f28036146ee.png)
⑤「ルートの保存」をクリックして構築完了です。


# DBサーバにMariaDBをインストール

DBサーバにMariaDBをインストールします。
前回やったような手順で、DBサーバにSSH接続をします。

(DBサーバ上の手順)

```
sudo yum -y install MariaDB-server
```

```
sudo systemctl start mariadb
```

```
mysqladmin -u root password
New password: (任意のパスワード)
confirm new password (先ほど入力した任意のパスワード)
```

```
mysql -u root -p
Enter password: (設定した任意のパスワード)
```

```
CREATE DATABASE wordpress DEFAULT CHARACTER SET UTF8 COLLATE utf8_general_ci ;
```

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

```
flush privigeges ;
```

```
exit ;
```

(自動起動設定)(DBサーバ上で)

```
sudo systemctl enable mariadb
```

# PHPインストール

```
sudo amazon-linux-extras install php7.3
```

```
sudo yum -y install php php-mbstring
```

```
mysql -h 10.0.2.10 -u wordpress -p
```

```
exit
```

## wordpressインストール

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

```
tar xzvf latest-ja.tar.gz
```

```
cd wordpress
```

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

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

## 設定

```
sudo systemctl start httpd
```


# wordpressの初期設定

①WebサーバのパブリックIPアドレスをブラウザに入力(EC2>インスタンス>Web_server)
②「さあ、始めましょう！」をクリック
![スクリーンショット 2020-11-02 17.33.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704575/afe81adb-e1df-6d04-14f3-ed185845709e.png)

③データベースを設定します。

|設定項目|設定値|
|---|---|
|データベース名|wordpress|
|ユーザー名|wordpress|
|パスワード|wordpresspasswd|
|データベースのホスト名|10.0.2.10|
|テーブル接頭辞|wp_(デフォルト)|

④「インストール実行」ボタンを押下

⑤「必要情報」を入力します。
~~めちゃくちゃ個人情報載せちゃってるので画像は割愛します...~~

|設定項目|設定値|
|---|---|
|サイトのタイトル|あべのポトフォ(任意でいいです)|
|ユーザー名|任意(adminとか)|
|パスワード|任意(ランダムに設定されるが変更可能)|
|メールアドレス|任意のメールアドレス|

↑こんな感じの設定値でいいんじゃないかな

⑥「wordpressをインストール」を押下します。

⑦**完成！！！！！！**


![スクリーンショット 2020-11-02 17.39.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704575/2961f605-b717-a6bb-92c9-7a76bb466295.png)

おつかれ！！！！！
参考になれば幸いです。


# 参考文献
Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂3版
https://amzn.to/3mqfImv