よくAWSを触るものです。
今日はVPC間の通信を可能にするVPCピアリング接続について書こうと思います。
目的
2つのAWSアカウントがあり、各アカウントのVPCプライベートサブネット領域で通信する
きっかけ
今回はAアカウントとBアカウントが存在することにします。
Aのプライベートサブネット領域に存在するEC2インスタンスから、BのVPCプライベートサブネット領域に存在するAuroraクラスターアクセスしたいということがありました。
そうなった場合、アカウント間のプライベート通信が必要となるので、VPCピアリングを用いて、プライベート通信を実現しようと思います!
手順
1. Aアカウントでピアリング接続を作成
アクセプタ: Bアカウントの対象VPC
アカウント : BのアカウントID
2. Bのアカウントでピアリング接続許可を承認
VPCコンソール -> ピアリング接続 -> アクション -> リクエストの承諾
3. 各アカウントのルートテーブルの設定
・Aアカウント
対象のEC2インスタンスのサブネットのルートテーブルに、BアカウントのauroraクラスターのサブネットのCIDRを登録
auroraクラスターのサブネットのCIDR : 10.111.111.0/24
・Bアカウント
対象のauroraクラスターのサブネットのルートテーブルに、AアカウントのEC2インスタンスのサブネットのCIDRを登録
※今回は対象のサービスがsubnetを指定しているためsubnetのルートテーブルを編集しましたが、vpcに依存する場合はvpcのルートテーブルを編集してください。
4. BアカウントのauroraクラスターのSecurity Groupのインバウンドを開放
auroraはSecurity Groupによってインバウンドアクセスを制御しているので、AアカウントのEC2インスタンスのsubnetのCIDRを許可します。
5. 確認
AアカウントのEC2インスタンスからmysqlコマンドでauroraクラスターにアクセスできます。
まとめ
VPC間を超えて接続するユースケースってそんなに無いと思いますが、いざというときには便利ですね。
例えば別アカウント間RDSのレプリケーションを実行したいとか...
ただ、VPCの意義を否定する使い方なのであまり使うことはおすすめしません。
脆弱性を増やす原因にもなるので、一時利用に押さえましょう。