Amazon VPC の仕組み - Amazon Virtual Private Cloud

Amazon VPC の仕組み

Amazon Virtual Private Cloud (Amazon VPC) を使用すると、定義した仮想ネットワーク内で AWS リソースを起動できます。仮想ネットワークは、お客様自身のデータセンターで運用されていた従来のネットワークによく似ていますが、 AWS のスケーラブルなインフラストラクチャを使用できるというメリットがあります。

VPC とサブネット

‬仮想プライベートクラウド (VPC)‭‬ は、AWS アカウント専用の仮想ネットワークです。VPC は、AWS クラウドの他の仮想ネットワークから論理的に切り離されています。VPC の IP アドレス範囲を指定して、サブネットを追加し、ゲートウェイを追加して、セキュリティグループを関連付けます。

サブネットは、VPC の IP アドレスの範囲です。Amazon EC2 インスタンスなどの AWS リソースを VPC サブネット内部で起動します。サブネットをインターネット、他の VPC、および独自のデータセンターに接続し、ルートテーブルを使用してサブネット間でトラフィックをルーティングできます。

値とデフォルト以外の VPC

アカウントが 2013 年 12 月 4 日以降に作成されている場合、各リージョンにデフォルトの VPC があります。デフォルトの VPC は設定済みで、すぐに使用できます。この VPC には、例えばリージョンの各アベイラビリティーゾーンのデフォルトサブネット、アタッチされたインターネットゲートウェイが含まれています。また、すべてのトラフィックをインターネットゲートウェイに送信するメインルートテーブルのルート、EC2 インスタンスにパブリック IP アドレスと DNS ホスト名を提供する DNS 設定も含まれています。そのため、デフォルトサブネットで起動された EC2 インスタンスは、自動的にインターネットにアクセスできます。リージョンにデフォルトの VPC があり、そのリージョンでの EC2 インスタンス起動時にサブネットを指定しなかった場合は、デフォルトサブネットの 1 つを選択して、そのサブネットでインスタンスを起動します。

独自の VPC を作成し、必要に応じて設定することもできます。これはデフォルト以外の VPC と呼ばれます。デフォルト以外の VPC で作成するサブネット、そしてデフォルト VPC で作成する追加サブネットは、デフォルト以外のサブネットと呼ばれます。

IP アドレス指定

IP アドレスは、VPC のリソースの相互通信とインターネット上のリソースとの通信を有効にします。

Classless Inter-Domain Routing (CIDR) 表記は、IP アドレスとそのネットワークマスクを表す方法です。これらのアドレスの形式は次のとおりです。

  • 個々の IPv4 アドレスは 32 ビットで、最大 3 桁の 10 進数の 4 つのグループです。例: 10.0.1.0。

  • IPv4 CIDR ブロックには、最大 3 桁の 0 ~ 255 の 10 進数の 4 つのグループがあり、ピリオド、スラッシュの順に区切られ、0 ~ 32 の数字です。例えば、10.0.0.0/16 です。

  • 個々の IPv6 のアドレスは、128 ビットで、4 桁の 16 進数の 8 つのグループです。例: 2001:0db8:85a3:0000:0000:8a2e:0370:7334。

  • IPv6 CIDR ブロックには、最大 4 桁の 16 進数の 4 つのグループがあり、コロン、二重コロン、スラッシュの順に区切られ、1 ~ 128 の数字が続きます。例: 2001:db8:1234:1a00::/56。

詳細については、Wikipedia の「Classless Inter-Domain Routing」をご参照ください。

VPC の作成時には、IPv4 CIDR ブロック (プライベート IPv4 アドレスの範囲)、IPv6 CIDR ブロック、または IPv4 および IPv6 CIDR ブロックの両方 (デュアルスタック) を割り当てる必要があります。

プライベート IPv4 アドレスには、インターネット経由では到達できません。IPv6 アドレスはグローバルに一意であり、プライベートのまま、またはインターネット経由で到達可能になるように設定できます。

