▪️目的

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アドレスを使って通信します。

通信を実現するには、主に次の設定が必要です。

  1. VPC Peering接続を作成する
  2. 接続先のVPCで接続を承認する(別アカウントの場合など)
  3. 双方のVPCのルートテーブルに、接続先ネットワークへの経路を設定する
  4. セキュリティグループやネットワーク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のCIDR10.1.0.0/1610.2.0.0/16
接続先共通サービスVPC開発VPC

開発VPC側では、次のようなルートを設定します。

宛先ターゲット
10.2.0.0/16VPC Peering接続

共通サービスVPC側では、戻りの通信ができるよう、次のようなルートを設定します。

宛先ターゲット
10.1.0.0/16VPC 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 PeeringTransit 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」になっていても、ルートテーブルに必要な経路が登録されていなければ通信できません。

通信できない場合は、次の項目を順番に確認するとよいでしょう。

  1. VPC Peering接続がActiveになっているか
  2. 送信元VPCのルートテーブルに接続先への経路があるか
  3. 接続先VPCのルートテーブルに戻りの経路があるか
  4. セキュリティグループで必要な通信が許可されているか
  5. ネットワークACLやOSのファイアウォールで通信が拒否されていないか
  6. 必要な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

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

Latest Comments

表示できるコメントはありません。