メニュー
Amazon Virtual Private Cloud
ユーザーガイド

VPC とサブネット

Amazon Virtual Private Cloud (Amazon VPC) の使用を開始するには、VPC およびサブネットを作成します。Amazon VPC の概要については、「Amazon VPC とは?」を参照してください。

VPC とサブネットの基本

Virtual Private Cloud (VPC) は、AWS アカウント専用の仮想ネットワークです。VPC は、AWS クラウドの他の仮想ネットワークから論理的に切り離されており、AWS のリソース (例えば Amazon EC2 インスタンス) を VPC 内に起動できます。

VPC を作成するときに、その VPC に対して、IPv4 アドレスの範囲を Classless Inter-Domain Routing (CIDR) ブロックの形式で指定する必要があります (例: 10.0.0.0/16)。これは VPC のプライマリ CIDR ブロックです。CIDR 表記の詳細については、RFC 4632 を参照してください。

次の図は、IPv4 CIDR ブロックとメインルートテーブルがある新しい VPC を示しています。

 メインルートテーブルのある VPC

VPC は、同じリージョンのアベイラビリティーゾーンすべてにおよびます。VPC を作成したら、アベイラビリティーゾーンごとに 1 つ以上のサブネットを追加します。サブネットを作成する際、VPC CIDR ブロックのサブセットである、サブネットの CIDR ブロックを指定します。各サブネットが完全に 1 つのアベイラビリティーゾーン内に含まれている必要があります。1 つのサブネットが複数のゾーンにまたがることはできません。アベイラビリティゾーンとは、他のアベイラビリティーゾーンで発生した障害から切り離すために作られた場所です。個別のアベイラビリティーゾーンでインスタンスを起動することにより、1 つの場所で発生した障害からアプリケーションを保護できます。AWS では、各サブネットに固有の ID が割り当てられます。

さらに、オプションで IPv6 CIDR ブロックを VPC に割り当てて、IPv6 CIDR ブロックをサブネットに割り当てることができます。

次の図は、複数のアベイラビリティーゾーンにある複数のサブネットで設定された VPC を示しています。1A、1B、2A、および 3A は VPC のインスタンスです。IPv6 CIDR ブロックは VPC に関連付けられ、IPv6 CIDR ブロックはサブネット 1 に関連付けられます。インターネットゲートウェイはインターネットを介した通信を有効にし、仮想プライベートネットワーク (VPN) 接続は、企業ネットワークとの通信を有効にします。

 複数のアベイラビリティーゾーンを持つ VPC

サブネットのトラフィックがインターネットゲートウェイにルーティングされる場合、そのサブネットはパブリックサブネットと呼ばれます。この図では、サブネット 1 がパブリックサブネットです。パブリックサブネット内のインスタンスが IPv4 を介してインターネットと通信することが必要な場合は、そのインスタンスにパブリック IPv4 アドレスまたは Elastic IP アドレス (IPv4) が割り当てられている必要があります。パブリック IPv4 アドレスの詳細については、「パブリック IPv4 アドレス」を参照してください。パブリックサブネットのインスタンスに IPv6 を介してインターネットと通信させたい場合は、インスタンスに IPv6 アドレスが必要です。

インターネットゲートウェイへのルートがないサブネットは、プライベートサブネットと呼ばれます。この図では、サブネット 2 がプライベートサブネットです。

インターネットゲートウェイへのルートがなく、トラフィックが VPN 接続の仮想プライベートゲートウェイにルーティングされているサブネットは、VPN のみのサブネットと呼ばれます。この図では、サブネット 3 が VPN のみのサブネットです。現在、VPN 接続を介した IPv6 トラフィックはサポートされていません。

詳細については「シナリオと例」、「インターネットゲートウェイ」または「AWS マネージド VPN 接続」を参照してください。

注記

サブネットの種類にかかわらず、サブネット内の IPv4 アドレス範囲は常にプライベートです。そのアドレスブロックがインターネットに公開されることはありません。

アカウント内に作成できる VPCs とサブネットの数には制限があります。詳細については、「Amazon VPC の制限」を参照してください。

VPC とサブネットのサイズ設定

Amazon VPC は IPv4 および IPv6 アドレス指定をサポートしており、それぞれについて CIDR ブロックサイズの制限が異なります。デフォルトでは、すべての VPC とサブネットに IPv4 CIDR が必要で、この動作は変更できません。オプションで IPv6 CIDR ブロックを VPC と関連付けることができます。

