VPC・CIDR・サブネット・ルートテーブルの基本を理解する

  • URLをコピーしました!

AWSでEC2やRDSなどを利用するとき、 ネットワークの土台となるのが Amazon VPC(Virtual Private Cloud)です。

AWS初級では、VPCやCIDRについて基本的な考え方を学びました。 ここからのAWS中級では、実際にAWS環境を構成することを意識しながら、 それぞれの仕組みをもう一段詳しく理解していきます。

VPCはどこまでの範囲?
CIDRは何のために設定する?
なぜサブネットへ分割するの?

この3つの関係を理解すると、 この先に登場する ルートテーブル・Internet Gateway・NAT Gateway・EC2 などの構成も理解しやすくなります。

☁ AWS INTERMEDIATE

この記事はAWS中級講座のレッスン1です。 初級で学んだ知識を使いながら、 実際のAWS構成を理解していきます。

AWS中級講座を見る →
LESSON GOAL この記事のゴール

VPC・CIDR・サブネットの関係を理解し、 AWS上にネットワークを作成するときの 基本的な設計イメージを持てるようになることを目指します。

目次

Amazon VPCとは?

Amazon VPC(Virtual Private Cloud)は、 AWS上に自分専用の仮想ネットワークを作成できるサービスです。

EC2などのAWSリソースを配置するための ネットワーク空間と考えると分かりやすいでしょう。

AMAZON VPC AWS上の仮想ネットワーク
SERVER EC2
DATABASE RDS
LOAD BALANCER ELB

オンプレミスでは、 ルーターやスイッチなどを使ってネットワークを構築し、 その中へサーバーを配置します。

AWSでは物理的なネットワーク機器を自分で用意する代わりに、 VPCを作成し、その中へAWSリソースを配置していきます。

VPC = AWS上に作る大きな仮想ネットワーク

VPCとリージョン・AZの関係

VPCを理解するときに重要なのが、 リージョンとアベイラビリティゾーン(AZ)との関係 です。

VPCはリージョン単位で作成され、 そのリージョン内にある複数のAZを利用できます。

REGION 東京リージョン
VPC 10.0.0.0/16
AZ-A Subnet-A 10.0.1.0/24
AZ-C Subnet-C 10.0.2.0/24

ここで重要なのが、 VPCとサブネットでは範囲が異なることです。

VPC リージョン

リージョン内の複数AZを利用できる

VS
SUBNET 1つのAZ

1つのサブネットは1つのAZに所属する

IMPORTANT VPCは複数AZを利用できるが、サブネットは1つのAZに所属する

高可用性を考えて複数AZへEC2などを配置する場合は、 それぞれのAZにサブネットを作成します。

CIDRとは?

VPCを作成するときは、 そのVPCで使用する IPアドレスの範囲を決めます。

その範囲を表すために使用するのが CIDR(Classless Inter-Domain Routing)です。

VPC CIDR 10.0.0.0/16

このVPCで利用するIPv4アドレスの範囲

たとえば、 VPCへ 10.0.0.0/16 を設定した場合、 この範囲の中からサブネットへIPアドレス範囲を割り当てていきます。

CIDRの「/16」「/24」は何を表す?

IPv4アドレスは 32ビットで構成されています。

CIDRの /16や/24は、 先頭から何ビットをネットワーク部分として扱うかを表しています。

LARGE NETWORK 10.0.0.0/16 65,536個のIPv4アドレス
SMALL NETWORK 10.0.1.0/24 256個のIPv4アドレス
/ の数字が小さい → ネットワークは大きい / の数字が大きい → ネットワークは小さい

AWS中級ではCIDRを見たときに、 正確なビット計算がすぐできなくても、 まずは 「どのくらいのネットワーク範囲なのか」 をイメージできることが重要です。

VPCではプライベートIPアドレスを利用する

VPCを設計するときは、 一般的にプライベートIPv4アドレスの範囲を利用します。

PRIVATE RANGE 10.0.0.0/8
PRIVATE RANGE 172.16.0.0/12
PRIVATE RANGE 192.168.0.0/16

たとえばAWS環境では、 次のようにVPCを設計できます。

EXAMPLE VPC:10.0.0.0/16

この大きなネットワークを、 用途やAZごとにサブネットへ分割していきます。

サブネットとは?

サブネットとは、 VPCへ割り当てたIPアドレス範囲を さらに小さなネットワークへ分割したものです。

VPC 10.0.0.0/16
SUBNET A 10.0.1.0/24
SUBNET B 10.0.2.0/24
SUBNET C 10.0.3.0/24
SUBNET D 10.0.4.0/24

つまり、 最初にVPCで大きなネットワーク範囲を確保し、 その中を用途に応じてサブネットへ分割します。

VPC = 大きなネットワーク サブネット = VPCを分割した小さなネットワーク

なぜサブネットへ分割するの?

では、 なぜVPCをそのまま利用せず、 わざわざサブネットへ分割するのでしょうか。

大きな理由の1つが、 役割や配置場所ごとにネットワークを整理するためです。

