【AWS環境構築メモ③】VPCを作成する

## 0.はじめに

Amazon VPCの作成をします。

- **VPC**
Virtual Private Cloudの略。AWSアカウント専用の仮想ネットワークです。この中にEC2やRDSなどのAWSリソースを設置していきます。

- **CIDR**
Classless Inter-Domain Routingの略。VPC作成時にIPv4 アドレスの範囲を指定する形式。

- **サブネット**
CIDR範囲で分割したネットワークセグメントです。主にパブリックサブネットとプライベートサブネットがあります。
  - **パブリックサブネット**
  インターネットのアクセスができるサブネット
  (インターネットゲートウェイにルーティング)
  - **プライベートサブネット**
  インターネットゲートウェイへのルートがないサブネット
  (NATゲートウェイを設置すればアクセス可能)

- **インターネットゲートウェイ**
VPCと外部のネットワークを繋ぐ接合点。

- **ルートテーブル**
ネットワーク通信の経路。仮想ルーター。

![スクリーンショット 2022-03-24 19.19.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/891391/930ebafd-ba0f-6a98-ab78-8bc984ab8925.png)

**参考**
**[Amazon VPCとは何か？使い方や構成例を詳しく解説](https://www.sbbit.jp/article/cont1/51188)
[AWSのVPCって何？メリットや使えるシーンなど徹底解説！](https://techplay.jp/column/541#:~:text=%E3%81%A6%E3%81%84%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82-,%E3%82%B5%E3%83%96%E3%83%8D%E3%83%83%E3%83%88,%E3%81%A8%E3%83%97%E3%83%A9%E3%82%A4%E3%83%99%E3%83%BC%E3%83%88%E3%82%B5%E3%83%96%E3%83%8D%E3%83%83%E3%83%88%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82)**

## 1.前回の記事
**[【AWS環境構築メモ②】お名前.comで取得したドメインをRoute53に登録する](https://qiita.com/yuuichimizuta/items/bd335c9af518560ca3d4)**

## 2.前提条件

- **AWSアカウント作成済み**
- **リージョンはアジアパシフィック(東京) ap-northeast-1**

## 3.作成手順(サマリー)

|順番|手順|
|---|---|
|1|VPCの作成|
|2|サブネットの作成|
|3|インターネットゲートウェイの作成|
|4|ルートテーブルの作成|

## 4.作成手順

### 1.VPCの作成

![スクリーンショット 2022-03-24 14.19.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/891391/bb2f105a-3aca-7943-0d6d-ce6cc190f075.png)

- **サービスからVPCを選択 → VPC → VPCの作成をクリック**

![スクリーンショット 2022-03-24 14.19.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/891391/6d6364f3-2a66-17b5-3b7a-e25bbadf112f.png)

**VPCの設定**
- **作成するリソース**
  - 今回は**VPCのみ**を選択(順番に作成したいため)
- **名前タグ -オプション-**
  - サービス名-vpc、など分かりやすい名前がおすすめ
- **IPv4 CIRD**
  - 今回は「10.0.0.0/16」を入力

設定が終わったら、**[VPCの作成]** をクリック

<font color="Green">**作成完了の画面が出ますので閉じます。**</font>

### 2.サブネットの作成

![スクリーンショット 2022-03-24 15.31.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/891391/805e263d-c7e2-1110-a555-db99c53410e1.png)

- **サブネット → サブネットを作成をクリック**

![スクリーンショット 2022-03-24 15.56.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/891391/128a1605-28ab-7206-e95b-bc95a8909a18.png)

#### パブリックサブネットの作成

**パブリックサブネット 1a, 1cの「２つのサブネット」を作ります。**
<font color="Blue">**追加でサブネットを作る際は[新しいサブネットを追加]をクリックする**</font>

- **VPC ID**
  - 先程作成したVPCを指定
- **サブネット名**
  - 〇〇-public-1a　, 〇〇-public-1cなど分かりやすい名前がおすすめ
- **アベイラビリティーゾーン**
  - 1aは **[ap-northeast-1a]** を指定
  - 1cは **[ap-northeast-1c]** を指定
- **IPv4 CIRD ブロック**
  - 1aは **[10.0.6.0/24]** を指定
  - 1cは **[10.0.106.0/24]** を指定
- 1a, 1cとも入力し終えたら **[サブネットの作成]** をクリックする。

<font color="Green">**パブリックサブネットの作成完了**</font>

#### プライベートサブネットの作成

基本的にはパブリックサブネットの作成手順と同じ
以下の点に注意して作成する

**パブリックサブネットと同様、1a,1cの２つのサブネットを作成する**

- **VPC ID**
  - 先程作成したVPCを指定
- **サブネット名はパブリックサブネットと区別できるように設定する**
- **アベイラビリティーゾーン**
  - 1aは **[ap-northeast-1a]** を指定
  - 1cは **[ap-northeast-1c]** を指定
- **IPv4 CIRD ブロック**
  - 1aは **[10.0.1.0/24]** を指定
  - 1cは **[10.0.101.0/24]** を指定
- 1a, 1cとも入力し終えたら **[サブネットの作成]** をクリックする。

<font color="Green">**プライベートサブネットの作成完了**</font>

<font color="Green">**パブリックサブネット**</font>には、**EC2**を設置する予定です。
<font color="Blue">**プライベートサブネット**</font>には、**RDS**を設置する予定です。

### 3.インターネットゲートウェイの作成

#### 作成する

![スクリーンショット 2022-03-24 17.00.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/891391/07832ce4-8b89-0e42-1a75-a82f0598a886.png)

- **インターネットゲートウェイ → インターネットゲートウェイの作成**

![スクリーンショット 2022-03-24 17.00.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/891391/b65eb555-fa57-9b13-d440-8018f42a1b9e.png)

- **名前タグ**
    - サービス名-igw　など分かりやすい名前がおすすめ
- **入力し終えたら[インターネットゲートウェイの作成をクリック]する**

<font color="Green">**インターネットゲートウェイの作成完了です**</font>

#### 作成したインターネットゲートウェイをVPCにアタッチ

![スクリーンショット 2022-03-24 17.26.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/891391/e284ad35-fe11-e39d-1e9f-7d5ce5eec14d.png)

- **作成したインターネットゲートウェイを選択**
- **アクションをクリックして、VPCにアタッチを選択**

![スクリーンショット 2022-03-24 17.26.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/891391/dd368426-a9a5-a7a0-d068-1d23c84b5d8b.png)

- **対象のVPCを選択する**
- **[インターネットゲートウェイのアタッチ]をクリックする**

<font color="Green">**インターネットゲートウェイのアタッチ完了です**</font>

### ルートテーブルの作成

**パブリックサブネットへアタッチするルートテーブルと
プライベートサブネットへアタッチするルートテーブルの２つを作成する**

#### 作成する

![スクリーンショット 2022-03-24 17.44.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/891391/68044044-96a0-be2d-c4a1-79577c5861d8.png)

- **ルートテーブル → ルートテーブルの作成**

![スクリーンショット 2022-03-24 17.44.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/891391/da49b051-04a4-fce6-ee3c-6ef980ca5cae.png)

**パブリックサブネットへアタッチするルートテーブルの作成**

- **名前 -オプション-**
  - 〇〇-public-route など分かりやすい名前がおすすめ
- **VPC**
  - 作成したVPCを選択
- **ルートテーブルを作成をクリック**

<font color="Green">**パブリックサブネットへアタッチするルートテーブル作成完了です**</font>

**プライベートサブネットへアタッチするルートテーブルの作成**

- **名前 -オプション-**
  - 〇〇-private-route など分かりやすい名前がおすすめ
- **VPC**
  - 作成したVPCを選択
- **ルートテーブルを作成をクリック**

<font color="Green">**プライベートサブネットへアタッチするルートテーブル作成完了です**</font>

#### 作成したルートテーブルをサブネットにアタッチ

![スクリーンショット 2022-03-24 18.18.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/891391/0c802fc4-8337-8b5c-006f-b438f986b15a.png)

**作成したルートテーブルをサブネットにアタッチしていきます**

**パブリックサブネットへのアタッチ**
- **パブリックサブネット用のルートテーブルを選択**
- **サブネットの関連付けを選択 → サブネットの関連付けの編集をクリック**
- **作成したパブリックサブネット２つを選択して保存**

<font color="Green">**パブリックサブネットへのアタッチ完了です**</font>

**プライベートサブネットへのアタッチ**

- **プライベートサブネット用のルートテーブルを選択**
- **サブネットの関連付けを選択 → サブネットの関連付けの編集をクリック**
- **作成したプライベートサブネット２つを選択して保存**

<font color="Green">**プライベートサブネットへのアタッチ完了です**</font>

## 5.最後に

以上でVPCの作成は完了しました。
ようやく構築の第一歩を踏めた感じですね。。

<font color="Red">**今回作成したVPCが今後のAWSツールの設定に大きく関わっていきます!**</font>

**次回は各ツールに関連付けるセキュリティーグループの設定を行っていきます。**

**次回 : [【AWS環境構築メモ④】セキュリティーグループの作成](https://qiita.com/yuuichimizuta/items/5d3b9e4872ad8ae1db4f)**

## 6.参考

https://dev.classmethod.jp/articles/myfirstnvpcsetup/

**AWS workshop studio 
Amazon VPC の作成**

https://catalog.us-east-1.prod.workshops.aws/workshops/47782ec0-8e8c-41e8-b873-9da91e822b36/ja-JP/hands-on/phase1