実際に構築してみる(Internet gateway と NAT gateway)

[実際にVPCを構築してみる(VPCとサブネット)](https://qiita.com/miyuki_samitani/items/1484f6396fd044122515)でやった続きです。
※完成してません、試行錯誤中です。

## 勉強前イメージ

インターネットゲートウェイとNATゲートウェイについては[これ](https://qiita.com/miyuki_samitani/items/53b0b35defcfebc2ffa3)でなんとなくやったけど、
実際の構築イメージはわかない....

## Internet gateway と NAT gateway

[AWSのVPCのよく使われるコンポーネントについて](https://qiita.com/miyuki_samitani/items/53b0b35defcfebc2ffa3) で書いたイメージから、
[前回](https://qiita.com/miyuki_samitani/items/1484f6396fd044122515) からの修正を行ったイメージ図が以下です。
今回、このようなイメージで設定していきたいと思います。
※修正を行ったのが赤文字の箇所です。

![NATとかUntitled Diagram.drawio - diagrams.net - Google Ch.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/9cc22f0b-c39d-7ee0-ea16-ba95646d88c8.png)

## 設定を行う

VPCとサブネットの設定は [前回](https://qiita.com/miyuki_samitani/items/1484f6396fd044122515) を見てください。


### EC2インスタンスを作成する

完成後イメージはこんな感じ

![EC2Untitled Diagram.drawio - diagrams.net - Google Ch.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/2206b54c-67cc-8cc2-c73f-ba13d8c6949b.png)

3つも書くのめんどくさいので、1インスタンスだけ書きます。

- インスタンスを起動

![インスタンスの起動インスタンス _ EC2 Management Console - Google Chrome 20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/753d525e-ef06-8c48-bb60-74fa1074f210.png)

- AMIイメージを選択

![centosインスタンスウィザードを起動 _ EC2 Management Console - Google C.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/138d120c-bf46-bfb0-9d69-0e1ff4899338.png)

- インスタンスタイプを選択

![インスタンスタイプインスタンスウィザードを起動 _ EC2 Management Console - Google C.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/eba8ea07-494c-5163-22d3-fd0aeb9a3ed6.png)

- インスタンスの詳細の設定を行う

10.0.1系を2つ作成
10.0.2系を1つ作成

![VPC選択無題 - ペイント 2020-11-20 19.32.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/091b6340-01b8-60f9-5fb2-02ce1c270dc3.png)

- ストレージを設定

インスタンス削除時に一緒にストレージも消えるように「終了時に削除」にチェックを入れる

![ストレージ無題 - ペイント 2020-11-20 19.35.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/b148ebb4-ecee-bc8d-9560-588eae7f8f47.png)

- タグの追加

今回はしません。

![タグなしインスタンスウィザードを起動 _ EC2 Management Console - Google C.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/e35051c9-4674-da08-c520-e6f6911fcc3d.png)


- セキュリティグループの設定

一旦デフォルトの設定

![セキュリティグループ無題 - ペイント 2020-11-20 19.37.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/4ecf708d-a96a-369f-ac27-c6c9836bf161.png)


- 最終確認

![起動インスタンスウィザードを起動 _ EC2 Management Console - Google C.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/37439260-b60d-6fee-661c-3bdc02862e08.png)

- キーペアの作成

![キーペアインスタンスウィザードを起動 _ EC2 Management Console - Google C.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/7cdc462f-1f68-d9d3-e8fe-538c2c1b6c9c.png)

これを3つ作ります。

- 3つ作りました

![インスタンス無題 - ペイント 2020-11-20 19.53.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/8d75f8aa-fdf7-9b25-cec0-dcc69037c606.png)

- 実際構築図

ローカルIP勝手に割り振られたので、青文字のIPアドレスになりました。

![実際Untitled Diagram.drawio - diagrams.net - Google Ch.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/9f7ce05d-5fd6-6f0c-a8b9-df3e437f3dc7.png)

### NATGateway  を作成

EC2を作ったので、NATGateway と InternetGateway を作成する

![NATgatewayを作るUntitled Diagram.drawio - diagrams.net - Google Ch.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/b3abed71-4ebe-b554-9168-74a4a6c70f43.png)


- NATGatewayを作成します

![NATゲートウェイを作成NAT ゲートウェイ _ VPC Management Console - Google Chrom.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/8cfecf7b-876d-fa9b-1780-192bb71d46fa.png)


- NATゲートウェイを作成します

名前はわかりやすいように。
サブネット は10.0.2系のサブネットを指定。
ElastixIP は、「Elastic IP の割り当て」をクリックするとIDが割り当てられます。
ここにはないのですが、タグは何も記載していません。
こちらせ作成を行います。

![無題 - ペイント 2020-11-20 20.53.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/edebc9c0-0cf5-101b-4b53-f4c3213881fb.png)


- できました

![NATゲートウェイできました。無題 - ペイント 2020-11-20 20.56.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/6ea37e16-9ed3-e56f-9a07-5a452d14bbda.png)

### Internet Gateway  を作成

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

![インターネットゲートウェイを作成無題 - ペイント 2020-11-20 20.59.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/b24d719f-9b0a-8679-228c-f7df61bc5428.png)


- インターネットゲートウェイの設定

名前はわかりやすいようにつけました。
タグは自動で入りました。

![インターネットゲートウェイの作成 _ VPC Management Console - Google.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/6f1987f0-d05f-2717-9e3d-9b878e46794f.png)


- できました。

インターネットゲートウェイができました。

![インターネットゲートウェイできました。無題 - ペイント 2020-11-20 21.02.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/60991c59-f347-669c-be25-11b675d41e77.png)

- インターネットゲートウェイをVPCにアタッチしないといけない ※1

注意書きがされているのは、次に進んだらわかりますが
アタッチしてないことによって戸惑ったので....

VPCにインターネットゲートウェイをアタッチします。
そうだよね。。。作るだけじゃどこに置いたらいいかわからんもんね....

![VPCにアタッチ無題 - ペイント 2020-11-20 23.52.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/8b83e4a2-298b-8799-2b85-cab26912e5cb.png)


- アタッチを行う

作ったVPCを選択してアタッチします。

![1VPC無題 - ペイント 2020-11-20 23.53.27.png - ペイント 2020-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/67ca831e-c5b1-992c-5410-e021f68c6a1e.png)



- アタッチされました

アタッチできました。

![アタッチされました。無題 - ペイント 2020-11-20 23.54.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/a34bb564-b360-c173-59d6-9ffd54fb9da6.png)


### Route tableの設定

[前回](https://qiita.com/miyuki_samitani/items/1484f6396fd044122515)  では書けていなかったのですが、
調査しているうちにNAT Gateway と Internet Gateway を使うには subnet の Route table を変更しないといけないようです。
イメージ図としては以下です。

![routetableUntitled Diagram.drawio - diagrams.net - Google Ch.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/a7420b91-9632-94f2-ef7f-40e73633d563.png)


- subnet 10.0.1.0/24 のRoute table

10.0.1.1 - 10.0.1.254 までは先がlocalにあります。
それ以外(0.0.0.0/0) は NAT Gateway に聞きに行きましょう

| 送信先 | ターゲット |
|:-:|:-:|
| 10.0.1.0/24  | local  |
| 0.0.0.0/0  |  NAT Gateway |

- subnet 10.0.2.0/24 のRoute table

10.0.2.1 - 10.0.2.254 までは先がlocalにあります。
それ以外(0.0.0.0/0) は Internet Gateway に聞きに行きましょう

| 送信先 | ターゲット |
|:-:|:-:|
| 10.0.2.0/24  | local  |
| 0.0.0.0/0  |  Internet Gateway |

#### まず....

10.0.1系(qiita-test-1) , 10.0.2系(qiita-test-2) のルートテーブルが一緒でした...
ですので、どちらか(今回は10.0.1系のqiita-test-1)のルートテーブルを別途作成します。

![routetable無題 - ペイント 2020-11-20 23.13.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/7b0dc441-c463-2e06-417c-e8b08f2050df.png)

- ルートテーブルの作成

ルートテーブルからルートテーブルの作成を行います

![ルートテーブルの作成ルートテーブル _ VPC Management Console - Google Chrome 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/0803df21-75bd-502c-e885-05170437cf81.png)


- ルートテーブルの設定

名前タグはわかりやすいように。
VPCは作成したVPCを指定します。

![ルートテーブルの作成無題 - ペイント 2020-11-20 23.17.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/c71fb2e3-d7dd-0ae0-f5d3-0066fe3c4e7e.png)


- できました

ルートテーブルできました。
ついでにわかりやすいように 10.0.2系(qiita-test-2)のルートテーブルの名前も変えておきました。

![routetableできました。無題 - ペイント 2020-11-20 23.18.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/c4a4eee3-7d17-0bb8-67e7-419938cb9c13.png)


- 10.0.1系のサブネットにアタッチするためにルートテーブルの関連付けを編集

作るだけじゃだめで、サブネットに作ったルートテーブルを関連付けしないといけないので、
「ルートテーブルの関連付けを編集」します

![ルートテーブルの編集無題 - ペイント 2020-11-20 23.21.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/8624f596-db6d-e7e1-9126-cd8f9a7b74bd.png)


- ルートテーブルの編集

ルートテーブルIDに先程作成した `qiita-test-1-routetable` を指定します。

![ルートテーブルの編集無題 - ペイント 2020-11-20 23.23.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/21dbb44b-75f8-c5a6-4328-1ec9379460b1.png)


- ルートテーブル変えれました

そしたら、10.0.1系も10.0.2系もルートテーブルが別々になりました！

![ルートテーブル無題 - ペイント 2020-11-20 23.25.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/35a5bfb9-f7c4-28a5-beb5-d7a383022a47.png)



#### 10.0.1系のRoute tableの変更

- ルートの編集

![ルートの編集10.0.1系無題 - ペイント 2020-11-20 23.31.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/a7996d03-a121-3956-a723-b3e91581b811.png)


- ルートの変更

以下のように設定したいと思います。

| 送信先 | ターゲット |
|:-:|:-:|
| 10.0.1.0/24  | local  |
| 0.0.0.0/0  |  NAT Gateway |

あれ....送信先....10.0.1.0じゃなくて....`10.0.0.0` では・・・？
localってsubnet内じゃなくてVPC内ってこと？

しかもNAT Gateway なくなってる...消えてる....deleteになってる・・・なぜーーー
もう1回作り直しました。


![natgatewayの追加無題 - ペイント 2020-11-20 23.39.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/bc9cca76-bcae-55d0-c042-3fa4f4f49f3e.png)


#### 10.0.2系のRoute tableの変更

- ルートの編集

![2ルートテーブル _ VPC Management Console - Google Chrome 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/0bf6ca92-8b4a-18b8-ed28-1be518a2bab8.png)


- ルートの変更

10.0.1系のRoute table変更する際にlocalの送信先は10.0.0.0/16と分かったので↓は変更します。

| 送信先 | ターゲット |
|:-:|:-:|
| 10.0.0.0/16  | local  |
| 0.0.0.0/0  |  Internet Gateway |

しかもこっちもInternet Gatewayがdeleteになってる・・・
これは作ったインターネットゲートウェイをVPCにアタッチするの忘れてました・・・
※1 の手順を抜かしてました(後から書いた

![ルートの編集2無題 - ペイント 2020-11-20 23.59.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/8a37a585-5a1d-9c53-d2c2-e37d9154596b.png)


- できたんだけど・・・

Route table できたんだけど・・qiita-test-2-routetableの明示的に関連付けられたサブネットがない・・・
明示的にするべき？

![sabunettoない無題 - ペイント 2020-11-21 00.03.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/534d6929-e210-758c-f2b1-e05665d25e01.png)


- 明示的にサブネットを関連付ける

![サブネットの関連付け無題 - ペイント 2020-11-21 00.04.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/8e7ec204-8d72-e7cc-78e3-7fa8eb92a7d0.png)


- 関連付けを編集

![関連付け編集無題 - ペイント 2020-11-21 00.06.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/2fc1fa26-a9ed-8893-dea5-ca5c87e74b0f.png)


- 明示的に関連付けられました

![関連付けられた無題 - ペイント 2020-11-21 00.07.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/f75ce2ed-e041-dec5-b84f-cb571efdce8f.png)

#### 結果

実際に構築してみて、青文字のところが変更点です。
全然想像どおりにはならない....

![結果Untitled Diagram.drawio - diagrams.net - Google Ch.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/6a3de7f9-3eb9-49da-deb9-915d4134713a.png)


## 通信をしてみる

↑で作ったものがきちんと通信できるのか、
10.0.1.96 と 10.0.2.249 にログインしてみて確かめてみます。

ログインするには、以下が必要なので行っていきます。
- 10.0.2.249のサーバにelasticIPを振る
- ↑に関連してセキュリティグループの変更が必要

### 10.0.2.249のサーバにelasticIPを振る

- EC2に移動してElastic IPの割り当てを行います

![elasticIP無題 - ペイント 2020-11-21 00.17.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/5d21043a-c4e9-4351-b6e3-8bb272d01ef5.png)


- 割り当てをします

Amazon のIPv4 アドレスプールから割り当てを行います

![2020-11-21Elastic IP アドレスの割り当て _ EC2 Management Console - Go.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/51496270-92a2-642c-d238-74f955e9b701.png)


- 割り当てられました

できました。

![割り当てられました。無題 - ペイント 2020-11-21 00.19.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/7ca1070f-b4e5-009d-dca6-bbe33ffcb2c9.png)


- 割り当てられたElastic IP を 10.0.2.249 に関連付けします

![関連付け無題 - ペイント 2020-11-21 00.20.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/243f59e1-654c-6590-36d2-10fc7cbbe1e9.png)


- 関連付けします

リソースタイプはインスタンス。
インスタンスは10.0.2.249 のインスタンスに割り当てます。

![2無題 - ペイント 2020-11-21 00.41.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/8ba4f9aa-0753-982d-63ef-752506e14d47.png)



### セキュリティグループを家から繋げられるように変更

- 家から繋げられるセキュリティグループの作成

今はlocal(10.0.0.0/16)同士しか繋げられないから.....

![セキュリティグループ無題 - ペイント 2020-11-21 00.24.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/81f830cb-d37a-0074-871f-d0498dfa5871.png)


- セキュリティグループの設定

適当にhomeというセキュリティグループを作りました。
許可はSSHのみ。

![セキュリティグループの中身無題 - ペイント 2020-11-21 00.25.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/27b851a5-5157-486b-be10-0843d7b3c808.png)


- セキュリティグループができました

![新しいセキュリティグループ無題 - ペイント 2020-11-21 00.27.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/8f05bb71-e219-fd84-9960-c4d726906498.png)

- 「home」セキュリティグループの割り当て

インスタンスから10.0.2.249 のインスタンスを選択
右クリックで セキュリティ > セキュリティグループの変更 で進みます。

![セキュリティグループの変更無題 - ペイント 2020-11-21 00.34.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/6b80e815-584e-0c6c-9c1b-89091eef2cc6.png)


- セキュリティグループの追加

セキュリティグループ名を検索して、追加を行うと下に追加されるのでそれで保存

![追加されます。無題 - ペイント 2020-11-21 00.35.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/14e9d0cc-a26d-cad5-1a58-d617ab54c6f1.png)

### 接続確認

1 : 10.0.2.249 がElasticIPを通じてSSH接続出来るのか。
2 : 10.0.1.96 が 10.0.2.249 からSSH接続できて、ping 8.8.8.8 が出来るのか。

![12Untitled Diagram.drawio - diagrams.net - Google Ch.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/c942f9ab-a9d3-6806-207f-c84165ab5742.png)

#### 1 : 10.0.2.249 がElasticIPを通じてSSH接続出来るのか。

- 接続

![きーあぺ無題 - ペイント 2020-11-21 00.46.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/c8e6dea6-81ba-438f-b1e9-ff428d33eaf0.png)


- 外部への接続は出来る

SSHできたし、外部への通信もできた

![ssh52.193.254.177 - Poderosa 2020-11-21 00.48.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/b19d08ee-c5a3-d5cd-f972-a5ee8ce90c12.png)


- 内部への接続もできる

10.0.1系へのpingも通った

![naibu52.193.254.177 - Poderosa 2020-11-21 00.49.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/bb200736-ba8a-b240-ab95-6198aa06427a.png)


#### 2 : 10.0.1.96 が 10.0.2.249 からSSH接続できて、ping 8.8.8.8 が出来るのか。

- 10.0.2.249 → 10.0.1.96 にSSHが出来るか

入った！！！！

![ssh52.193.254.177 - Poderosa 2020-11-21 00.52.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/608b631d-a91a-9dd9-332c-1d4bb9af1846.png)


- 外部への接続が出来るか

pingはとおらんかったか....

![ping52.193.254.177 - Poderosa 2020-11-21 00.53.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/98ec74b3-c97e-a689-ec59-f8c525365b73.png)


## 勉強後イメージ

一応組んでみたもののpingは通らなかったです....
あとたぶんすっごい見ずらいし、完成してないしですいません。
最後までやるべきだろうけど体力不足..また今度リトライします。
結構難しかった

## 参考

- [くろかわこうへいのAWS講座VPC編#2【ルートテーブル、インターネットゲートウェイ、NATゲートウェイ、ENI、Elastic IPアドレス】](https://www.youtube.com/watch?v=6muiXYF6CjE&feature=youtu.be)