IP アドレスの割り当てについては、「VPC の IP アドレス指定」を参照してください。

IPv4 用の VPC とサブネットのサイズ設定

VPC を作成するときに、その VPC の IPv4 CIDR ブロックを指定する必要があります。許可されるブロックサイズは、/16 ネットマスク(65,536 個の IP アドレス)から /28 ネットマスク(16 個の IP アドレス)の間です。VPC を作成したら、VPC とセカンダリ CIDR ブロックを関連付けることができます。詳細については、「IPv4 CIDR ブロックを VPC に追加する」を参照してください。

VPC を作成する場合は、/16RFC 1918 に指定されているように、プライベート IPv4 アドレス範囲から CIDR ブロック ( 以下) を指定することをお勧めします。

  • 10.0.0.0 - 10.255.255.255 (10/8 プレフィックス)

  • 172.16.0.0 - 172.31.255.255 (172.16/12 プレフィックス)

  • 192.168.0.0 - 192.168.255.255 (192.168/16 プレフィックス)

VPC を作成する場合、RFC 1918 に指定されているプライベート IPv4 アドレスの範囲から外れる、パブリックにルーティングできる CIDR ブロックを使うこともできますが、本書ではプライベート IPv4 アドレスを VPC の CIDR 範囲内にある IPv4 アドレスという意味で使います。

注記

他の AWS サービスで使用することを目的として VPC を作成している場合は、サービスドキュメントで、IP アドレス範囲またはネットワークコンポーネントに特定の要件があるかどうかを確認します。

サブネットの CIDR ブロックは、VPC のサブネットが 1 つの場合、VPC の CIDR ブロックと同じにすることも、あるいは複数のサブネットのサブネットと同じにすることもできます。許可されているのは、/28 ネットマスクから /16 ネットマスクの間のブロックサイズです。VPC に複数のサブネットを作成する場合、サブネットの CIDR ブロックは重複できません。

例えば、CIDR ブロック 10.0.0.0/24 を持つ VPC を作成した場合、その VPC では 256 個の IP アドレスがサポートされます。この CIDR ブロックは 2 つのサブネットに分割でき、それぞれのサブネットで 128 個の IP アドレスがサポートされています。一方のサブネットでは CIDR ブロック 10.0.0.0/25 (アドレス 10.0.0.010.0.0.127) が、もう一方のサブネットでは CIDR ブロック 10.0.0.128/25 (アドレス 10.0.0.12810.0.0.255) が使用されます。

サブネット CIDR ブロックを算出する際に役立つツールを数多くご用意しています。http://www.subnet-calculator.com/cidr.php で一例をご覧ください。また、ネットワーク技術グループが、サブネットに指定する CIDR ブロックを特定することもできます。

各サブネット CIDR ブロックの最初の 4 つの IP アドレスと最後の IP アドレスは使用できず、インスタンスに割り当てることができません。たとえば、CIDR ブロック 10.0.0.0/24 を持つサブネットの場合、次の 5 つの IP アドレスが予約されます。

  • 10.0.0.0: ネットワークアドレスです。

  • 10.0.0.1: VPC ルーター用に AWS で予約されています。

  • 10.0.0.2: AWS で予約されています。DNS サーバーの IP アドレスは、常に VPC ネットワークのベースに 2 を付加したものですが、各サブネット範囲のベースに 2 を付加したアドレスも予約されています。複数の CIDR ブロックを持つ VPC の場合、DNS サーバーの IP アドレスはプライマリ CIDR にあります。詳細については、「Amazon DNS サーバー」を参照してください。

  • 10.0.0.3: 将来の利用のために AWS で予約されています。

  • 10.0.0.255: ネットワークブロードキャストアドレスです。VPC ではブロードキャストがサポートされないため、このアドレスを予約します。

IPv4 CIDR ブロックを VPC に追加する

VPC とセカンダリ IPv4 CIDR ブロックを関連付けることができます。CIDR ブロックを VPC に関連付けると、ルートが VPC ルートテーブルに自動的に追加され、VPC 内でのルーティングが可能になります (送信先は CIDR ブロックで、ターゲットは local)。

次の例では、左側の VPC に 1 つの CIDR ブロック (10.0.0.0/16) と 2 つのサブネットがあります。右側の VPC は、2 番目の CIDR ブロック (10.2.0.0/16) を追加し、2 番目の CIDR の範囲から新しいサブネットを作成した後の、同じ VPC のアーキテクチャを表します。

 単一および複数の CIDR ブロックを持つ VPC

