AWS-通过NAT网关向Internet发送流量,并向另一个VPC私有发送流量

时间:2019-11-14 13:11:46

标签: amazon-web-services networking amazon-vpc aws-nat-gateway

在这种情况下,我必须使用1个IP(白名单问题)通过我的各种docker连接公共API,因此必须使用NAT网关。同时,Docker还需要连接到RDS(从另一个VPC)并进行一些读/写。

如何做到这一点?通过NAT网关的公共流量路由和通过VPC对等的私有流量到另一个VPC是否可能?

谢谢。

1 个答案:

答案 0 :(得分:0)

我花了两天的时间来回答这个问题,因此将其发布给具有类似用例的人。

实施:

  1. 为Docker创建了“新VPC”以进行分拆
  2. 创建“新Internet网关”并将其附加到“新VPC”
  3. 创建了一个“ Nat网关”并关联了一个弹性IP地址,该地址已在“外部API”上列入白名单
  4. 创建了由“新VPC”请求并由“默认VPC”接受的“ VPC对等连接”
  5. 在“ New VPC”中创建了2个子网,其中1个是私有的,而1个是公共的(现在仅是公共的,以便我可以连接到测试,对于无人值守的dockers来说就足够了)
  6. 对于“公共子网”,将路由修改为将0.0.0.0/0指向“新Internet网关”,将172.xx.0.0 / 16指向“ VPC对等连接”
  7. 对于“专用子网”,将路由修改为指向“ NAT网关”的路径为0.0.0.0/0,以便所有流量都通过特定的IP。

测试:

  • 我从在“ NewVPC”->“私有子网”上创建的实例访问了“外部API”,
  • 我netcat托管在“默认VPC”上的“ RDS端口-3306”

结果:

  • 在“外部API”的日志中,它显示与“ Nat网关”关联的IP。
  • “默认VPC”上托管的“ RDS端口-3306”正在解析为“新VPC”上的实例