VPC Peeringを使って、異なるVPCにあるRDSとEC2を接続する

VPC Peeringを使って、異なるVPCにあるRDSとEC2を接続する

VPC Peeringとは

  • プライベートIPアドレスを使って、2つのVPC間でトラフィックをルーティングすることができる
  • CIDRが一致または重複するVPC間の接続はできない

VPC Peeringを設定する

VPC Peeringを作成する

EC2インスタンスから、同一アカウント、同一リージョン、異なるVPCにあるRDSへのアクセスを設定したいとする。

マネジメントコンソールからVPC設定を開いて、"Create Peering Connection"をクリック、項目を入力してVPC Peeringを作成する

image

項目 説明
Peering connection name tag 識別名
VPC (Requester)* 接続元のVPC
Account 接続先のAWSアカウント
Region 接続先のAWSリージョン
VPC (Accepter)* 接続先のVPC

Routeを追加する

VPC Peering作成しただけではトラフィックのルートができないので、Route Tablesから、ルートを追加する。

接続元のVPC Route Table

Destination Target
(接続元のCIDRs) local
(接続先のCIDRs) (作成したVPC Peering) pcx-***

接続先のVPC Route Table

Destination Target
(接続先のCIDRs) local
(接続元のCIDRs) (作成したVPC Peering) pcx-***

Security Groupsを設定する

接続元のインスタンスから、接続先のRDSに対してincoming trafficを許可する。

Type Protocol Port Range Source
お好み TCP お好み 接続元のセキュリティグループ

VPC Peeringの設定が上手くいっていない場合、ここで「異なるVPC間のセキュリティグループは設定できない」旨のエラーが出る。

DNS解決を許可する

上記までの設定で、プライベートIPアドレスを用いればルーティングが可能になるが、RDSはプライベートIPアドレスが固定ではないため、ルーティングにはDNS名を使いたい。

なので作成したVPC Peeringの"Edit DNS Settings"からDNS resolutionを許可して、DNS名でアクセスできるようにする。