+86 135 410 16684Mon. - Fri. 10:00-22:00

用Peering Connections将多个AWS VPC私网打通

用Peering Connections将多个VPC私网打通

用Peering Connections将多个AWS VPC私网打通

目的:打通相同region的两个VPC(相同账号或者不同账号)
VPC A 10.0.0.0/16 (主动方)
VPC B 10.1.0.0/16 (被动方)

使用web console图形界面操作
这个涉及到网络和路由层面的,建议还是浏览器操作, 在VPC服务dashboard左侧中间有Peering Connections选项
1. 创建一个AB之间的peering connection,可以跨账号打通。并获取Id”,形如”pcx-111xxx111″
2. 接受创建PeeringConnection邀请,跨账号的话,在对方账号操作
3. VPC A中创建到VPC B私网的路由,Destination写VPC B的网段,Target选择刚才创建的pcx
4. VPC B中创建到VPC A私网的路由,Destination写VPC A的网段, Target选择刚才创建的pcx

用命令行API操作
1. 列举出当前节点的所有VPC重要信息
aws ec2 describe-vpcs --query 'Vpcs[*].[VpcId,CidrBlock,Tags]'
2. 创建peering connection
aws ec2 create-vpc-peering-connection --vpc-id vpc-aaaaaaaa --peer-vpc-id vpc-bbbbbbbb
跨账号打通的话
aws ec2 create-vpc-peering-connection --vpc-id vpc-aaaaaaaa --peer-vpc-id vpc-bbbbbbbb --peer-owner-id 123456bbbbbb
并获取到VpcPeeringConnectionId,形如pcx-aaaxxxbbb
3. 在同账号或者对方账号接收邀请
aws ec2 accept-vpc-peering-connection --vpc-peering-connection-id pcx-aaaxxxbbb
4. 在VPC A中添加到VPC B的路由
aws ec2 create-route --route-table-id rtb-aaaaaaaa --destination-cidr-block 10.1.0.0/16 --vpc-peering-connection-id pcx-aaaxxxbbb
5. 在VPC B中添加到VPC A的路由
aws ec2 create-route --route-table-id rtb-bbbbbbbb --destination-cidr-block 10.0.0.0/16 --vpc-peering-connection-id pcx-aaaxxxbbb
6. 然后修改安全组允许访问就OK了

其他:

1. 假如A和B打通了,B和C打通了,A和C之间不做操作的话,是不通的,必须也创建peering connection
2. 暂不支持跨region打通,VPC到自己机房之间打通没试过,不知可行否
3. 私网IP冲突的话,那是肯定不行的,所以使用之初,最好做下VPC网络规划
4. 这种功能对于像畅游这样十来个子账号做consolidated billing使用的话,打通私网就节省了好多监控、中控之类的辅助功能服务器