AWSでEC2やRDSなどを利用するとき、 ネットワークの土台となるのが Amazon VPC(Virtual Private Cloud)です。
AWS初級では、VPCやCIDRについて基本的な考え方を学びました。 ここからのAWS中級では、実際にAWS環境を構成することを意識しながら、 それぞれの仕組みをもう一段詳しく理解していきます。
CIDRは何のために設定する?
なぜサブネットへ分割するの?
この3つの関係を理解すると、 この先に登場する ルートテーブル・Internet Gateway・NAT Gateway・EC2 などの構成も理解しやすくなります。
VPC・CIDR・サブネットの関係を理解し、 AWS上にネットワークを作成するときの 基本的な設計イメージを持てるようになることを目指します。
Amazon VPCとは?
Amazon VPC(Virtual Private Cloud)は、 AWS上に自分専用の仮想ネットワークを作成できるサービスです。
EC2などのAWSリソースを配置するための ネットワーク空間と考えると分かりやすいでしょう。
オンプレミスでは、 ルーターやスイッチなどを使ってネットワークを構築し、 その中へサーバーを配置します。
AWSでは物理的なネットワーク機器を自分で用意する代わりに、 VPCを作成し、その中へAWSリソースを配置していきます。
VPCとリージョン・AZの関係
VPCを理解するときに重要なのが、 リージョンとアベイラビリティゾーン(AZ)との関係 です。
VPCはリージョン単位で作成され、 そのリージョン内にある複数のAZを利用できます。
ここで重要なのが、 VPCとサブネットでは範囲が異なることです。
リージョン内の複数AZを利用できる
1つのサブネットは1つのAZに所属する
高可用性を考えて複数AZへEC2などを配置する場合は、 それぞれのAZにサブネットを作成します。
CIDRとは?
VPCを作成するときは、 そのVPCで使用する IPアドレスの範囲を決めます。
その範囲を表すために使用するのが CIDR(Classless Inter-Domain Routing)です。
このVPCで利用するIPv4アドレスの範囲
たとえば、 VPCへ 10.0.0.0/16 を設定した場合、 この範囲の中からサブネットへIPアドレス範囲を割り当てていきます。
CIDRの「/16」「/24」は何を表す?
IPv4アドレスは 32ビットで構成されています。
CIDRの /16や/24は、 先頭から何ビットをネットワーク部分として扱うかを表しています。
AWS中級ではCIDRを見たときに、 正確なビット計算がすぐできなくても、 まずは 「どのくらいのネットワーク範囲なのか」 をイメージできることが重要です。
VPCではプライベートIPアドレスを利用する
VPCを設計するときは、 一般的にプライベートIPv4アドレスの範囲を利用します。
たとえばAWS環境では、 次のようにVPCを設計できます。
この大きなネットワークを、 用途やAZごとにサブネットへ分割していきます。
サブネットとは?
サブネットとは、 VPCへ割り当てたIPアドレス範囲を さらに小さなネットワークへ分割したものです。
つまり、 最初にVPCで大きなネットワーク範囲を確保し、 その中を用途に応じてサブネットへ分割します。
なぜサブネットへ分割するの?
では、 なぜVPCをそのまま利用せず、 わざわざサブネットへ分割するのでしょうか。
大きな理由の1つが、 役割や配置場所ごとにネットワークを整理するためです。
このように分割しておくことで、 AZ・用途・通信経路 などに応じてネットワークを整理できます。
実際のAWS構成では、 Webサーバー用、データベース用など、 リソースの役割に応じてサブネットを設計します。
サブネットのCIDRにはルールがある
サブネットのCIDRを決めるときには、 いくつか重要なルールがあります。
① VPCのCIDR範囲内にする
サブネットのCIDRは、 VPCへ割り当てたCIDRの範囲内でなければなりません。
Subnet:10.0.1.0/24
Subnet:192.168.1.0/24
② サブネット同士のCIDRを重複させない
同じVPC内のサブネットでは、 IPアドレス範囲を重複させることはできません。
+
10.0.2.0/24+
10.0.1.0/24AWSでは5つのIPv4アドレスが予約される
AWSのサブネットでは、 CIDRに含まれるすべてのIPv4アドレスを EC2などへ割り当てられるわけではありません。
各サブネットでは、 最初の4つと最後の1つ、 合計5つのIPv4アドレスがAWSによって予約されます。
10.0.1.0
ネットワークアドレス
10.0.1.1
VPCルーター
10.0.1.2
DNS用
10.0.1.3
AWS予約
10.0.1.255
予約
実際のAWS構成を考えてみよう
ここまでの知識を使って、 2つのAZを利用するAWS環境を考えてみましょう。
この構成では、 1つのVPCの中に4つのサブネットを作成しています。
VPC全体は 10.0.0.0/16
2つのAZを利用して 可用性を高める
Web用とDatabase用で サブネットを分ける
理解度チェック:サブネットを配置してみよう
次のVPCへ新しいサブネットを作成するとします。
どのCIDRなら作成できる?
すでに次のサブネットがあります。
新しく追加できるサブネットを選んでください。
VPCの範囲内で、既存サブネットと重複していないCIDRを選びます。
サブネットを作っただけでは通信経路は決まらない
ここまでで、 VPCの中をサブネットへ分割できるようになりました。
しかし、 ネットワークを分割しただけでは、 通信をどこへ転送するのか というルールがまだありません。
AWSでは、この通信経路を決めるために ルートテーブル(Route Table) を利用します。
Destination・Target・localルートなどを確認しながら、 VPC内の通信がどのように転送されるのかを学習します。
確認問題:VPC・CIDR・サブネット
VPCとサブネットの範囲として正しいものはどれですか?
VPCはリージョン内の複数AZを利用できますが、 1つのサブネットは1つのAZに所属します。
10.0.0.0/16のVPCに作成できるサブネットはどれですか?
サブネットのCIDRは、 VPCへ割り当てられたCIDRの範囲内である必要があります。
AWSの/24サブネットで利用可能なIPv4アドレスはいくつですか?
/24には256個のIPv4アドレスがありますが、 AWSでは5つが予約されるため251個を利用できます。
3問に挑戦してみましょう。
まとめ
VPCはAWS上に作成する 仮想ネットワーク
CIDRによって VPCやサブネットのIPアドレス範囲を表す
サブネットは VPCのIPアドレス範囲を分割したネットワーク
VPCは複数AZを利用できるが、 1つのサブネットは1つのAZに所属する
AWSでは各サブネットの 5つのIPv4アドレスが予約される
VPCのルートテーブルを理解する
VPCとサブネットを作成したら、 次は「通信をどこへ送るのか」を決める仕組みを学びます。
次の記事では、 Destination・Target・localルートなど、 AWSネットワークの通信経路を理解するために重要な ルートテーブルを詳しく見ていきます。
VPCのルートテーブルを理解する →
