从专用VPC子网访问Amazon S3

如果我有一个VPC正在运行,并且一些服务器位于该networking的私有部分,通过从亚马逊S3下载文件进行后端处理,我可以在内部访问S3以获取这些文件吗? 或者我必须通过NAT访问公共互联网,通过https下载s3文件,并以这种方式处理?

有了像“互联网”的用户名,我希望你知道这一点。 但是既然你问了…

🙂

VPC是真正的私人。 只有您明确允许的stream量可以通过VPC的边界。

因此,在VPC内部,需要访问外部资源的实例需要分配EIP(在这种情况下,他们可以使用AWS的基础设施访问外部资源),或者需要提供NAT主机(在这种情况下,所有的stream量出口VPC通过你自己的NAT)。

如果您select提供您自己的NAT主机,请记住,您需要禁用该实例的源/目标检查以及向私有子网添加默认路由,指向NAT主机。

UPDATE(2015-05-10):截至2015年5月11日,AWS已经发布了针对S3的“VPC Endpoint” ,允许直接从VPC访问S3,无需通过代理主机或NAT实例。 值得庆幸的是,由于尊重VPC的真正私有性质,此function在默认情况下处于closures状态,但可以使用AWS控制台或通过其API轻松打开。

如果您的实例位于VPC的公共子网中,则:

  • 要么你应该有分配给你的实例的公共IP地址
  • 或者你应该有弹性IP分配给你的实例

如果您的实例在VPC的私有子网中,则:

  • 您需要在公有子网中运行NAT设备。 这样VPC私有子网中的实例就可以通过NAT访问Internet,并访问S3。 您可以使用AWS VPC NAT,或者您可以自行configuration(如果您想要设置自己的NAT,则可以使用google)

底线,要访问S3,您必须能够访问互联网。

您不必“走出去”,也不需要改变在AWS区域内传输数据的方式。 从同一地区的水桶到水桶不收取任何费用。 你必须支付存储。