从具有公有 IP 地址的 VPC EC2 实例到同一区域中的 S3 存储桶的流量是否保证保留在 Amazon 的网络中?



这个问题的灵感来自这条推文,该推文是由某人意外和意外地由于NAT网关而产生大笔账单的人。

我正在使用 EC2 处理来自 S3 存储桶的 TB 级数据。存储桶和实例位于同一区域。

我的目标是最大限度地降低成本。特别是,我想为 S3 数据传输费用支付 0 美元。根据 S3 定价页面,这应该是可能的:

在 S3 存储桶之间或从 Amazon S3 传输到同一 AWS 区域内的任何服务都是免费的。

我的实例位于 VPC 中,具有公有 IP 地址,没有 NAT 网关,没有 S3 网关终端节点。

我观察到,在这样做的几个月里,我没有被指控。来自不同区域中的服务器traceroute显示到 S3 主机的中间跃点,而来自同一区域中的服务器的路由不会显示到 S3 终端节点的中间跃点。这总是有保证的吗?有一天,亚马逊的DNS解析器能否给我一个需要通过公共互联网路由的IP地址,从而产生数千美元的费用?

这个问题似乎有点相关,但并没有真正解决核心问题。

这条推文似乎没有准确反映他们所承担费用的真实性质。

(我并不是说他们没有被指控,我是说在这种情况下描述为S3不是免费的是不正确的,即使推文暗示情况确实如此。

进出同一区域内其他服务的 S3 流量不是免费的*- 它只是免费的。

在 S3 存储桶之间或从 Amazon S3 传输到同一 AWS 区域内的任何服务都是免费的。

https://aws.amazon.com/s3/pricing/

这并没有说明流量的路由,流量的路由也不重要,因为 - 回到推文 - 他们不会被Amazon S3收取这些使用费。

Amazon VPC 会因使用 NAT 网关而向他们收费。 您通过 NAT 网关访问的内容无关紧要,因为"数据处理"费用始终适用于通过该网关的流量。

数据处理

费用适用于通过 NAT 网关处理的每个 GB,无论流量的来源或目标如何。

https://aws.amazon.com/vpc/pricing/

NAT 网关定价页面(包括类似这样的旧版本(特别提到,通过 NAT 网关访问 S3 需支付适用于 NAT 网关的所有费用。

使用具有公有 IP 地址的 EC2 实例或使用 S3 终端节点访问同一区域中的 S3 不会产生任何数据传输费用。

当您在区域内访问 S3 时,流量(根据相关定义(不会离开该区域,因为存储在给定区域中的对象始终位于该区域中。

存储在区域中的对象永远不会离开该区域,除非您明确将其传输到另一个区域。

https://docs.aws.amazon.com/AmazonS3/latest/dev/Introduction.html

只要您不使用 NAT 网关,或者执行类似的次优操作,例如通过在另一个区域中传输 EC2 NAT 实例或转发代理(例如 Squid(来访问 S3(这将导致客户端实例与 NAT 实例或由 VPC 或 EC2 (而不是 S3(计费的代理之间产生跨区域流量费用(,那么您就不应该期望为区域内与 S3 相关的数据传输付费。

最新更新