VPC は、デュアルスタックモードで動作します。つまり、リソースは、IPv4、IPv6、または IPv4 と IPv6 の両方を介して通信できます。IPv4 アドレスと IPv6 アドレスは互いに独立しています。IPv4 と IPv6 に別々のルートとセキュリティグループのルールを追加する必要があります。

IPv4 と IPv6 を比較する

次の表は、Amazon EC2 と Amazon VPC における IPv4 と IPv6 の違いをまとめたものです。

特徴 IPv4 IPv6
VPC のサイズ /16 から /28 まで /56 で固定
サブネットのサイズ /16 から /28 まで /64 で固定
アドレスの選択 VPC の IPv4 CIDR ブロックを選択するか、Amazon VPC IP Address Manager (IPAM) から CIDR ブロックを割り当てることができます。詳細については、「Amazon VPC IPAM ユーザーガイド」の「IPAM とは」を参照してください。 AWS で独自の IPv6 CIDR ブロックを VPC に使用するか、Amazon が提供する IPv6 CIDR ブロックを選択するか、Amazon VPC IP Address Manager (IPAM) から CIDR ブロックを割り当てることができます。詳細については、「Amazon VPC IPAM ユーザーガイド」の「IPAM とは」を参照してください。
Elastic IP アドレス サポート対象 サポート外
NAT ゲートウェイ サポート対象 サポート外
VPC評価項目 サポート対象 サポート外
EC2インスタンス すべてのインスタンスタイプでサポートされます すべての現行世代のインスタンスに加えて、C3、R3、および I2 インスタンスでサポートされます。
AMI すべての AMI でサポートされます DHCPv6 用に設定された AMI でサポートされます
DNS 名 インスタンスは、Amazon が提供する IPBN または RBN ベースの DNS 名を受け取ります。DNS 名は、インスタンスに対して選択された DNS レコードに解決されます。 インスタンスは、Amazon が提供する IPBN または RBN ベースの DNS 名を受け取ります。DNS 名は、インスタンスに対して選択された DNS レコードに解決されます。

プライベート IPv4 アドレス

プライベート IPv4 アドレス (このトピックではプライベート IP アドレスと呼ぶ) は、インターネット経由では到達できず、VPC のインスタンス間の通信で使用できます。VPC でインスタンスを起動すると、サブネットの IPv4 アドレス範囲内のプライマリプライベート IP アドレスがインスタンスのデフォルトのネットワークインターフェイス (eth0) に割り当てられます。また、各インスタンスには、インスタンスのプライベート IP アドレスに解決されるプライベート (内部) DNS ホスト名が割り当てられます。ホスト名には、リソースベースと IP ベースの 2 つのタイプがあります。詳細については、EC2 インスタンスの名前付けを参照してください。プライマリプライベート IP アドレスを指定しない場合、サブネットの範囲内で使用可能な IP アドレスが選択されます。ネットワークインターフェイスの詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「Elastic Network Interface」を参照してください。

VPC で実行されているインスタンスに追加のプライベート IP アドレス(セカンダリプライベート IP アドレスと呼ばれる)を割り当てることができます。プライマリプライベート IP アドレスとは異なり、セカンダリプライベート IP アドレスはあるネットワークインターフェイスから別のネットワークインターフェイスへ割り当て直すことができます。プライベート IP アドレスは、インスタンスが停止して再起動するとネットワークインターフェイスに関連付けられたままになり、インスタンスが終了すると解放されます。プライマリ IP アドレスとセカンダリ IP アドレスの詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「複数の IP アドレス」を参照してください。

