VPCとサブネットのアドレス設計
Amazon VPCとサブネットの役割、CIDRによるIPv4アドレス設計、パブリックIPv4アドレスの種類と料金を解説します。
VPCとサブネットのアドレス設計
**Amazon VPC(Virtual Private Cloud)**は、AWSリージョン内に作成する論理的に分離されたネットワークです。VPCを作成するときにIPアドレス範囲を指定し、その範囲の中にサブネットを切り分けて、EC2インスタンスやデータベースなどのリソースを配置します。用途や接続要件に応じてVPCを分ければ、たとえば開発環境と本番環境でネットワークとアドレス範囲を別々に管理できます。
VPCの設計では、単に今使うリソース分のアドレスを確保するだけでなく、AZをまたいだ配置、将来のサブネット追加、オンプレミスネットワークとの接続、VPC間接続でアドレスが重複しないことも考慮します。VPCのアドレス範囲を後から追加することはできますが、最初の範囲を無計画に決めると後の接続や拡張を難しくします。
VPCとサブネットの範囲
VPCはリージョン単位のリソースです。同じVPCはそのリージョン内の複数のアベイラビリティゾーン(AZ)で利用できます。一方、サブネットは1つのAZに属します。複数AZにアプリケーションを分散する場合は、各AZにそれぞれサブネットを作り、処理を配置します。単一AZ内だけにサブネットを用意した構成では、そのAZの障害時に別AZのサブネットへ自動的に切り替わるわけではありません。
サブネットはVPCのCIDR範囲の一部を割り当てた論理的なアドレス空間です。サブネットを作るときに所属AZとCIDRを指定し、その範囲からリソースやネットワークインターフェイスにプライベートIPアドレスが割り当てられます。サービスによっては、アプリケーションのリソースだけでなく、サービスが作成するネットワークインターフェイスもサブネット内のIPアドレスを使います。そのため、必要なアドレス数には余裕を持たせます。
AWSはサブネットに関連付けるルートテーブルやネットワークACLを提供します。これらはサブネットの通信経路と通過可能な通信を管理する要素です。AWS内部のネットワーク転送基盤が通信を処理するため、利用者がサブネットごとに仮想ルーターの機器を作成するわけではありません。ルートテーブルはサブネット単位で関連付けられ、ネットワークACLもサブネット単位で適用されます。
1つのVPCに作成できるサブネット数にはクォータがあります。一般的な初期クォータはVPCあたり200サブネットで、必要に応じてService Quotasから引き上げを申請できます。増加できる上限や条件はアカウント、リージョン、現在のAWSクォータに従います。多数のAZや環境にサブネットを展開する場合は、サブネット数のクォータも計画に含めます。
CIDRでIPアドレスを分割する
**CIDR(Classless Inter-Domain Routing)**は、IPアドレスとプレフィックス長を組み合わせてネットワーク範囲を表す記法です。従来のクラスA・B・Cの固定的な区分に頼らず、必要な大きさのネットワークを表せます。たとえば 172.21.8.0/24 の /24 は、左から24ビットをネットワーク部として扱うことを示します。IPv4は合計32ビットなので、残り8ビットがアドレス範囲内のホスト部となり、合計アドレス数は 2^(32-24) = 256 です。
プレフィックス長の数字が1増えるとネットワーク部が1ビット長くなり、含まれるアドレス数は半分になります。逆に数字が1減ると範囲は2倍です。たとえば /23 は /24 の2倍、/25 は /24 の半分のアドレスを含みます。この関係を使ってVPC全体の範囲から、役割ごとの小さなサブネットを割り当てます。
AWSのIPv4 VPC CIDRブロックとサブネットCIDRは、通常 /16 から /28 の範囲で指定します。/16 は65,536個、/28 は16個のIPv4アドレスを含みます。ただし、サブネット内の全アドレスをリソースへ割り当てられるわけではありません。AWSは各サブネットで先頭の4アドレスと末尾の1アドレスを予約し、ネットワーク用途に使います。したがって /24 のサブネットには256個のアドレスが含まれますが、利用者が割り当てられるのは251個です。最小の /28 では16個中11個を割り当てられます。
AWSがIPv4サブネット内で予約するアドレスは次のとおりです。
| サブネット内の位置 | 用途 |
|---|---|
| 最初のアドレス | ネットワークアドレス |
| 2番目のアドレス | VPCルーター |
| 3番目のアドレス | Amazon提供DNS |
| 4番目のアドレス | 将来の利用のために予約 |
| 最後のアドレス | ネットワークブロードキャスト用に予約 |
AWSではIPv4ブロードキャストはサポートされませんが、最後のアドレスは予約されたままで、ホストへ割り当てられません。サブネットの大きさを見積もるときは、CIDRの総アドレス数からこの5個を差し引いて考えます。
VPCのCIDRを計画する
VPCを作成した後、元のCIDRブロックのプレフィックス長を変更して既存範囲を広げることはできません。要件に応じて、条件に合う追加CIDRブロックをVPCに関連付ける方法があります。追加CIDRにもサイズや重複に関する制約があり、既存VPC、接続先VPC、オンプレミスネットワークとの組み合わせも確認が必要です。
社内ネットワークや他のVPCと接続する予定があるなら、アドレス範囲の重複を避けることが重要です。VPCピアリングなどでは、通信するVPCのCIDRが重複していると通常のルーティングで接続できません。ハイブリッド接続でも、同じアドレス範囲を両側で使うと宛先を区別できなくなります。組織内の既存ネットワークと将来の接続先を整理してから、VPCとサブネットの範囲を決めます。
プライベートネットワークのIPv4アドレスには、RFC 1918で定められた範囲を使う設計が一般的です。これらのアドレスはインターネット上で通常の宛先としてルーティングされないため、内部ネットワークで使えます。ただし、RFC 1918の範囲なら重複を気にしなくてよいという意味ではありません。複数のプライベートネットワークを接続するなら、同じプライベート範囲を重複して利用しないように管理します。特別な要件でRFC 1918以外の範囲を使う場合も、AWS側のCIDR制約と到達性を確認し、インターネット上で自組織が所有していないアドレスを内部用に流用しないよう注意します。
アドレスは有限なので、過剰に広い範囲を無目的に割り当てず、必要な拡張余地と実際に消費する量のバランスを取ります。小さすぎるサブネットでは、起動するインスタンスやサービス管理用インターフェイスのためのアドレスが不足し、デプロイやスケールアウトができなくなることがあります。大きさの異なるCIDRを適切に組み合わせ、サブネットの用途、AZ、環境ごとに計画しておくと、将来の変更を整理しやすくなります。
パブリックサブネットとプライベートサブネット
サブネットの「パブリック」「プライベート」は、サブネット自体に異なる種類のIPアドレスがあるという意味ではなく、主にルートテーブルがどこへ通信を転送するかを表す呼び方です。
- パブリックサブネットは、関連付けられたルートテーブルにインターネットゲートウェイ(IGW)を向くルートを持ちます。サブネットに置いただけで全リソースにパブリックIPアドレスが自動付与されるわけではありません。インターネットから直接到達させるリソースには、パブリックIPv4アドレスまたはElastic IPを割り当て、セキュリティグループ、ネットワークACL、OSのファイアウォールなどでも必要な通信を許可します。
- プライベートサブネットは、リソースからIGWへ直接向かうルートを持ちません。インターネットから直接接続させないアプリケーションやデータストアを配置します。ソフトウェア更新などのためにIPv4インターネットへの外向き通信が必要であれば、NATゲートウェイなどを経由するルートを用意できます。NATを使う場合、リソース自身にパブリックIPv4アドレスを付けずに外向き通信できます。
したがって「インターネット通信にはパブリックIPが必要」という説明は、インターネット上の相手とリソースが直接通信する場合に当てはまります。プライベートサブネットからNATを介して外向き通信する構成では、通信の送信元としてNATゲートウェイのElastic IPが使われ、プライベート側のリソースにはパブリックIPv4アドレスは不要です。IGWへの経路、パブリックIPv4アドレス、通信を許可するルールが揃っているかを確認して到達性を判断します。
VPC内のリソースにIPアドレスが割り当てられることで、他のリソースや接続先がそのネットワーク上の宛先を指定できます。しかし、IPアドレスがあることだけで接続が成立するわけではありません。宛先までの経路があり、セキュリティグループやネットワークACLなどが通信を許可している必要があります。VPC間の経路やIGW・NATゲートウェイの使い分けは、AWSネットワークの構成と接続の基本も参照してください。
パブリックIPv4アドレスの種類
EC2インスタンスなどのリソースで利用する代表的なパブリックIPv4アドレスには、Elastic IPアドレスと自動割り当てパブリックIPv4アドレスがあります。どちらもインターネット向けのIPv4到達性に関わりますが、アドレスの保持方法とリソースの停止後の扱いが異なります。
Elastic IPアドレス
**Elastic IPアドレス(EIP)**は、AWSアカウントに割り当てて保持する静的なパブリックIPv4アドレスです。対応するネットワークインターフェイスやインスタンスに関連付け、必要であれば別の対応リソースへ付け替えられます。インスタンスを停止・起動しても、EIPそのものはアカウントに保持されるため、接続先に知らせるアドレスを固定したい場合などに使います。
EIPはリージョン単位のリソースであり、別リージョンにそのまま移動できません。また、EIPはIPv4アドレスです。インスタンスを終了すると関連付けが解除されることがありますが、EIPの割り当て自体は自動的に解放されません。使わなくなったEIPはアカウントに残って課金対象になり得るため、不要な割り当ては明示的に解放します。
自動割り当てパブリックIPv4アドレス
自動割り当てパブリックIPv4アドレスは、起動時などにAWSから割り当てられるパブリックIPv4アドレスです。対象のサブネットで自動割り当てを有効にしているか、起動設定で明示している必要があります。パブリックサブネットに配置したリソースすべてへ、無条件に自動割り当てられるわけではありません。
EC2インスタンスを停止または終了すると、自動割り当てのパブリックIPv4アドレスは解放されます。停止後に再び起動したときには、以前と異なるアドレスが割り当てられる可能性があります。固定アドレスが必要であればEIPなどを検討します。自動割り当てアドレスは特定のアカウントに保持して再利用するアドレスではなく、インスタンスの状態に伴って割り当て・解放される点がEIPとの違いです。
パブリックIPv4アドレスの料金
AWSは2024年2月1日以降、利用形態や関連付けの有無にかかわらず、パブリックIPv4アドレスを利用時間に応じた料金の対象としています。EC2の自動割り当てアドレスやEIPのほか、ロードバランサー、NATゲートウェイなど、AWSサービスが使用するパブリックIPv4アドレスも対象になり得ます。AWSが各サービスに使用できるIPv4アドレスは有限であり、不要なパブリックIPv4アドレスを保持しないことは、コスト管理とアドレス資源の効率利用の両面で大切です。
実際の単価、課金条件、リージョンやサービスごとの扱い、無料利用枠は更新されることがあります。料金を見積もる際は、利用サービスとパブリックIPv4アドレスの数・利用時間を特定し、Amazon VPCの料金ページおよびAmazon EC2の料金ページで最新情報を確認してください。無料利用枠の対象となる場合でも、アカウントの適格条件、利用期間、対象量が適用されるため、無料と決めつけず請求情報を確認します。
学習の要点
- VPCはリージョン、サブネットはAZ:VPCをリージョンに作り、その中にAZごとのサブネットを配置する。複数AZで可用性を高めるには、各AZのサブネットとアプリケーションの配置を設計する。
- CIDRはネットワーク範囲の表記:IPv4の
/nはネットワーク部のビット数を表す。数字が1増えるとアドレス総数は半分になる。AWSでは通常/16から/28を使い、各サブネットで5アドレスが予約される。 - 重複しないアドレス計画:RFC 1918のプライベート範囲を基本に、VPC間やオンプレミス間の接続、将来追加するサブネットやサービス用インターフェイスを考慮する。既存CIDRのサイズ変更ではなく、追加CIDRの関連付けが必要になる場合がある。
- サブネットの種類はルートで決まる:IGWを向くルートを持つとパブリックサブネットとして使えるが、リソースには別途パブリックIPv4アドレスが必要。プライベートリソースの外向き通信にはNATゲートウェイなどを利用できる。
- EIPと自動割り当てIPv4を区別する:EIPはアカウントが保持するリージョン単位のIPv4アドレスで、停止後も保持される。自動割り当てアドレスは停止・終了時に解放され、再起動時に同じアドレスとは限らない。
- パブリックIPv4は料金を確認する:2024年2月から利用時間ベースの課金対象となった。単価や無料利用枠は最新の公式料金を参照する。
公式ドキュメント
重要ポイント
- ▸VPCはリージョン内の論理ネットワークで、サブネットは1つのアベイラビリティゾーンに属する
- ▸VPCとサブネットのIPv4 CIDRは /16 から /28 の範囲で設計し、各サブネットではAWSが5個のアドレスを予約する
- ▸CIDRの重複を避け、VPCピアリングやオンプレミス接続、将来の拡張を考えてアドレスを割り当てる
- ▸パブリックサブネットはIGWへのルートを持つサブネットであり、リソースには別途パブリックIPv4アドレスが必要
- ▸Elastic IPはアカウントで保持するリージョン単位の静的IPv4アドレスで、自動割り当てIPv4とはライフサイクルが異なる
- ▸パブリックIPv4アドレスは利用時間に応じて課金対象となるため、AWSの最新料金と無料利用枠を確認する
このトピックの学習を完了しますか?
完了状態はいつでも切り替えられます
同じサービスの関連トピック
VPC とネットワーク に関連するトピックを続けて確認できます。