scramble cadenza

技術ネタのガラクタ置き場

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 なら実際に手を動かしながら試せる環境があるし、概要の把握という意味では理解が進みやすい。

本当はもっと書きたかったのだけど、一旦ここまで。