AWS マルチAZの作り方①(VPC~NATゲートウェイ)

## はじめに
今回はマルチAZを全部手動で作りたいので、下記のAWS構成図のように作っていきます
※全て東京リージョンで行っております
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4021963/e467d1bd-e9bd-4373-a159-45fcfc1f2ebf.png)

最終的には下記を作成ます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4021963/a958ffca-9f3c-4ae3-bcdc-45dd69e28e58.png)

## 手順1：VPCの作成
VPCの設定
| 設定項目 | 入力内容 |
|:-----------|:------------|
| 作成するリソース | VPCのみ |
| 名前タグ | `sample-vpc` |
| IPv4 CIDR ブロック | IPv4 CIDRの手動入力 |
| IPv4 CIDR | `10.0.0.0/24` |

入力が完了しましたら、`VPCを作成`をクリックします

## 手順2：サブネットの作成
サブネット計4つを2種類のAZでそれぞれ2つずつ作成します

VPCのVPC IDは先ほど作成した`sample-vpc`を選択します

### サブネットの設定(1つ目のパブリックサブネット)
| 設定項目 | 入力内容 |
|:-----------|:------------|
| サブネット名 | `sample-vpc-public-1a` |
| アベイラビリティーゾーン | `ap-northeast-1a` |
| IPv4 サブネット CIDR ブロック | `10.0.0.0/26` |

### サブネットの設定(2つ目のパブリックサブネット)
| 設定項目 | 入力内容 |
|:-----------|:------------|
| サブネット名 | `sample-vpc-public-1c` |
| アベイラビリティーゾーン | `ap-northeast-1c` |
| IPv4 サブネット CIDR ブロック | `10.0.0.64/26` |

### サブネットの設定(1つ目のプライベートサブネット)
| 設定項目 | 入力内容 |
|:-----------|:------------|
| サブネット名 | `sample-vpc-private-1a-ec2` |
| アベイラビリティーゾーン | `ap-northeast-1a` |
| IPv4 サブネット CIDR ブロック | `10.0.0.128/27` |

### サブネットの設定(2つ目のプライベートサブネット)
| 設定項目 | 入力内容 |
|:-----------|:------------|
| サブネット名 | `sample-vpc-private-1a-rds` |
| アベイラビリティーゾーン | `ap-northeast-1a` |
| IPv4 サブネット CIDR ブロック | `10.0.0.192/28` |

### サブネットの設定(3つ目のプライベートサブネット)
| 設定項目 | 入力内容 |
|:-----------|:------------|
| サブネット名 | `sample-vpc-private-1c-ec2` |
| アベイラビリティーゾーン | `ap-northeast-1c` |
| IPv4 サブネット CIDR ブロック | `10.0.0.160/27` |

### サブネットの設定(4つ目のプライベートサブネット)
| 設定項目 | 入力内容 |
|:-----------|:------------|
| サブネット名 | `sample-vpc-private-1c-rds` |
| アベイラビリティーゾーン | `ap-northeast-1c` |
| IPv4 サブネット CIDR ブロック | `10.0.0.208/28` |

入力が完了しましたら、`サブネットを作成`をクリックします

## 手順3：インターネットゲートウェイを作成し、VPCにアタッチ
### インターネットゲートウェイの作成
| 設定項目 | 入力内容 |
|:-----------|:------------|
| 名前タグ | `sample-vpc-igw` |

入力が完了しましたら、`インターネットゲートウェイの作成`をクリックします

### VPCにアタッチ
1. `sample-vpc-igw`をクリック
2. 左上の`アクション`から`VPCにアタッチ`をクリックし、VPCにアタッチの画面へ
3. 使用可能なVPCから`sample-vpc`を選択
4. `インターネットゲートウェイのアタッチ`をクリック

## 手順4：NATゲートウェイの作成

:::note info
コスト面を考えますと、稼働ぎりぎりに作った方がいいです。東京リージョンでは1か月ただ作成しておいておくだけでも6400円ほどかかるからです
:::

| 設定項目 | 入力内容 |
|:-----------|:------------|
| 名前 | `sample-vpc-ngw` |
| サブネット | `sample-vpc-public-1a` |
| 接続タイプ | パブリック |
| Elastic IP 割り当て ID | Elastic IPを割り当て |

入力が完了しましたら、`NATゲートウェイを作成`をクリックします

## 手順5：ルートテーブルの作成
### ルートテーブルの作成
ルートテーブルはインターネットゲートウェイ用とNATゲートウェイ用の2つを作成します

#### インターネットゲートウェイ用
| 設定項目 | 入力内容 |
|:-----------|:------------|
| 名前 | `sample-vpc-rtb-public-igw` |
| VPC | `sample-vpc` |

#### NATゲートウェイ用
| 設定項目 | 入力内容 |
|:-----------|:------------|
| 名前 | `sample-vpc-rtb-private-ngw` |
| VPC | `sample-vpc` |

入力が完了しましたら、`ルートテーブルを作成`をクリックします

### ルートを編集
#### インターネットゲートウェイ用
1. `sample-vpc-rtb-public-igw`をクリック
2. ルートタブの`ルートを編集`をクリック

| 設定項目 | 入力内容 |
|:-----------|:------------|
| ルート1 | 変更なし |
| ルート2 |
| 送信先 | 0.0.0.0/0 |
| ターゲット | インターネットゲートウェイ `sample-vpc-igw` |

#### NATゲートウェイ用
1. `sample-vpc-rtb-private-ngw`をクリック
2. ルートタブの`ルートを編集`をクリック

| 設定項目 | 入力内容 |
|:-----------|:------------|
| ルート1 | 変更なし |
| ルート2 |
| 送信先 | 0.0.0.0/0 |
| ターゲット | NATゲートウェイ `sample-vpc-ngw` |

入力が完了しましたら、`変更を保存`をクリックします

### サブネットのルートテーブルの関連付けを編集

:::note info
EC2をローカル環境から接続して作業を行う場合は、コスト面などの関係からぎりぎりまでパブリックサブネットで作業することをお勧めいたします(その場合、サブネットの関連付けをインターネットゲートウェイからNATゲートウェイへ切り替える作業をぎりぎりに行います)
:::

#### インターネットゲートウェイ用
1. `sample-vpc-rtb-public-igw`をクリック
2. サブネットの関連付けタブの`サブネットの関連付けを編集`をクリック
3. `sample-vpc-public-1a`と`sample-vpc-public-1c`、(`sample-vpc-private-1a-ec2`、`sample-vpc-private-1c-ec2`)をチェックし、`関連付けを保存`をクリック

#### NATゲートウェイ用
1. `sample-vpc-rtb-private-ngw`をクリック
2. サブネットの関連付けタブの`サブネットの関連付けを編集`をクリック
3. `sample-vpc-private-1a-ec2`、`sample-vpc-private-1c-ec2`をチェックし、`関連付けを保存`をクリック

## まとめ
東京リージョンにおいて、マルチAZ対応のVPCを手動で構築し、インターネットおよびNATゲートウェイを用いた適切なルーティング設定を行いました。