CIDR ブロックを VPC に追加する場合は、次のルールが適用されます。

  • 許可されているのは、/28 ネットマスクから /16 ネットマスクの間のブロックサイズです。

  • CIDR ブロックは、VPC に関連付けられている既存の CIDR ブロックと重複してはいけません。

  • 使用できる IPv4 アドレスの範囲には制限があります。詳細については、「IPv4 CIDR ブロック関連付けの制限」を参照してください。

  • 既存の CIDR ブロックのサイズを増減することはできません。

  • VPC に関連付けることができる CIDR ブロックの数と、ルートテーブルに追加できるルートの数には制限があります。そのため、制限を超えると CIDR ブロックを関連付けることはできなくなります。詳細については、「Amazon VPC の制限」を参照してください。

  • CIDR ブロックは、VPC ルートテーブルのいずれかのルートの CIDR 範囲と同じ、またはそれ以上に大きくすることはできません。たとえば、宛先が 10.0.0.0/24 の仮想プライベートゲートウェイへのルートがある場合、同じ範囲以上の CIDR ブロックを関連付けることはできません。ただし、10.0.0.0/25 以下の CIDR ブロックを関連付けることはできます。

  • ClassicLink の VPC を有効にしている場合、10.0.0.0/16 から 10.1.0.0/16 の範囲の CIDR ブロックを関連付けることはできますが、 10.0.0.0/8 の範囲の他の CIDR ブロックを関連付けることはできません。

  • VPC ピアリング接続の一部である VPC に IPv4 CIDR ブロックを追加する場合は、次のルールが適用されます。

    • VPC ピアリング接続が active の場合、ピア VPC の CIDR ブロックと重複していない VPC に CIDR ブロックを追加できます。

    • VPC ピアリング接続が pending-acceptance の場合、リクエスタ VPC の所有者は、アクセプタ VPC の CIDR ブロックと重複しているかどうかにかかわらず、VPC に CIDR ブロックを追加できません。アクセプタ VPC の所有者がピアリング接続を受け入れるか、またはリクエスタ VPC の所有者が VPC ピアリング接続要求を削除し、CIDR ブロックを追加してから、新しい VPC ピアリング接続を要求する必要があります。

    • VPC ピアリング接続が pending-acceptance の場合、アクセプタ VPC の所有者は CIDR ブロックを VPC に追加できます。セカンダリ CIDR ブロックがリクエスタ VPC の CIDR ブロックと重複している場合、VPC ピアリング接続要求は失敗し、承諾されません。

以下の表に、VPC のプライマリ CIDR ブロックが存在する IPv4 アドレス範囲に依存する、許可および制限された CIDR ブロック関連付けの概要を示します。

IPv4 CIDR ブロック関連付けの制限

プライマリ VPC CIDR ブロックが存在する IP アドレス範囲 制限された CIDR ブロックの関連付け 許可された CIDR ブロックの関連付け

10.0.0.0/8

他の RFC 1918* の範囲 (172.16.0.0/12 から 192.168.0.0/16) からの CIDR ブロック。

プライマリ CIDR が 10.0.0.0/15 の範囲内にある場合、10.0.0.0/16 の範囲から CIDR ブロックを追加することはできません。

198.19.0.0/16 の範囲からの CIDR ブロック。

制限されていない 10.0.0.0/8 の範囲からの他の CIDR。

パブリックにルーティング可能な IPv4 CIDR ブロック (RFC 1918 以外)。

172.16.0.0/12

他の RFC 1918* の範囲 (10.0.0.0/8 から 192.168.0.0/16) からの CIDR ブロック。

172.31.0.0/16 の範囲からの CIDR ブロック。

198.19.0.0/16 の範囲からの CIDR ブロック。

制限されていない 172.16.0.0/12 の範囲からの他の CIDR。

パブリックにルーティング可能な IPv4 CIDR ブロック (RFC 1918 以外)。

192.168.0.0/16

他の RFC 1918* の範囲 (172.16.0.0/12 から 10.0.0.0/8) からの CIDR ブロック。

198.19.0.0/16 の範囲からの CIDR ブロック。

192.168.0.0/16 の範囲からの他の CIDR。

パブリックにルーティング可能な IPv4 CIDR ブロック (RFC 1918 以外)。

198.19.0.0/16

RFC 1918* 範囲からの CIDR ブロック。

パブリックにルーティング可能な IPv4 CIDR ブロック (RFC 1918 以外)。

パブリックにルーティング可能な CIDR ブロック (RFC 1918 以外)。

