0

我在两个不同的可用区中有两个实例,它们需要相互通信。它们位于 vpc 私有子网内-

a) 当他们互相交谈时,流量会通过 NAT 吗?
b) 如果它们在公共子网中并且附加了弹性 IP,会发生什么?
c) 如果它们在两个不同的 az 中的 ec2 经典中怎么办?

4

1 回答 1

2

所有这些场景都可以采用任何一种方式,具体取决于实例如何相互寻址。

所有 VPC 实例都有一个私有 IP 地址,即使它们还具有来自池的弹性(公共)IP 或动态公共 IP。

只要A以B的私网IP为目的地连接B,流量就不会使用B的公网IP,也不会穿越NAT(当A没有公网IP时),不会使用A的公网或elastic IP(如果有的话)。

如果 A 使用 B 的公共地址作为目标连接到 B(如果 B 有一个),那么上一段中的任何陈述都不会成立......所以,您几乎总是希望在连接到时使用实例的私有 IP另一个例子。

EC-Classic 也是如此。

如果实例位于两个不同的 VPC 中(使用 VPC 对等互连),您还将为不同可用区中的实例之间以及同一可用区中的数据传输付费。在撰写本文时,费用为 0.02 美元/GB。在大多数情况下,准确地说,一个实例发送数据的费用为 0.01 美元,另一个实例接收数据的费用为 0.01 美元,但这是 0.02 美元的净额。相反,当实例跨两个不同区域相互通信时,发送实例支付 0.02 美元,接收实例支付 0.00 美元……当然,公共 IP 总是涉及多区域设置的某一层。

除非您使用 NAT 或弹性/公共 IP 地址,否则您无需为同一 AZ(和 VPC,如果是 VPC)中的实例之间的数据传输付费,这 - 除了潜在和不必要的性能损失之外 - 是另一个不这样做的原因这样做......同样,只有当一个实例不使用私有 IP 地址作为目标地址连接到另一个实例时才会发生这种情况。

于 2015-04-23T23:34:48.227 回答