VPC についてまとめ
イントロ
VPC 周りの知識が曖昧なままここまで来てしまったので、整理する。
なんとなく知っていた用語や単語について、一般的な概要、及び AWS ではどういう特徴をもっているか、を大雑把にまとめたもの。
VPC
概要
Virtual Private Cloud の略。Vrtial Private Cloud とは、クラウド環境に構築された仮想的なプライベートネットワークのこと。
VPC 自体が 1 つの IP アドレスを持っていて、VPC は沢山の private ip を持っている。
そんなインターネット上のでっかい領域を指す。
AWSでは
- VPC は CIDR =
x.x.x.x/16
~x.x.x.x/28
の間で作成可能 - デフォルトの VPC というものが存在する
- CIDR は一度作成したら変更不可
- 後からレンジを変えられないので注意
- VPC 削除のタイミングで、関連のAWS リソースは削除されてしまう
- subnet とか Internet Gateway とか色々。
- 削除して作りなおすと、全て作り直しになってしまうので、CIDR は余裕を持たせるのが基本
VPC の作成方法
VPC とサブネット - Amazon Virtual Private Cloud
インターネットゲートウェイ
インターネットゲートウェイ - Amazon Virtual Private Cloud
- VPC のルーティングを各サブネットのルーティングテーブルに追加できる
- NAT 変換を行い、public IP を持つ instance がインターネットに接続する
という機能を持つ。
AWS では
- デフォルトの VPC というものが存在する。
- インターネットゲートウェイがデフォルトの VPC にアタッチされている
- デフォルトのサブネットの中で起動したインスタンスは、public IP が付与される
- public の IP が付与されると、インターネットゲートウェイが NAT 変換を行える。
- つまりインターネットに接続できる
というわけで、何も考えずに EC2 インスタンスをポチると、外部と通信することができるようになるのは、AWS の素晴らしい挙動によるもの。
インターネットゲートウェイの作成
インターネットゲートウェイ - Amazon Virtual Private Cloud
ルートテーブル
ルートテーブル - Amazon Virtual Private Cloud
インターネットトラフィックがどこからどう流れていくか、を記した経路のこと。
どこからどこにトラフィックを流す、という対応表で表現される。
AWS では
ルートテーブル - Amazon Virtual Private Cloud
にまとめられてる。全部重要だけど最低限の機能としては次の通り。
- VPC を作成すると、ルートテーブルが自動で割り振られて、インターネットゲートウェイへのルートが追加されている。これを メインルートテーブル と呼ぶ
- サブネットを特定のルートテーブルに紐付けないと、メインルートテーブルに紐付けられる。
- つまり作成したサブネットはデフォルトでインターネットに通信できる。
- 新たに追加する場合、ルートは CIDR で指定する
ルートテーブルを操作する
ルートテーブル - Amazon Virtual Private Cloud
サブネット
VPC の中で作成するグループのこと。 VPC が持つ IP address の範囲を超えない程度に、自由にグループ化可能。
VPC が都道府県とするなら、サブネットは市区町村みたいな立ち位置。
サブネットの性質上、ルートテーブルに関連付けることにより、初めてサブネット内にトラフィックを流すことができる。
{public,private} サブネット
public サブネット
インターネットゲートウェイにルーティングされているサブネットのこと。 public サブネット内に作成された EC2 インスタンスが public ip もしくは elastic ip を持っている場合、インターネットに接続することができる。
private サブネット
インターネットゲートウェイに routing されていないサブネットのこと。 このサブネット内に EC2 インスタンスを作成しても、通常はインターネットに接続できない。 インターネットに接続するためには、NAT gateway を構築したり、インターネットゲートウェイをルートテーブルに追加する必要がある。
予約された ip address
- 10.0.0.0
- ネットワークアドレス。ネットワーク自身を表すアドレス
- 10.0.0.255
- ネットワークブロードキャストアドレス。ローカルネットワークのホスト全てに通信するためのアドレス
これ以外にも AWS が独自に予約しているアドレスが存在する。
AWS では
- AZ(Availability zone) にまたがってサブネットを構築することはできない
AWS が予約している ip address
参考
まとめ
AWS のドキュメントは入門書として優秀。 勿論周辺情報を理解するためには、別の文献や本で知識を補わないとダメだけど、AWS なら実際に手を動かしながら試せる環境があるし、概要の把握という意味では理解が進みやすい。
本当はもっと書きたかったのだけど、一旦ここまで。