VPC端点在AWS上的好处是什么?

我很久以前就知道,如果你希望一个EC2实例能够与SQS,Kinesis等AWS服务交谈,那么这个实例必须有一个公有IP地址,或者需要在VPC内做NAT 。

当我在今年早些时候第一次听说VPC Endpoints时 ,它似乎是一个改变游戏规则的方式 – 从只有私有IP的实例访问这些服务的一种方式。 但是,唯一支持的服务是S3的事实似乎是非常有限的。 我当前pipe理的每个EC2实例都依赖于非S3中的AWS资源,这需要stream量通过公共IP进行传输。

我很好奇,是否还有任何其他的好处来使用S3的VPC Endpoint,但是有一点需要理解,其余的堆栈仍然依赖于公共IP地址,并且会持续一段时间。 速度/吞吐量是否有任何可衡量的改善,或者其他任何可能超过pipe理开销的好处?

没有公共IP的VPC节点必须遍历NAT网关实例或NAT服务才能到达S3(暂时忽略VPCterminal节点)。 前者是一个可用性和带宽约束,后者每字节利用成本。

使用VPC端点,您的私有主机不需要遍历任何一个到S3,并且可以更便宜并且可能更快。

这是一个旧的线程,但他们刚刚为DynamoDB发布了VPC端点 。 我希望他们joinSQS。 由于在VPC中运行的Lambda函数没有互联网访问权限,因此如果不设置NAT网关,他们将无法访问任何公共的AWS服务。 因此,如果您希望Lambda函数访问VPC中的资源(例如RDS),并向SQS,SNS,SES,任何其他公共AWS服务(不使用VPC端点)或调用另一个Lambda函数发送某些内容,则不能。

如果他们为SQS添加了VPC端点,则可以使用VPC lambda函数访问VPC资源,将结果发送到SQS队列,然后使用公共Lambda函数观察并使用队列消息,以任何公共AWS服务(SNS,SES)的身份访问需要。 目前我被困在'看'S3 / DynamoDB,因为我不想承担托pipe的NAT网关的成本。

VPC端点的好处主要是安全性。 在封闭的专用VPC中,在S3中存储/检索数据的能力对那些不使用AWS进行公共用途的人来说是有吸引力的。