クラウド初心者のAWS入門(第10回)

# 第10回 MariaDBのインストール

プライベートサブネット上のインスタンスに、DBソフトウェアをインストールします。
MariaDBのパッケージは、前回構築したNATゲートウェイを経由しインターネットからgetします。

|![システム構成図_第10回目.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626270/220453bd-9249-602e-36a7-d3a12ba0e757.png)
|:-:|

以下の通り進めていきます。

+ [DBサーバへssh接続](#DBサーバへssh接続)
+ [MariaDBのインストール(NATを削除している場合は再作成から)](#MariaDBのインストール)
+ [MariaDBの設定](#MariaDBの設定)

## DBサーバへssh接続
ご使用の端末に応じて、WindowsならTeraTerm、MACなら標準のターミナルが使いやすいかと思います。
今回はMACのターミナルを用いて作業をしていきます。

作業における注意点としては以下２点です。

1. DBサーバはパブリックIPアドレスを持っていませんので、端末から直接ssh接続することはできません。ですのでWebサーバ→DBサーバと段階的にssh接続していきます。
2. WebサーバからDBサーバへ接続することとなるため、Webサーバ上にDBサーバのキーファイルを格納しておく必要があります。

***
### Webサーバへssh接続する
***

ターミナルで以下コマンドを入力し、Webサーバへ接続します。
キーファイルについては、フルパス指定かキーファイル格納場所まで事前に`cd`してあげてください。

```
$ ssh -i "キーファイル" "ユーザ名"@"接続先サーバのパブリックIP"

 # キーファイル：接続先サーバ(Webサーバ)のキーファイル、「my-key.pem」、
 # 実行結果にある`./`はなくても良い。
 # ユーザ名：Webサーバのユーザ名、「ec2-user」
 # 接続先サーバのパブリックIP：WebサーバのパブリックIP、秘密
```

<details>
<summary>参考(実行結果)</summary>
<img width="547" alt="img 2020-06-04 19.34.57.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626270/9ff08464-6df9-aaaa-a396-9d3e515c01c2.png">
ログインに成功すると、プロンプトが以下のように変更となります。
` [ec2-user@ip-10.0.1.10 ~]$ `
</details>

***
### WebサーバにDBサーバのキーファイルをおく
***

続けて、WebサーバにDBサーバの鍵ファイルを転送します。

ターミナルをもう1個立ち上げて、以下コマンドを入力します。
上記同様、ファイル指定時は、フルパスかファイル格納場所まで事前に`cd`してあげてください。

```
$ scp -i "キーファイル" "コピーするファイル" "ユーザ名"@"接続先サーバのパブリックIP":"コピー先ディレクトリ"

 # キーファイル：接続先サーバ(Webサーバ)のキーファイル、「my-key.pem」
 # コピーするファイル：今回は「DBserver.pem」
 # ユーザ名：Webサーバのユーザ名、「ec2-user」
 # 接続先サーバのパブリックIP：WebサーバのパブリックIP
 # コピー先ディレクトリ：指定があれば指定する(/home/aws/key等)、今回は「~」(ユーザのホームディレクトリ)
```
<details>
<summary>参考(実行結果)</summary>
<img width="955" alt="img 2020-06-04 19.46.02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626270/2357857c-9d60-92a8-cdea-2e597dd32b17.png">
</details>

***
### DBサーバへssh接続する
***

Webサーバへ接続した状態のターミナルを利用します。
以下コマンドでWebサーバからDBサーバへssh接続します。

```
$ ssh -i "キーファイル" "ユーザ名"@"接続先サーバのプライベートIP"

 # キーファイル：接続先サーバ(DBサーバ)のキーファイル、「DBserver.pem」
 # ユーザ名：DBサーバのユーザ名、「ec2-user」
 # 接続先サーバのプライベートIP：DBサーバのプライベートIP、「10.0.2.10」
```

<details>
<summary>参考(実行結果)</summary>
<img width="589" alt="img 2020-06-04 19.48.12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626270/8743ef1b-b0bd-472e-7dcd-cf7de39bdb99.png">
ログインに成功すると、プロンプトが以下のように変更となります。
 `[ec2-user@ip-10.0.2.10 ~]$ `
</details>

## MariaDBのインストール

DBサーバへログインができたら、MariaDBをインストールします。NATゲートウェイを削除してしまった方は、このタイミングで再作成でOKです。
以下のコマンドを実行します。

```
$ sudo yum install -y mariadb-server
```
<details>
<summary>参考(インストール画面)</summary>
依存関係のパッケージを1個1個ダウンロードしなくて良い幸せ。
<img width="981" alt="img 2020-06-04 19.56.39.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626270/2f4ff6e1-6668-cdfc-cb1c-5185c7f0b094.png">
</details>

## MariaDBの設定
インストールが完了したらMariaDBの起動と設定を行っていきます。ここはほぼ参考書通りです。

```
## 起動状態を確認する
$ sudo systemctl status mariadb

## 自動起動設定も確認する
# sudo systemctl list-unit-files | grep mariadb

## 停止しているはずなので起動する
$ sudo systemctl start mariadb

## 自動起動もしないはずなので設定する
# sudo systemctl enable mariadb

## 起動状態を再度確認する
$ sudo systemctl status mariadb

## 自動起動設定も再度確認する
# sudo systemctl list-unit-files | grep mariadb

## rootユーザのパスを設定する
$ mysqladmin -u root password

## dbにrootユーザでアクセス
$ mysql -u root -p

## dbを作成
## コマンド上、"wordpress"がDB名となる
> CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

## 作成したDBへアクセス権を付与する
> grant all on wordpress.* to wordpress@"%" identifited by '設定したパス';

## fulshで内容を反映
>flush privileges

## wordpressユーザがいるか確認
> select user, host from mysql.user;

### ->参考(実行結果)に詳細
```
<details>
<summary>参考(実行結果)</summary>
<img width="443" alt="img 2020-06-06 14.27.43.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626270/5e4e9373-af99-b2f0-b084-ceaa4688c493.png">
</details>

以上です。次回パブリック側にWordPressをインストールしてとりあえず終わりの予定です。

### 参考文献
[Amazon Web Services 基礎からのネットワーク&サーバー構築](https://shop.nikkeibp.co.jp/front/commodity/0000/231260/)