VPCとは
Amazon VPC(Virtual Private Cloud)は、AWS上に独立したプライベートネットワーク空間を作成できるサービスのことです。
通常AWS上のハードウェアやネットワークインフラストラクチャはユーザー全体で共有されていますが、「VPC」と呼ばれる仮想ネットワークを作成することで、論理的に分割された、特定のユーザーだけが利用できるプライベートネットワークを構築することができます。これにより、ネットワークのセキュリティを確保することができます。
ネットワーク設計
サービスを構築する上で本番環境のほかに開発やステージング環境を作りますが、環境の分け方は次のいずれかになることが多いと思います。
- 1つのVPCに全ての環境を入れる
- 環境ごとにVPCを分ける
- 環境ごとにAWSアカウントを分ける
2のパターンで設計する場合、VPCをdevelopment、staging、productionという名称で3つ作成します。その際に以下のように2クオテット目が連番になるように設定すると分かりやすくなります。
環境 | IP |
---|---|
production | 10.0.0.0/16 |
staging | 10.1.0.0/16 |
deveolopment | 10.2.0.0/16 |
IPレンジ設計
以下の理由から、VPCのIPアドレス範囲は、既存ネットワークのIPアドレス範囲を重複しないように構築します。
- VPCのCIDR(IPアドレス)は後から変更不可
- 変更にはVPC上に構築されたものを削除し再構築が必要
- 接続要件が無くても、数年後の要件変更に備える
サブネット
サブネットとは、VPC内に構成するネットワークセグメントのことです。セグメント分割することで、部署ごとに独自のネットワーク設定を決めてセキュリティを向上したり、また、あるサブネットに障害が起きた時に違うサブネットを利用できるなどリスク分散することができます。
ユーザーはサブネットを作成する際、どのアベイラビリティーゾーンでサブネットを構成するかを指定する必要があります。
サブネットは1つのVPC内に複数作成することができますが、VPCのIPアドレスの範囲内でCIDRを設定する必要があります。
※アベイラビリティーゾーン(AZ):リージョン内にある複数のデータセンターの集合体であり、77箇所存在する(2020年12月時点)
パブリックサブネット
パブリックサブネットは、インターネットとの通信が可能なサブネットのことです。
もう少し具体的にいうと、ルートテーブル内のデフォルトゲートウェイ(0.0.0.0/0)へのルーティングにインターネットゲートウェイを指定したサブネットです。
※インターネットゲートウェイ(IGW):VPC内のリソースからインターネットへアクセスするためのゲートウェイのことです。インターネットゲートウェイをVPCにアタッチすることで、VPC内のリソースからインターネットへアクセスすることができます。
プライベートサブネット
プライベートサブネットはインターネットと通信ができないサブネットのことです。
サブネットをインターネット接続の可否によって分けることにより、ネットワークのセキュリティを向上させることができます。
補足:IPアドレスの基礎知識
IPアドレスとは
PCやサーバなど、TCP/IPで通信する機器を識別するためのアドレスのことです。現実世界で郵便物を配達する際に住所が必要なのと同じように、ネットワークの世界でもデータを特定の機器に届けるためにIPアドレスが必要になります。
IPアドレスの主な種類
IPアドレスはグローバル(パブリック)IPアドレスと、プライベートIPアドレスの2種類があります。
グローバル(パブリック)IPアドレスはインターネットに接続するために用いるIPアドレスで、他と重複しないように割り当てられます。そのため、お名前.com等で同じドメインを取得することはできないのです。
一方プライベートアドレスは組織や家庭内で用いられるIPアドレスです。こちらは全世界に公開されているわけではないので、ある組織と別の組織で重複していても問題ありません。要は組織や家庭内などの1つのネットワーク内で重複せず、コンピューターが識別できればいいのです。
ネットワーク部とホスト部
IPアドレスは通常表記の他に、32ビットの整数値で表すことができます。この32ビットで表したIPアドレスは左側のネットワーク部と呼ばれる部分と、右側のホスト部と呼ばれる部分に分けることができます。
// 通常のIPアドレスの表記
203.0.113.43
// ビット列での表記
11001011000000000111000100101011
ネットワーク部は、どのネットワークなのか。ホスト部はそのネットワークの中のどのコンピューターなのか。ということを表しています。
IPアドレスのクラス
IPアドレスは、使用するネットワークの規模によってクラスA、クラスB、クラスCと3つのクラスに分かれています。それぞれ32ビット中の何ビットをネットワーク部に割り当てるかが規定されているので、それによって持つことのできるホスト数が違ってきます。
これらくのクラスは、以下のテーブルで示しているように、IPアドレスの最初の数字でクラスが分けられます。
IPアドレスの最初の文字 | クラス | 用途(ネットワークを構成するパソコンの台数) |
---|---|---|
0~127 | クラスA | 大規模ネットワーク用(最大16,777,214台) |
128~191 | クラスB | 中規模ネットワーク用(最大65,534台) |
192~223 | クラスC | 小規模ネットワーク用(最大254台) |
まとめ
AWS VPCの基礎の基礎をまとめてみました。何かご指摘等あればコメントいただけると嬉しいです。