Open12

AWSネットワーク周りのメモ

ダン@HyperFormダン@HyperForm

基本的に、VPC自体の作成や使用は無料。
「VPN接続」や「トラフィックミラーリング」など、VPC内の特別なネットワーク機能を利用した場合には課金される。

ダン@HyperFormダン@HyperForm

VPC

AWS専用の仮想ネットワーク。

例えば家庭内でインターネットを利用する際、ルーターやゲートウェイなどのネットワーク機器が必要となる。
VPCはそれらの機器を仮想的に用意し、ネットワーク環境を構築できるサービス。

ダン@HyperFormダン@HyperForm

アベイラビリティゾーン(AZ)

リージョン内のデータセンター。
東京A、東京Bみたいな感じ。

ダン@HyperFormダン@HyperForm

VPCでよく使うコンポーネント

インターネットゲートウェイ(IGW)

インターネットからVPCにアクセスできるようにする出入り口。

サブネット

VPCという大きなネットワークのくくりの中に作る、小さいネットワーク。
インターネットと接続するサブネットをパブリックサブネット、遮断するサブネットをプライベートサブネットと呼ぶ。
あくまでIGWと繋がっているかどうかで呼び方が変わるだけで、サブネットの設定値としてプライベートやパブリックがあるわけではない。

ルートテーブル

サブネット内にあるインスタンス等がどこに通信にいくかのルールを定めたもの。
1つのサブネットに1つのルートテーブルを用意でき、指定がない場合はVPC作成時に自動生成されるメインルートテーブルがサブネットに割り当てられる。

Elastic IP

EC2のインスタンスに対して固定IPを割り当てるやつ。
独自ドメインのWebサイトを外部公開する場合などに使う。

NATゲートウェイ(NGW)

パブリックサブネットに設置し、
プライベートサブネット→パブリックサブネットに設置されたNGW→IGW
を通じて、プライベートサブネットから外部への通信ができるようにする。
中→外のアクセスはできるけど、外→中のアクセスは遮断したい時に使う。
プライベートIPとパブリックIPを多対1で変換する。

ダン@HyperFormダン@HyperForm

VPCを構築するとき、そのVPCが持つIPアドレスの範囲を決める必要がある。
VPCの中でEC2とかRDSとかいろいろ動かすので、それらに必要なIPアドレスを十分に確保できるような範囲を設定する。

ダン@HyperFormダン@HyperForm

CIDR

IPアドレスの範囲を簡潔に書く記法。
例えば172.10.0.0 ~ 172.10.255.255のIPアドレスの範囲はCIDR表記で172.10.0.0/16と表される。

172.10.0.0を2進数で書くと10101100.00001010.00000000.00000000
/16は、この2進数にしたIPアドレスの左から16個までが固定される、という意味。ネットマスクと呼ぶ。

https://tech-dive.xyz/2018/11/30/post-751/

https://www.softel.co.jp/labs/tools/network/

ダン@HyperFormダン@HyperForm

VPCで使えるIPアドレスの範囲

VPCで使うIPアドレスは、ネットワーク内のIPアドレスなので、グローバルIPではなくプライベートIP。
そしてプライベートIPアドレスは、以下の範囲から選ぶ必要がある。

CIDR IPの範囲
10.0.0.0/8 10.0.0.0 ~ 10.255.255.255
172.16.0.0/12 172.16.0.0 ~ 172.31.255.255
192.168.0.0/16 192.168.0.0 ~ 192.168.255.255
ダン@HyperFormダン@HyperForm

サブネットのCIDR(のネットマスク)の決め方

各サブネットのネットマスクを、VPCのネットマスクより大きくすることで、サブネットのIPアドレス範囲をVPCのIPアドレス範囲より小さくし、複数のサブネットを利用することができるようにする。

VPCのネットマスクが16の場合、サブネットのネットマスクには20(各サブネットで使えるIPが500個くらい)や24(各サブネットで使えるIPが4000個くらい)を使うことが多い。

3つのサブネットのネットマスクに20を設定する場合の例

CIDR IPアドレスの個数 IPアドレス範囲
VPC 172.31.0.0/16 65531 172.31.0.0 ~ 172.31.255.255
サブネット1 172.31.0.0/20 4091 172.31.0.0 ~ 172.31.15.255
サブネット2 172.31.16.0/20 4091 172.31.16.0 ~ 172.31.31.255
サブネット3 172.31.32.0/20 4091 172.31.32.0 ~ 172.31.47.255

※使えるIPアドレスはIPアドレスの範囲 -5

ダン@HyperFormダン@HyperForm

AWSにおけるIP0.0.0.0/0

すべてのIPという意味。

0.0.0.0のwikipedia的見解は以下

IPv4において、0.0.0.0は全ビットが0のIPアドレスであり、無効、不明、または適用外の対象を指定するために使用されるルーティング不可のメタアドレスである。このアドレスには、いくつかの特別な意味が割り当てられている。