プライベート IP アドレスは VPC の IPv4 CIDR 範囲内にある IP アドレスです。VPC のほとんどの IP アドレス範囲は、RFC 1918 で規定されているプライベート (パブリックにルーティングできない) IP アドレス範囲に入りますが、パブリックにルーティングできる CIDR ブロックを VPC に使用することはできます。VPC の IP アドレス範囲に関係なく、パブリックにルーティング可能な CIDR ブロックなど VPC の CIDR ブロックからのインターネットへの直接アクセスはサポートされていません。ゲートウェイを経由するインターネットアクセスをセットアップする必要があります。たとえば、インターネットゲートウェイ、仮想プライベートゲートウェイ、AWS Site-to-Site VPN 接続、または AWS Direct Connect をセットアップします。

パブリック IPv4 アドレス

サブネットで作成されたネットワークインターフェイスがパブリック IPv4 アドレス (このトピックではパブリック IP アドレスと呼ばれる) を自動的に受信するかどうかを判断する属性が、すべてのサブネットにあります。したがって、この属性が有効になっているサブネットに対してインスタンスを起動すると、パブリック IP アドレスがそのインスタンス用に作成されたプライマリネットワークインターフェイス (eth0) に割り当てられます。パブリック IP アドレスは、ネットワークアドレス変換 (NAT) によって、プライマリプライベート IP アドレスにマッピングされます。

VPC のインスタンスがパブリック IP アドレスを割り当てられるかどうかを制御するには、以下の方法を使用します。

  • サブネットのパブリック IP アドレス属性を変更する。詳細については、「サブネットのパブリック IPv4 アドレス属性を変更する」を参照してください

  • インスタンスの起動時のパブリック IP アドレス割り当てを有効または無効にする。この設定によってサブネットのパブリック IP アドレス割り当て属性は上書きされます。

パブリック IP アドレスは、Amazon のパブリック IP アドレスプールにあるアドレスです。そのアドレスはお客様のアカウントとは関連付けられません。パブリック IP アドレスとインスタンスとの関連付けを解除すると、そのアドレスは解放されてプールに戻り、それ以降お客様はそのアドレスを使用できなくなります。パブリック IP アドレスの関連付けと関連付け解除は手動で実行できません。ただし、特定の場合に、こちらでパブリック IP アドレスをお客様のインスタンスから解放したり、新しいアドレスをそのインスタンスに割り当てます。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「パブリック IP アドレス」を参照してください。

状況に応じてインスタンスに割り当てたりインスタンスから削除したりできる固定パブリック IP アドレスをお客様のアカウントに割り当てる必要がある場合は、Elastic IP アドレスを使用します。詳細については、「Elastic IP アドレスを VPC 内のリソースに関連付ける」を参照してください

VPC で DNS ホスト名のサポートを有効にしている場合は、パブリック IP アドレスまたは Elastic IP アドレスを受信するインスタンスには、それぞれパブリック DNS ホスト名が付与されます。パブリック DNS ホスト名を解決すると、インスタンスのパブリック IP アドレス (インスタンスのネットワークの外部の場合) およびインスタンスのプライベート IP アドレス (インスタンスのネットワーク内からの場合) となります。詳細については、「VPC の DNS 属性」を参照してください

IPv6 アドレス

オプションで、IPv6 CIDR ブロックを VPC とサブネットに関連付けることができます。詳細については、「IPv6 CIDR ブロックとサブネットの関連付け」を参照してください。

IPv6 CIDR ブロックが VPC およびサブネットと関連付けられていて、以下のいずれかに該当する場合、VPC 内のインスタンスには IPv6 アドレスが割り当てられます。

  • サブネットは、起動時に IPv6 アドレスをインスタンスのプライマリネットワークインターフェイスに自動的に割り当てるよう設定されます。

  • 起動時に IPv6 アドレスをインスタンスに手動で割り当てます。

  • 起動後に IPv6 アドレスをインスタンスに割り当てます。

  • 起動後に IPv6 アドレスを同じサブネットのネットワークインターフェイスに割り当て、そのネットワークインターフェイスをインスタンスにアタッチする。

