我在两个不同的可用区域中有两个实例需要相互通信。它们位于vpc私有子网中 -
a)当他们互相交谈时,流量会通过NAT吗? b)如果它们在公共子网中并且附有弹性IP会发生什么? c)如果他们在两个不同的az中使用ec2 classic会怎样?
答案 0 :(得分:1)
所有这些场景都可以采用任何一种方式,具体取决于实例如何相互对话。
所有VPC实例都有一个私有IP地址,即使它们也有来自池的弹性(公共)IP或动态公共IP。
只要A使用B的私有IP地址作为目的地连接到B,流量就不会使用B的公共IP,也不会遍历NAT(当A不是时)拥有公共IP)并且不会使用A的公共或弹性IP(如果有的话)。
如果A使用B&#39的公共地址作为目的地连接到B(如果B有一个),那么前一段中的所有语句都不会成立......所以,你几乎总是想要使用私有连接到另一个实例时的实例IP。
在EC-Classic中也是如此。
如果实例位于两个不同的VPC中(使用VPC对等),您还需要为不同可用区域中的实例之间的数据传输付费,并在同一AZ中进行数据传输。在撰写本文时,费用为0.02美元/ GB。在大多数情况下,确切地说,一个实例收取0.01美元发送数据,另一个收费0.01美元收到它,但这是0.02美元的净额。相反,当实例在两个不同的区域之间相互通信时,发送实例支付0.02美元而接收实例支付0.00美元......当然,公共IP总是涉及多层的某个层 - 区域设置。
您不支付同一AZ(和VPC,如果是VPC)中的实例之间的数据传输费用,除非您使用NAT或弹性/公共IP地址,除了潜力和不必要的性能损失 - 是不这样做的另一个原因......再次,只有当一个实例没有使用私有IP地址作为目标地址连接到另一个实例时,才会发生这种情况。