VPCのインターネット接続可能にするための設定を身近なものに例えてみた

#AWS入門者へ向けて

今年新人向けにAWS研修の担当をしてみて、反省を踏まえつつVPC周りの設定を身近なものに例えて説明してみました。
いきなりクラウドから学ぶと目に見えないし、概念的で理解しにくいと思います。
そんな方へイメージが湧くように身近なもので例えてみました。
少しぶっ飛んだ設定ですがご容赦ください。。。:sweat_smile:

ただし、VPCとは何ぞやってところまで記載すると長くなりそうなので、前提として
VPCを言われたままに一度作成したり、少しは入門書読みましたレベルの方向けとします。
※人によって理解度が違うので、いつか点と点が繋がって理解するための点にこの記事がなれればと思ってます。

##説明する対象
今回はVPC内にEC2を起動して、SSH接続する際に必要な設定が対象です。

・VPC
・サブネット
・パブリックIPアドレス
・ルートテーブル
・インターネットゲートウェイ
・セキュリティグループ

先に完成系の絵をお見せします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/240644/30c93455-113b-a114-796c-78f89792f916.png)

##VPC
VPCはAWSのドキュメント等では

>Amazon Virtual Private Cloud (Amazon VPC) では、AWS クラウドの論理的に分離されたセクションをプロビジョニングし、お客様が定義した仮想ネットワーク内の AWS リソースを起動することができます

なんて記載がありますが、簡単に例えると、**新しく自分だけの新しい国を作成できる!!**
と思ってください。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/240644/0d5d432e-6935-004f-3ceb-8cf18a0d421b.png)

最初VPCの作成画面で「IPv4 CIDR ブロック」に10.0.0.0/16みたいな
よくわからんことを入力すると思いますが、これは**「この国に何人住めるか土地の大きさを決める」**ということです。

ネットワークの世界では平方メートルみたいな単位は使わずに**IPアドレス + 「/16」**のような記載で大きさを決めます。
詳しくはCIDR/サブネットマスクなどで調べてみてください。
ちなみに/16で作成すると65536人がこの国に住むことができます。

>http://wa3.i-3-i.info/word11989.html

##サブネット
サブネットは国の中で、**都道府県**を作成していくイメージです。
VPCで決めた土地の大きさの内、役割に応じてサブネット(都道府県)を分割していきます。

首都を1つだけでもいいですし、いっぱい分割しても問題ないです。
ただし、VPCで決めた土地の大きさ以上に分割はできません。

分割方法はここら辺を読んでみるとよいかもしれません。

>http://wa3.i-3-i.info/word11973.html

下記は4つのサブネットに分割してみた絵です。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/240644/1e03cef7-0ece-10a3-51da-d327df5337d8.png)
ちなみに/24で各都道府県を分割すると、1つの都道府県に256人が住むことができます。

##インターネットゲートウェイ
VPC **(Qiita国)**は、外国へ出ることも、外国から入国することもできません。
なぜかというと空港がないからです。

皆さんが住んでいるであろう日本に入出国するにはインターネットゲートウェイ**(空港)**
の設置が必要です。

VPC **(Qiita国)**は作成時には空港がありません。
つまりVPC作成時、国は**鎖国状態**です。
VPC **(Qiita国)**内部は基本的に自由に行き来できますが、外国に行くには飛行機に乗る必要があるので空港が必要です。
黒船来航してください。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/240644/5326afc3-916d-a346-4250-886e1731172b.png)

EC2は今回人間役として登場してもらいます。

##パブリックIPアドレス
入出国するには、パブリックIPアドレス**(パスポート)**が必要です。

VPC **(Qiita国)**内ではプライベートIPアドレスを持ってさえいれば、自由に行き来できますが
インターネットゲートウェイ**(空港)**から外国へ出国するにはパブリックIPアドレス**(パスポート)**を持っていることが必須です。

プライベートIPアドレスはVPC(Qiita国)に生まれた人には全員配布されると思ってください。
パブリックIPアドレス**(パスポート)**の入手には手続きが要ります。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/240644/2e44b8f9-9846-a265-48e7-0f56fba322af.png)

EC2(A君)はパブリックIPアドレス(パスポート)をもっているので
インターネットゲートウェイ(空港)から日本にいる自分と接続(会話)できます。

##ルートテーブル
ルートテーブルはVPC **(Qiita国)**の住人が迷わず目的地にたどり着けるようにするための**看板**です。
サブネット**(都道府県)**ごとに看板が必要です。

基本的にQiita国内は迷わずにたどり着けるようになっていますが、
インターネットゲートウェイ**(空港)**を作成したので、新しくルートテーブル**(看板)**に記載してあげないといけません。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/240644/f5cf1059-aec9-b295-613b-afed647af651.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/240644/946667a9-a35c-666b-f88b-997bdf60cd02.png)

##セキュリティグループ
VPC **(Qiita国)**の住人には**心のバリア**(ATフィールド)があります(ごめんなさい)
住人と会話するには、会話するための許可を与えてあげないといけません。
最初は住人は他人からの会話は一切受け付けてくれないので、SSH接続するには[22番ポート]からの許可を設定してあげます。


![image.png](https://qiita-image-store.s3.amazonaws.com/0/240644/66b3f644-a6f1-b8a0-aa11-be680a92a613.png)
Qiita国の住人の心のバリアは分厚いので、気を付けましょう。


##まとめ

・VPC =　自分だけの国
・サブネット = 都道府県
・パブリックIPアドレス = パスポート
・ルートテーブル = 看板
・インターネットゲートウェイ = 空港
・セキュリティグループ = 心のバリア

最後のセキュリティグループだけすごい雑ですみません。。。

入門者にはぜひ身近なもので例えると、動きがわかりやすくてよいかもしれません。
人によるかもしれませんが自分はこんな風にたとえがあるとすごい理解しやすいのでだけかの役に立てればうれしいです。

以上です。