AZ-A Webサーバー 10.0.1.0/24
AZ-C Webサーバー 10.0.2.0/24
AZ-A DBサーバー 10.0.11.0/24
AZ-C DBサーバー 10.0.12.0/24

このように分割しておくことで、 AZ・用途・通信経路 などに応じてネットワークを整理できます。

DESIGN 「何を置くか」「どのAZへ置くか」を考えてサブネットを分ける

実際のAWS構成では、 Webサーバー用、データベース用など、 リソースの役割に応じてサブネットを設計します。

サブネットのCIDRにはルールがある

サブネットのCIDRを決めるときには、 いくつか重要なルールがあります。

① VPCのCIDR範囲内にする

サブネットのCIDRは、 VPCへ割り当てたCIDRの範囲内でなければなりません。

✓ OK VPC:10.0.0.0/16

Subnet:10.0.1.0/24

× NG VPC:10.0.0.0/16

Subnet:192.168.1.0/24

② サブネット同士のCIDRを重複させない

同じVPC内のサブネットでは、 IPアドレス範囲を重複させることはできません。

✓ OK 10.0.1.0/24

10.0.2.0/24
× NG 10.0.1.0/24

10.0.1.0/24

AWSでは5つのIPv4アドレスが予約される

AWSのサブネットでは、 CIDRに含まれるすべてのIPv4アドレスを EC2などへ割り当てられるわけではありません。

各サブネットでは、 最初の4つと最後の1つ、 合計5つのIPv4アドレスがAWSによって予約されます。

SUBNET 10.0.1.0/24

10.0.1.0 ネットワークアドレス

10.0.1.1 VPCルーター

10.0.1.2 DNS用

10.0.1.3 AWS予約

10.0.1.255 予約

/24 = 256個 AWSで利用可能 = 251個

実際のAWS構成を考えてみよう

ここまでの知識を使って、 2つのAZを利用するAWS環境を考えてみましょう。

VPC 10.0.0.0/16
AZ-A
SUBNET 10.0.1.0/24 Web
SUBNET 10.0.11.0/24 Database
AZ-C
SUBNET 10.0.2.0/24 Web
SUBNET 10.0.12.0/24 Database

この構成では、 1つのVPCの中に4つのサブネットを作成しています。

01

VPC全体は 10.0.0.0/16

02

2つのAZを利用して 可用性を高める

03

Web用とDatabase用で サブネットを分ける

理解度チェック:サブネットを配置してみよう

次のVPCへ新しいサブネットを作成するとします。

VPC DESIGN

どのCIDRなら作成できる?

VPC CIDR 10.0.0.0/16

すでに次のサブネットがあります。

10.0.1.0/24 10.0.2.0/24

新しく追加できるサブネットを選んでください。

CIDRのルールを考えてみましょう

VPCの範囲内で、既存サブネットと重複していないCIDRを選びます。

サブネットを作っただけでは通信経路は決まらない

ここまでで、 VPCの中をサブネットへ分割できるようになりました。

しかし、 ネットワークを分割しただけでは、 通信をどこへ転送するのか というルールがまだありません。

SUBNET 10.0.1.0/24
WHERE? どこへ送る?

AWSでは、この通信経路を決めるために ルートテーブル(Route Table) を利用します。

NEXT LESSON 次はVPCのルートテーブルを理解する

Destination・Target・localルートなどを確認しながら、 VPC内の通信がどのように転送されるのかを学習します。

確認問題:VPC・CIDR・サブネット

QUESTION 01

VPCとサブネットの範囲として正しいものはどれですか?

正解:B

VPCはリージョン内の複数AZを利用できますが、 1つのサブネットは1つのAZに所属します。

QUESTION 02

10.0.0.0/16のVPCに作成できるサブネットはどれですか?

正解:A

サブネットのCIDRは、 VPCへ割り当てられたCIDRの範囲内である必要があります。

QUESTION 03

AWSの/24サブネットで利用可能なIPv4アドレスはいくつですか?

正解:C

/24には256個のIPv4アドレスがありますが、 AWSでは5つが予約されるため251個を利用できます。

YOUR SCORE 0 / 3

3問に挑戦してみましょう。

まとめ

01

VPCはAWS上に作成する 仮想ネットワーク

02

CIDRによって VPCやサブネットのIPアドレス範囲を表す

03

サブネットは VPCのIPアドレス範囲を分割したネットワーク

04

VPCは複数AZを利用できるが、 1つのサブネットは1つのAZに所属する

05

AWSでは各サブネットの 5つのIPv4アドレスが予約される

NEXT LESSON AWS INTERMEDIATE 02

VPCのルートテーブルを理解する

VPCとサブネットを作成したら、 次は「通信をどこへ送るのか」を決める仕組みを学びます。

次の記事では、 Destination・Target・localルートなど、 AWSネットワークの通信経路を理解するために重要な ルートテーブルを詳しく見ていきます。

VPCのルートテーブルを理解する
AWS INTERMEDIATE

AWS中級講座へ戻る

AWS中級講座の記事一覧から、 学習したいレッスンを確認できます。

← AWS中級講座へ戻る
目次