VPC Peeringとは
2つのVPC間の通信を外部ネットワーク経由でなくL3ネットワーク経由で、でVPC間の相互に通信ができるサービスです。
VPC Peeringの概要や利用する際の注意点(IPアドレスの重複は避けようとか、は公式ブログが詳しいです。
- Amazon Web Services ブログ
【AWS発表】Amazon Virtual Private CloudでVPCピアリング (VPC間接続)が可能に - AWS Solutions Architect ブログ
VPC Peeringの使いどころとTips等々 - Developers.IOブログ
Amazon VPC Peeringの技術的考察と留意点
やりたいこと
- AWSアカウントAのVPC-A(10.0.0.0/16)にZabbix Serverを用意し、AWSアカウントBのVPC-B(10.45.0.0/22)にZabbix AgentをインストールしたEC2インスタンスを用意して監視する。そのためのVPC Peeringの設定方法を記載します。
概要図
手順
VPC Peeringを設定する
VPC-A(10.0.0.0/16)とVPC-B(10.45.0.0/22)間で通信ができるようにVPC Peeringを設定する
VPC-A側でVPC Peering Connectionを作成する
VPC DashboardからPeering Connectionsを選択し、右側画面上部「Create VPC Peering Connection」をクリック。
項目名 | 説明 |
---|---|
NameTag | VPC Peeringのネームタグ |
Local VPC to peer | 設定する接続元VPCの選択 |
Account | 自分のアカウントか別のアカウントかを選択する。自分の場合は直下の一覧から接続先VPCを選択する。別のアカウントの場合はアカウントID(数字のやつ)とVPC IDを入力する。 |
VPC-A側にVPC Peering Connectionが作られた。
ただしstatus「Pending Acceptance by xxxxxxx」となっている。
別アカウントをまたいだVPC Peeringを作る場合は、相手側の承認が必要になる。承認期限は1週間みたいだ。(この場合はVPC-B側の承認が必要)
VPC-B側でVPC-A側で作成したVPC Peering Connectionを承認する
VPC-B側ではVPC-A側で作成したVPC Peering Connectionのリクエストが来ているので、AWSアカウントIDとVPC IDを確認した上で「Accept request」をクリック
確認ダイアログを経て、statusが「active」になっていればOK!
VPC-A,Bでルーティング設定を行う
VPC Peering connectionができただけでは実際の通信はできません。それぞれのVPCでルーティング設定を行う必要があります。
VPC DashboardからRoute Tablesを選択してルーティングの編集を行うと、先ほど作成したVPC Peering Connection(pcx-xxxxxx)がTargetとして選択できるようになっています。
- VPC-A(10.0.0.0/16) -> VPC-B(10.45.0.0/22)へのルーティング設定
- VPC-B(10.45.0.0/22) -> VPC-A(10.0.0.0/16)へのルーティング設定
これでVPC-A,B同士の相互通信ができるようになりました。
なお、通信テストをする際はEC2等についているSecurity Groupも許可することを忘れないでください。