起動時にインスタンスに IPv6 アドレスが割り当てられると、そのアドレスはインスタンスのプライマリネットワークインターフェイス (eth0) と関連付けられます。IPv6 アドレスとプライマリネットワークインターフェイスの関連付けは解除できます。インスタンスの IPv6 DNS ホスト名はサポートされていません。

IPv6 アドレスは、インスタンスの停止および開始時には保持され、インスタンスの終了時に解放されます。IPv6 アドレスは、別のネットワークインターフェイスに割り当てられている間は再割り当てできません。最初に割り当てを解除する必要があります。

追加の IPv6 アドレスをインスタンスに割り当てるには、インスタンスにアタッチされたネットワークインターフェイスにアドレスを割り当てます。ネットワークインターフェイスに割り当てることができる IPv6 アドレスの数と、インスタンスにアタッチできるネットワークインターフェイスの数は、インスタンスタイプごとに異なります。詳細については、Amazon EC2 ユーザーガイドの「各インスタンスタイプのネットワークインターフェイスあたりの IP アドレス」を参照してください。

IPv6 アドレスはグローバルに一意であり、プライベートのまま、またはインターネット経由で到達可能になるように設定できます。インスタンスのサブネットのルーティングを制御するか、セキュリティグループとネットワーク ACL ルールを使用することで、IPv6 アドレスを介してインスタンスに接続できるかどうかを制御できます。詳細については、「Amazon VPC でのインターネットワークトラフィックのプライバシー」を参照してください

予約済み IPv6 アドレスの範囲については、「IANA IPv6 Special-Purpose Address Registry」と「RFC4291」を参照してください。

お客様の IP アドレスを使用する

独自のパブリック IPv4 アドレス範囲または IPv6 アドレス範囲の一部またはすべてを AWS アカウントに持ち込むことができます。引き続きアドレス範囲を所有できますが、デフォルトで AWS はこれをインターネット上でアドバタイズします。アドレス範囲を AWS に設定すると、そのアドレス範囲はアドレスプールとしてアカウントに表示されます。IPv4 アドレスプールから Elastic IP アドレスを作成し、IPv6 アドレスプールの IPv6 CIDR ブロックを VPC に関連付けることができます。

詳細については、 Linux インスタンス用 Amazon EC2 ユーザーガイドの「独自の IP アドレスを使用する (BYOIP)」をご参照ください。

ルートテーブル

ルートテーブルは、VPC からのネットワークトラフィックの経路を決めるために使用される一連のルール (ルートと呼ばれます) で構成されます。サブネットを特定のルートテーブルに明示的に関連付けることができます。それ以外の場合、サブネットはメインルートテーブルに暗黙的に関連付けられます。

ルートテーブル内の各ルートは、トラフィックを移動させる IP アドレスの範囲 (宛先) と、トラフィックを送信するゲートウェイ、ネットワークインターフェイス、または接続 (ターゲット) を指定します。

インターネットへのアクセス

VPC 内に起動するインスタンスが VPC 外のリソースにどのようにアクセスするかをコントロールします。

デフォルト VPC にはインターネットゲートウェイが含まれ、各デフォルトサブネットはパブリックサブネットです。デフォルトサブネット内に起動するインスタンスにはそれぞれ、プライベート IPv4 アドレスとパブリック IPv4 アドレスが割り当てられています。これらのインスタンスは、このインターネットゲートウェイを介してインターネットと通信できます。インターネットゲートウェイを使用することで、インスタンスは Amazon EC2 ネットワークエッジを介してインターネットに接続できます。

デフォルトでは、デフォルト以外のサブネットで起動した各インスタンスにはプライベート IPv4 アドレスが割り当てられていますが、パブリック IPv4 アドレスは割り当てられていません。ただし、起動時に明示的にパブリック IP アドレスを割り当てた場合や、サブネットのパブリック IP アドレス属性を変更した場合は例外です。これらのインスタンスは相互に通信できますが、インターネットにアクセスできません。