RFC 1918* 範囲からの CIDR ブロック。

198.19.0.0/16 の範囲からの CIDR ブロック。

パブリックにルーティング可能な他の IPv4 CIDR ブロック (RFC 1918 以外)。

*RFC 1918 の範囲は、RFC 1918 で指定されているプライベート IPv4 アドレス範囲です

VPC に関連付け済みの CIDRブロックの関連付けを解除することができます。ただし、元の VPC (プライマリ CIDR ブロック) を作成した CIDR ブロックの関連付けを解除することはできません。Amazon VPC コンソールで VPC のプライマリ CIDR を表示するには、[Your VPCs] を選択し、VPC を選択して [CIDR blocks] の最初のエントリを書き留めます。または、describe-vpcs コマンドを使用できます。

Copy
aws ec2 describe-vpcs --vpc-id vpc-1a2b3c4d

返される出力では、プライマリ CIDR がトップレベルの CidrBlock 要素 (下の出力例の最後から 2 番目の要素) に返されます。

{
    "Vpcs": [
        {
            "VpcId": "vpc-1a2b3c4d", 
            "InstanceTenancy": "default", 
            "Tags": [
                {
                    "Value": "MyVPC", 
                    "Key": "Name"
                }
            ], 
            "CidrBlockAssociations": [
                {
                    "AssociationId": "vpc-cidr-assoc-3781aa5e", 
                    "CidrBlock": "10.0.0.0/16", 
                    "CidrBlockState": {
                        "State": "associated"
                    }
                }, 
                {
                    "AssociationId": "vpc-cidr-assoc-0280ab6b", 
                    "CidrBlock": "10.2.0.0/16", 
                    "CidrBlockState": {
                        "State": "associated"
                    }
                }
            ], 
            "State": "available", 
            "DhcpOptionsId": "dopt-e0fe0e88", 
            "CidrBlock": "10.0.0.0/16", 
            "IsDefault": false
        }
    ]
}

IPv6 用の VPC とサブネットのサイズ設定

単一の IPv6 CIDR ブロックをアカウントの既存の VPC に関連付けるか、または新しい VPC の作成時に関連付けることができます。CIDR ブロックは /56 の固定長プレフィックスを使用します。アドレスの範囲または IPv6 CIDR ブロックのサイズは選択できません。どちらもアマゾンの IPv6 アドレスのプールから VPC にブロックが割り当てられます。

IPv6 CIDR ブロックと VPC を関連付けている場合、IPv6 CIDR ブロック を VPC の既存のサブネットに関連付けるか、または新しいサブネットを作成するときに関連付けることができます。サブネットの IPv6 CIDR ブロックは /64 の固定長プレフィックスを使用します。

たとえば、VPC を作成して VPC に IPv6 CIDR ブロックを関連付けるよう指定します。VPC には 2001:db8:1234:1a00::/56 の IPv6 CIDR ブロックが割り当てられます。サブネットを作成し、この範囲から IPv6 CIDR ブロックを関連付けることができます。例: 2001:db8:1234:1a00::/64

サブネットから IPv6 CIDR ブロックの関連付けを解除し、VPC から IPv6 CIDR ブロックの関連付けを解除できます。VPC から IPv6 CIDR ブロックの関連付けを解除すると、IPv6 CIDR ブロックと VPC を後で再び関連付けた場合に同じ CIDR を受け取ることは期待できません。

サブネットのルーティング

各サブネットをルートテーブルに関連付ける必要があります。サブネットを出るアウトバウンドトラフィックに対して許可されるルートは、このテーブルによって指定されます。作成するすべてのサブネットが、VPC のメインルートテーブルに自動的に関連付けられます。この関連付けを変更し、メインルートテーブルのコンテンツを変更できます。詳細については、「ルートテーブル」を参照してください。

前の図では、サブネット 1 に関連付けられたルートテーブルは、すべての IPv4 トラフィック (0.0.0.0/0) と IPv6 トラフィック (::/0) をインターネットゲートウェイ (例: igw-1a2b3c4d) にルーティングします。インスタンス 1A には IPv4 Elastic IP アドレスがあり、インスタンス 1B には IPv6 アドレスがあるため、これらにはそれぞれ IPv4 と IPv6 経由でインターネットからアクセスできます。

注記

