AWS環境構築　EC2(Amazon Linux)+RDS(MySQL)の設定　他VPC、サブネット、ルートテーブル、インターネットゲートウェイ

AWSに以下の環境を構築したので、備忘録として残しておこうと思います。

(0)AWSの設定　←　本エントリの内容
(1)[Apache2.2+PHP7+MySQL5.6+WordPress4.7+phpMyAdmin4.6](http://qiita.com/hibriiiiidge/items/7483335bb3d2fef40214)
(2)[Nginx+Unicorn+RubyOnRails](http://qiita.com/hibriiiiidge/items/10311c604bf6bbab22db)

実施事項
◎AWSの設定
- VPCの作成
- サブネットの作成
- インターネットゲートウェイの作成
- ルートテーブルの作成
- EC2インスタンスの作成
- RDSインスタンスの作成
- Elastic IPの作成
◎ローカルからのSSH通信

【ご一読いただくにあたって】
・AWSのアカウントは事前に取得して下さい。
・間違いがありましたらコメントにて教えて下さい。（まだまだ勉強中です。）
・専門用語の深い解説はしておりません。

##AWSの設定
###VPCの作成
![AWS1.png](https://qiita-image-store.s3.amazonaws.com/0/114886/cd606b5d-18a1-40eb-499a-4de021776d8c.png)
・リージョンが東京であることを確認

![AWS2.png](https://qiita-image-store.s3.amazonaws.com/0/114886/dafa8a48-9f6a-9884-b9d6-76563cac5a41.png)
・サービスの中から[VPC]をクリック

![AWS3.png](https://qiita-image-store.s3.amazonaws.com/0/114886/c66d489b-7afc-577d-620b-61f0c053ce48.png)

![AWS4.png](https://qiita-image-store.s3.amazonaws.com/0/114886/7fa349ee-956e-ec2e-68f4-a28f0523e6e3.png)
・VPCダッシュボードに遷移するので、[VPC]、[VPCの作成]をクリック

![AWS5.png](https://qiita-image-store.s3.amazonaws.com/0/114886/07af8be5-0651-28a3-d7ad-52ae027ee786.png)
・[ネームタグ]と[IPv4 CIDR block]をそれぞれ入力

| 項目 | 値 |
| :--------|:---------------|
| ネームタグ | test_for_Qiita |
| IPv4 CIDR block | 10.0.0.0/16 |
 
###サブネットの作成
今回はEC2,RDSのインスタンスそれぞれにサブネットを設定
インターネットへの接続はEC2のサブネット（パブリックサブネット）のみ、RDSはプライベートサブネット
RDSインスタンスの作成に、サブネットグループの設定が必要なので、RDS用のサブネットにアベイラビリティゾーン(以下、AZ)が異なる2つのサブネットを設定


![AWS6.png](https://qiita-image-store.s3.amazonaws.com/0/114886/f90f4eef-57a8-c1b8-b328-5ab0b5109ade.png)

EC2用のサブネットを設定
![AWS7.png](https://qiita-image-store.s3.amazonaws.com/0/114886/85c13c6d-4447-6438-e6c6-6659ec341111.png)

| 項目 | 値 |
| :--------|:---------------|
| ネームタグ | subnet_for_Qiita_EC2 |
| VPC | vpc-xxxxxx  test_for_Qiita |
|AZ | ap-northeast-1a |
| IPv4 CIDR block | 10.0.1.0/24 |
[IT用語辞典 e-words CIDR](http://e-words.jp/w/CIDR.html)
[ネットワーク入門：サブネットと CIDR を理解する](https://internetcom.jp/linuxtutorial/20080815/5.html)

RDS(マスター)用のサブネットを設定
![AWS8-1.png](https://qiita-image-store.s3.amazonaws.com/0/114886/3bbdb63f-d22d-23c7-e2dc-c179d290783e.png)

| 項目 | 値 |
| :--------|:---------------|
| ネームタグ | subnet_for_Qiita_RDS_master |
| VPC | vpc-xxxxxx  test_for_Qiita |
|AZ | ap-northeast-1a |
| IPv4 CIDR block | 10.0.2.0/24 |

RDS(スレーブ)用のサブネットを設定
![AWS25.png](https://qiita-image-store.s3.amazonaws.com/0/114886/bb78fe8d-4dd7-9e52-86d0-f4b6663a4e95.png)

| 項目 | 値 |
| :--------|:---------------|
| ネームタグ | subnet_for_Qiita_RDS_slave |
| VPC | vpc-xxxxxx  test_for_Qiita |
|AZ | ap-northeast-1c※ |
| IPv4 CIDR block | 10.0.3.0/24 |
 ※AZはap-northeast-1a ではない

###インターネットゲートウェイ（以下、GW）の作成
![AWS9.png](https://qiita-image-store.s3.amazonaws.com/0/114886/aaf89641-12a0-fe47-b223-a9ab41b9b628.png)

![AWS10.png](https://qiita-image-store.s3.amazonaws.com/0/114886/93b1d364-3b44-a369-7200-28eed82b4766.png)

| 項目 | 値 |
| :--------|:---------------|
| ネームタグ | GW_for_Qiita |

![AWS11.png](https://qiita-image-store.s3.amazonaws.com/0/114886/4f654948-d27c-586b-899e-999dd8fedb89.png)
・VPCと紐付ける（状態:detached）

![AWS12.png](https://qiita-image-store.s3.amazonaws.com/0/114886/00617a3d-a8d1-473d-a036-112e60ef1001.png)
・上記で作成したVPC(test_for_Qiita)を選択

![AWS13.png](https://qiita-image-store.s3.amazonaws.com/0/114886/42be11d8-8bf7-3514-2594-fe328e5d50a6.png)
・アタッチ完了(状態：attached)

###ルートテーブルの作成
![AWS14.png](https://qiita-image-store.s3.amazonaws.com/0/114886/edb61def-2cce-af93-8743-22d6328164eb.png)
・上記で作成したVPC(test_for_Qiita)に紐付いたルートテーブルが作成されているので、GWとサブネットをそこに紐付ける

![AWS17.png](https://qiita-image-store.s3.amazonaws.com/0/114886/cbfe438f-0a9c-80e5-53e9-34667b678d8f.png)
・[ルート] → [別ルートの追加]

![AWS36.png](https://qiita-image-store.s3.amazonaws.com/0/114886/50a9f2a8-cf20-63d7-c381-8fed1377ea5e.png)

| 送信先 | ターゲット |
| :--------|:---------------|
|0.0.0.0/0 | igw-xxxxxx |
※igw-xxxxxx 上記で作成したGW

![AWS15.png](https://qiita-image-store.s3.amazonaws.com/0/114886/6b4dceae-0368-9e6f-fab6-32b2e37fc687.png)
・[サブネットの関連付け] → [編集]

![AWS16.png](https://qiita-image-store.s3.amazonaws.com/0/114886/d184a297-344d-5c12-d99e-e0a078334edc.png)
・`subnet_for_Qiita_EC2`と関連付け保存


###EC2インスタンス(Amazon Linux)の作成
![AWS19.png](https://qiita-image-store.s3.amazonaws.com/0/114886/8d9ede1b-2d94-dcad-7b89-faa3fd1d1e3a.png)
[インスタンスの作成]
１ AMIの選択　→　AmazonLinux
２ インスタンスタイプの選択 →　無料利用枠のt2.microを選択
３ インスタンスの設定
![AWS20.png](https://qiita-image-store.s3.amazonaws.com/0/114886/dbc36c33-9e97-4122-ae75-9cdda4a71d78.png)

| 項目 | 値 |
| :--------|:---------------|
| ネットワーク | vpc-xxx test_for_Qiita |
| サブネット | subnet_for_Qiita_EC2 |

４ ストレージの追加　→　そのまま
５ Add Tags　→　任意のタグを設定(ex.EcC2_for_Qiita)
６ セキュリティグループの設定 
![AWS21.png](https://qiita-image-store.s3.amazonaws.com/0/114886/103dea19-efce-9605-3b66-6af372edeb4f.png)
[新しいセキュリティグループを作成する]

| 項目 | 値 |
| :--------|:---------------|
| セキュリティグループ名 | SG_for_Qiita_EC2(任意) |
| 説明 | SG_for_Qiita_EC2(任意) |
| SSH | マイIP (自動入力) |
| HTTP（ルールの追加） | カスタム（自動入力） |

７ 確認
８ キーペアのダウンンロード
![AWS22.png](https://qiita-image-store.s3.amazonaws.com/0/114886/f6e06831-a28b-7c12-f87e-438ebbb9c815.png)
[新しいキーペアの作成]　→　[キーペア名（任意 ex.kp_Qiita)]　→　[ダウンンロード] →　[インスタンスの作成]

`kp_Qiita.pem`がダウンロードされる
このファイルは「ローカル→AWS」へSSHする際に使用する
本来であれば、.sshディレクトリの中に移す等して管理すべき
今回はテストなのでデスクトップに配置してSSHを実施

![AWS29.png](https://qiita-image-store.s3.amazonaws.com/0/114886/6bc5c454-82f1-f806-c68b-c0344c409511.png)
完了

###RDSインスタンスの作成
RDSインスタンス作成前の下準備①
・RDSのセキュリティグループの作成
EC2ダッシュボード　[セキュリティグループ]　→ [セキュリティグループの作成]
![AWS23.png](https://qiita-image-store.s3.amazonaws.com/0/114886/e4b7d755-150e-1e3f-845a-9976408238de.png)

| 項目 | 値 |
| :--------|:---------------|
| セキュリティグループ名 | SG_for_Qiita_RDS(任意) |
| 説明 | SG_for_Qiita_RDS(任意) |
| MYSQL/Aurora | カスタム sg-xxxxxx※ |
※送信元は、EC2のセキュリティグループ（SG_for_Qiita_EC2）のグループID

RDSインスタンス作成前の下準備②
・RDSのサブネットグループの作成
RDSダッシュボードへ移動　[サブネットグループ]　→ [サブネットグループの作成]
![AWS26.png](https://qiita-image-store.s3.amazonaws.com/0/114886/f1d74da9-d481-17d0-e4e6-6a89b484bd97.png)

| 項目 | 値 |
| :--------|:---------------|
| 名前 | db_subnet_group_for_Qiita(任意) |
| 説明 | db_subnet_group_for_Qiita(任意) |
| VPC ID | test_for_Qiita |

| AZ | サブネット |
| :--------|:---------------|
| ap-notheast-1a | subnet-xxxxx(マスター用のサブネットID) |
| ap-notheast-1c | subnet-zzzzz(スレーブ用のサブネットID) |

サブネットIDは[VPC] → [サブネット] で確認可

RDSインスタンス作成
ステップ１　エンジンの選択　→　MySQL
ステップ２　本番稼動用？　→　開発/テスト
ステップ３　DB詳細の指定
![AWS24.png](https://qiita-image-store.s3.amazonaws.com/0/114886/5d8b4f8b-25d5-ff52-0a6c-eeaa10cb0934.png)

| 項目 | 値 |
| :--------|:---------------|
| DBエンジンのバージョン | 5.6.27(任意) |
| DBインスタンスのクラス | db.t2.micro(任意) |
| マルチAZ配置 |いいえ |
| DBインスタンス識別子 | db-id-for-qiita(任意) |
| マスターユーザの名前 | db_qiita_user（任意） |
| マスターパスワード | 任意 |

※ユーザ名、パスワードはWordPress/phpMyAdminを設定する際に使用
ステップ４　詳細の設定
![AWS28.png](https://qiita-image-store.s3.amazonaws.com/0/114886/9a3d977c-7b06-3c81-dbca-832b668b0fab.png)

| 項目 | 値 |
| :--------|:---------------|
| VPC | test_for_Qiita |
| サブネットグループ | db_subnet_group_for_qiita |
| AZ | ap-northeast-1a |
| VPCセキュリティグループ | SG_for_Qiita_RDS |
| データベースの名前 | db_qiita（任意) |
| バックアップの保存期間 | 0日（任意) |

[DBインスタンスの作成]

![AWS30.png](https://qiita-image-store.s3.amazonaws.com/0/114886/3e54bf74-940b-8b99-1ad1-089879fa9b76.png)
完了

###Elastic IPの作成
EC2にパブリックIPを設定
![AWS32.png](https://qiita-image-store.s3.amazonaws.com/0/114886/894a5ed9-ed7e-cbf1-1fde-687dace035b4.png)
EC2ダッシュボード　[Elastic IP]　→　[新しいアドレスの割り当て]　→　[割り当て]
![AWS33.png](https://qiita-image-store.s3.amazonaws.com/0/114886/d2ea2ba1-f5b5-51a5-06e1-f5155789f23e.png)

新しいIPアドレスが自動生成されるのでそれをEC2と関連づける
[アクション]　→　[アドレスの関連付け]

![AWS34.png](https://qiita-image-store.s3.amazonaws.com/0/114886/f2b50887-7005-5beb-5f27-cd1fbf00e0ea.png)

| 項目 | 値 |
| :--------|:---------------|
| インスタンス | xxxxxxxxxxx (EC2_for_QiitaのインスタンスID)|
|プライベートIP |10.0.1.xxx (EC2_for_QiitaのプライベートIP)|

[関連付け]

##ローカルからのSSH通信
1.EC2インスタンスを作成する際にローカルにダウンロードした`kp_Qiita.pem`のパーミッションを変更
(`kp_Qiita.pem`はデスクトップに移動している前提)

```
myname-no-MacBook-Pro:~ myname$ cd Desktop      #Desktopへ移動
myname-no-MacBook-Pro:Desktop myname$ ls -la      #パーミッション確認
#　略
-rw-r--r--@  1 myname  staff    1692  2  9 12:33 kp_Qiita.pem
#　略
myname-no-MacBook-Pro:Desktop myname$ chmod 400 kp_Qiita.pem      #パーミッション変更
#　略
-r--------@  1 myname  staff    1692  2  9 12:33 kp_Qiita.pem
#　略
myname-no-MacBook-Pro:Desktop myname$ cd      #ホームへ移動
```

2.SSH通信

```
myname$ ssh -i /Users/myname/Desktop/kp_Qiita.pem ec2-user@13.112.xxx.xxx (EC2インスタンスのパブリックIP)
(myname$ ssh -i ~/Desktop/kp_Qiita.pem ec2-user@13.112.xxx.xxx)
```

初回ログイン時には下記のアナウンスが表示

```
The authenticity of host '13.112.xxx.xxx (13.112.xxx.xxx)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)? yes #yesと入力
```

成功

```
       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2016.09-release-notes/
[ec2-user@ip-10-0-1-107(EC2のプライベートIP) ~]$ 
```

以上です。

Apache2.2+PHP7+MySQL5.6+WordPress4.7+phpMyAdmin4.6の設定は[こちら](http://qiita.com/hibriiiiidge/items/7483335bb3d2fef40214)です。