デフォルト以外のサブネットで起動するインスタンスのインターネットアクセスを有効にするには、インターネットゲートウェイをその VPC (デフォルト VPC でない場合) にアタッチし、インスタンスに Elastic IP アドレスを関連付けます。

または、VPC のインスタンスによるインターネットへのアウトバウンド接続の開始を許可し、インターネットからの未承諾のインバウンド接続を拒否するには、ネットワークアドレス変換 (NAT) デバイスを使用できます。NAT では、複数のプライベート IPv4 アドレスが 1 つのパブリック IPv4 アドレスにマッピングされます。NAT デバイスを elastic IP アドレスで構成し、インターネットゲートウェイを介してインターネットに接続できます。これにより、NAT デバイスを介してプライベートサブネットのインスタンスをインターネットに接続できるようになり、トラフィックがインスタンスからインターネットゲートウェイにルーティングされ、すべての応答がインスタンスにルーティングされます。

IPv6 CIDR ブロックを VPC に関連付けて IPv6 アドレスをインスタンスに割り当てると、インスタンスはインターネットゲートウェイを介して IPv6 経由でインターネットに接続できます。また、インスタンスは、Egress-only インターネットゲートウェイを使用して IPv6 経由でインターネットへのアウトバウンド接続を開始できます。IPv6 トラフィックは IPv4 トラフィックと異なるため、IPv6 トラフィックの別のルートをルートテーブルに含める必要があります。

企業ネットワークまたはホームネットワークにアクセスする

オプションで、IPsec AWS Site-to-Site VPN 接続を使用して VPC を自社データセンターに接続すると、AWS クラウドをデータセンターの延長として利用できます。

Site-to-Site VPN 接続は、AWS 側の仮想プライベートゲートウェイまたは Transit Gateway と、データセンターにあるカスタマーゲートウェイデバイスとの間の 2 つの VPN トンネルで構成されます。カスタマーゲートウェイデバイスは、Site-to-Site VPN 接続のお客様側で設定する物理デバイスまたはソフトウェアアプライアンスです。

VPC とネットワークの接続

2 つの VPC 間に VPC ピアリング接続を作成して、それらの間のトラフィックをプライベートにルーティングできます。どちらの VPC のインスタンスも、同じネットワーク内に存在しているかのように、相互に通信できます。

また、Transit Gateway を作成し、それを使用して VPC とオンプレミスのネットワークを相互接続することもできます。Transit Gateway は、アタッチメント間で流れるトラフィックのリージョン仮想ルーターとして機能します。これには、VPC、VPN 接続、AWS Direct Connect ゲートウェイ、および Transit Gateway ピア接続が含まれます。

AWS プライベートグローバルネットワークの考慮事項

AWS は、お客様のネットワークニーズに対応するために、セキュアなクラウドコンピューティング環境を提供する、高パフォーマンスで低レイテンシーのプライベートグローバルネットワークを提供します。AWS リージョンは複数のインターネットサービスプロバイダー (ISP) や、プライベートグローバルネットワークバックボーンに接続され、それによりお客様が送信したクロスリージョントラフィックに対して高いネットワークパフォーマンスが提供されます。

以下の考慮事項に注意してください。

  • すべてのリージョンのアベイラビリティーゾーン内またはアベイラビリティーゾーン間のトラフィックは、AWS プライベートグローバルネットワーク経由でルーティングされます。

  • リージョン間のトラフィックは、中国リージョンを除き、常に AWS プライベートグローバルネットワーク経由でルーティングされます。

ネットワークパケットの損失は、ネットワークフローの衝突、下位レベル (レイヤー2) のエラー、その他のネットワーク障害など、さまざまな要因によって引き起こされる可能性があります。パケット損失を最小限に抑えるために、当社はネットワークを設計および運用しています。AWS リージョンを接続するグローバルバックボーン全体のパケットロス率 (PLR) を測定しています。当社のバックボーンネットワークは、1時間あたりの PLR の p99 が 0.0001% 未満になるように運用されています。