(IPv4 のみ) インスタンスに関連付けられる Elastic IPv4 アドレスまたはパブリック IPv4 アドレスは、VPC のインターネットゲートウェイ経由でアクセスします。インスタンスと別のネットワーク間の VPN 接続経由で流れるトラフィックは、インターネットゲートウェイではなく仮想プライベートゲートウェイを通過します。したがって、Elastic IPv4 アドレスまたはパブリック IPv4 アドレスにアクセスしません。

インスタンス 2A はインターネットにアクセスできませんが、VPC の他のインスタンスにはアクセスできます。ネットワークアドレス変換 (NAT) ゲートウェイまたはインスタンスを使用して、VPC のインスタンスによる IPv4 インターネットへのアウトバウンド接続の開始を許可し、インターネットからの未承諾のインバウンド接続を拒否できます。Elastic IP アドレスは限られた数しかアロケートできないため、静的なパブリック IP アドレスを必要とするインスタンスが多く存在する場合は、NAT デバイスの使用をお勧めします。詳細については、「NAT」を参照してください。IPv6 経由のインターネットへのアウトバウンドのみの通信を開始するには、送信のみのインターネットゲートウェイを使用できます。詳細については、「Egress-Only インターネットゲートウェイ」を参照してください。

サブネット 3 に関連付けられたルートテーブルは、すべての IPv4 トラフィック (0.0.0.0/0) を仮想プライベートゲートウェイ (例: vgw-1a2b3c4d) にルーティングします。インスタンス 3A は VPN 接続を介して企業ネットワーク内のコンピューターに到達できます。

サブネットのセキュリティ

AWS では、セキュリティグループネットワーク ACL という 2 つの機能を使用して、VPC のセキュリティを強化できます。セキュリティグループは、インスタンスのインバウンドトラフィックとアウトバウンドトラフィックをコントロールします。ネットワーク ACL は、サブネットのインバウンドトラフィックとアウトバウンドトラフィックをコントロールします。通常、セキュリティグループで用が足りますが、VPC に追加のセキュリティレイヤーが必要な場合は、ネットワーク ACL を使用することもできます。詳細については、「セキュリティ」を参照してください。

設計により、各サブネットをネットワーク ACL に関連付ける必要があります。作成するサブネットはすべて、VPC のデフォルトのネットワーク ACL に自動的に関連付けられます。この関連付けを変更し、デフォルトのネットワーク ACL のコンテンツを変更できます。詳細については、「ネットワーク ACL」を参照してください。

VPC またはサブネットでフローログを作成し、VPC またはサブネットでネットワークインターフェイスとの間を行き来するトラフィックをキャプチャできます。個別のネットワークインターフェイスでフローログを作成することもできます。フローログは CloudWatch Logs に発行されます。詳細については、「VPC フローログ」を参照してください。

ローカルネットワークおよびその他の VPC との接続

オプションで、VPC と企業またはホームネットワークの間の接続を設定できます。VPC 内に、ネットワークのプレフィックスの 1 つと重複する IPv4 アドレスプレフィックスがある場合、そのネットワークのプレフィックスへのトラフィックはドロップされます。例えば、次の環境があるとします。

  • CIDR ブロック 10.0.0.0/16 を持つ VPC

  • CIDR ブロック 10.0.1.0/24 を持つ VPC 内のサブネット

  • IP アドレス 10.0.1.410.0.1.5 を持つサブネットで実行されているインスタンス

  • CIDR ブロック 10.0.37.0/2410.1.38.0/24 が使用されているオンプレミスホストネットワーク

VPC 内のこれらのインスタンスが、10.0.37.0/24 アドレス空間のホストと通信しようとすると、そのトラフィックはドロップされます。これは、10.0.37.0/24 が、VPC に割り当てられている、より大きなプレフィックス (10.0.0.0/16) の一部だからです。一方、10.1.38.0/24 空間のホストとは通信できます。そのブロックは 10.0.0.0/16 の一部ではないからです。

VPC ピア接続は、自分の AWS アカウントの VPC 間や、他の AWS アカウントの VPC との間にも作成できます。VPC ピア接続を作成すると、VPC 間でプライベート IP アドレスを使用してトラフィックをルーティングできるようになります。ただし、CIDR ブロックが重複する VPC 間には VPC ピア接続を作成できません。詳細については、「Amazon VPC Peering Guide」を参照してください。

したがって、作成する VPC の CIDR 範囲は、今後予想される規模拡大に十分に対応でき、かつ自社またはホームネットワークの現在または今後のいずれのサブネットとも、現在または将来の VPC の CIDR 範囲とも重複しないようにすることをお勧めします。

現在、IPv6 を使用した VPN 接続はサポートされていません。