▪️目的
AWSでは、システムや環境ごとにVPC(Virtual Private Cloud)を分けてネットワークを構築することがあります。
例えば、開発環境と本番環境を別々のVPCで管理している場合や、アプリケーション用のVPCと共通サービス用のVPCを分けている場合などです。
このような構成で、異なるVPC間の通信を実現する方法の一つが、AWS VPC Peering(VPCピアリング) です。
VPC Peeringを利用すると、2つのVPCをプライベートに接続し、それぞれのVPC内にあるリソース同士が通信できるようになります。
この記事では、VPC Peeringの基本的な仕組みから、接続に必要な設定、Transit Gatewayとの違い、利用する際の注意点まで、初心者向けに解説します。
▪️AWS VPC Peeringとは?
VPC Peeringは、2つのVPC間にネットワーク接続を確立するための機能です。
接続されたVPC間では、パブリックIPアドレスを利用せず、プライベートIPアドレスによる通信を実現できます。
例えば、次のような構成を考えてみましょう。
- 開発環境のVPC
- 共通サービスを配置したVPC
開発環境のVPCから共通サービス用のVPCにあるサーバーへアクセスしたい場合、VPC Peeringを利用して2つのVPCを接続できます。
ただし、VPC Peeringを作成するだけでは通信できません。 接続の承認に加え、双方のVPCのルートテーブルやセキュリティ設定などを適切に構成する必要があります。
▪️VPC Peeringの仕組み
VPC Peeringは、2つのVPCを直接接続する仕組みです。
┌──────────────────┐
│ 開発VPC │
│ │
│ EC2 │
│ 10.1.1.10 │
└────────┬─────────┘
│
│ VPC Peering
│
┌────────┴─────────┐
│ 共通サービスVPC │
│ │
│ EC2 │
│ 10.2.1.10 │
└──────────────────┘
※上記は概念図です。実際の通信には、サブネットのルートテーブルやセキュリティグループなどの設定が必要です。
この例では、開発VPCのEC2インスタンスから、共通サービスVPCのEC2インスタンスへプライベートIPアドレスを使って通信します。
通信を実現するには、主に次の設定が必要です。
- VPC Peering接続を作成する
- 接続先のVPCで接続を承認する(別アカウントの場合など)
- 双方のVPCのルートテーブルに、接続先ネットワークへの経路を設定する
- セキュリティグループやネットワークACLで必要な通信を許可する
これらの設定が整うことで、VPC間のプライベート通信が可能になります。
▪️VPC Peeringの設定に必要なもの
1. VPC Peering接続
VPC Peering接続は、2つのVPC間の接続を表すリソースです。
接続を作成する側を「リクエスタ」、接続を受け入れる側を「アクセプタ」と呼びます。
同じAWSアカウント内のVPC同士でも、異なるAWSアカウントのVPC同士でも接続できます。また、対応する条件を満たせば、異なるAWSリージョンにあるVPC同士を接続することも可能です。
異なるアカウントやリージョン間で接続する場合は、対象のVPCやアカウント、リージョンを正しく指定する必要があります。
2. ルートテーブル
VPC Peering接続を作成しただけでは、VPC間の通信経路は自動的に設定されません。
それぞれのVPCのルートテーブルに、接続先のVPCのCIDRブロックを宛先として登録し、ターゲットにVPC Peering接続を指定します。
例えば、次のようなネットワーク構成を考えます。
| 項目 | 開発VPC | 共通サービスVPC |
|---|---|---|
| VPCのCIDR | 10.1.0.0/16 | 10.2.0.0/16 |
| 接続先 | 共通サービスVPC | 開発VPC |
開発VPC側では、次のようなルートを設定します。
| 宛先 | ターゲット |
|---|---|
| 10.2.0.0/16 | VPC Peering接続 |
共通サービスVPC側では、戻りの通信ができるよう、次のようなルートを設定します。
| 宛先 | ターゲット |
|---|---|
| 10.1.0.0/16 | VPC Peering接続 |
このように、双方のVPCで必要な経路を設定することが重要です。
3. セキュリティグループとネットワークACL
ルートテーブルによって通信経路が設定されていても、セキュリティ設定で通信が拒否されている場合は通信できません。
例えば、共通サービスVPCのEC2インスタンスにSSH接続する場合、接続先のセキュリティグループで必要なポートと送信元を許可する必要があります。
また、ネットワークACLを利用している場合は、インバウンドとアウトバウンドのルールも確認します。
ルートテーブルは通信経路を決めるもの、セキュリティグループやネットワークACLは通信を許可するかどうかを制御するもの と理解すると分かりやすいでしょう。
▪️VPC Peeringの特徴
1. プライベートIPアドレスで通信できる
VPC Peeringを利用すると、接続されたVPC間でプライベートIPアドレスによる通信を実現できます。
インターネットを経由せずにVPC間の通信経路を構築できるため、内部システム間の接続などに利用できます。
ただし、VPC Peering自体がアプリケーションの通信を暗号化する機能ではありません。通信内容の暗号化が必要な場合は、TLSなどを別途検討します。
2. 推移的なルーティングには対応していない
VPC Peeringで特に重要な制約が、推移的なルーティングに対応していないこと です。
例えば、次の構成を考えてみましょう。
VPC-A ── VPC Peering ── VPC-B
│
VPC Peering
│
VPC-C
この構成では、VPC-AとVPC-B、VPC-BとVPC-Cはそれぞれ接続されています。
しかし、この2つの接続だけでは、VPC-AからVPC-Bを経由してVPC-Cへ通信することはできません。
VPC Peeringは、接続したVPC同士を直接通信させる仕組みであり、別のPeering接続を経由した通信を中継するものではないためです。
VPC-AとVPC-Cの間でも通信する必要がある場合は、別途VPC Peering接続を作成するか、Transit Gatewayなどの利用を検討します。
3. 接続先が増えると管理が複雑になる
VPC Peeringは、少数のVPCを接続する場合にはシンプルな方法です。
一方、多数のVPCを相互接続しようとすると、接続数が増え、ルートテーブルの設定や管理が複雑になりやすくなります。
例えば、すべてのVPCを相互に接続する構成では、VPCの数が増えるほど接続関係の管理負荷が大きくなります。
そのため、接続するVPCが増えてきた場合は、Transit Gatewayを利用してネットワークを集約する方法も検討するとよいでしょう。
▪️VPC PeeringとTransit Gatewayの違い
VPC間の通信を実現するサービスとして、Transit Gatewayもあります。
どちらも複数のネットワークを接続するために利用できますが、接続方式と得意な用途が異なります。
| 比較項目 | VPC Peering | Transit Gateway |
|---|---|---|
| 接続方式 | VPC同士を直接接続 | 中継拠点にネットワークを集約 |
| 主な用途 | 少数のVPC間の接続 | 多数のVPCやネットワークの集約 |
| 推移的なルーティング | 非対応 | 適切なルート設定により対応 |
| ルート管理 | 各VPCのルートテーブルで管理 | VPC側とTransit Gateway側のルートテーブルを管理 |
| 構成のシンプルさ | 少数の接続ではシンプル | 接続先が多い構成で管理しやすい |
| 料金 | 接続時間の料金はなく、データ転送料金などが発生する場合がある | アタッチメントの利用時間や処理データ量などに応じて料金が発生 |
例えば、開発VPCと共通サービスVPCの2つを接続したいだけなら、VPC Peeringが有力な選択肢になります。
一方、開発VPC、本番VPC、共通サービスVPC、オンプレミス環境など、多数のネットワークを接続・管理したい場合は、Transit Gatewayが適していることがあります。
ただし、実際の選定では、接続数だけでなく、ルーティング要件、セキュリティ、運用負荷、料金なども考慮する必要があります。
▪️VPC Peeringを利用する際の注意点
1. CIDRブロックの重複に注意する
接続するVPC同士でIPアドレス範囲が重複している場合、VPC Peering接続は確立できません。
例えば、両方のVPCで 10.1.0.0/16 を利用している場合、VPC Peeringで接続することはできません。
複数のVPCを運用する予定がある場合は、最初の段階でIPアドレス設計を行い、CIDRブロックが重複しないようにすることが重要です。
2. DNSの名前解決を確認する
VPC Peeringでは、プライベートIPアドレスによる通信だけでなく、DNSの名前解決についても考慮する必要があります。
例えば、接続先のEC2インスタンスにプライベートDNS名でアクセスしたい場合、VPC PeeringのDNS解決に関するオプションや、利用するDNSの構成を確認します。
VPC Peeringを接続しただけで、あらゆるプライベートDNS名が自動的に期待どおり解決されるわけではありません。
3. ルートテーブルの設定漏れに注意する
VPC Peering接続が「Active」になっていても、ルートテーブルに必要な経路が登録されていなければ通信できません。
通信できない場合は、次の項目を順番に確認するとよいでしょう。
- VPC Peering接続がActiveになっているか
- 送信元VPCのルートテーブルに接続先への経路があるか
- 接続先VPCのルートテーブルに戻りの経路があるか
- セキュリティグループで必要な通信が許可されているか
- ネットワークACLやOSのファイアウォールで通信が拒否されていないか
- 必要なDNS名が正しく名前解決されているか
このように、接続状態だけでなく、ルーティングやセキュリティの設定も確認することが大切です。
▪️まとめ
AWS VPC Peeringは、2つのVPCを直接接続し、プライベートIPアドレスによる通信を実現するための機能です。
この記事のポイントをまとめます。
- VPC Peeringは、2つのVPCを直接接続する仕組み
- 同一アカウント内だけでなく、条件を満たせば別アカウントや別リージョンのVPCとも接続できる
- 接続後は、双方のVPCのルートテーブルに必要な経路を設定する
- セキュリティグループやネットワークACLなどの設定も必要
- VPC Peeringは推移的なルーティングに対応していない
- 多数のVPCを接続する場合は、Transit Gatewayも選択肢になる
- CIDRブロックの重複やDNSの名前解決にも注意する
VPC Peeringは、少数のVPCをシンプルに接続したい場合に便利な機能です。
AWSのネットワーク設計では、接続するVPCの数や通信要件を踏まえ、VPC PeeringとTransit Gatewayを適切に使い分けることが重要です。
次の記事では「Amazon RDS」について解説します。
*「Amazon RDS」の記事はこちら
→「https://lovelabengineer.com/2026/10/13/【aws】amazon-rdsとは?仕組み・特徴・メリットを初心者/」

No responses yet