AWS Lambda - 在VPC下使用Kinesis

时间:2016-07-30 11:16:08

标签: amazon-web-services aws-lambda nat amazon-vpc

我有一个使用AWS Lambda群集的ElastiCache Redis函数。 由于Redis群集在VPC中被“锁定”,因此Lambda函数也必须位于VPC内。

出于某种原因,如果Lambda分配了一个IP的{​​{1}},其中public subnet - 它仍然无法与外界建立联系(互联网) ),因此无法使用Internet gateway

为此,他们建议使用Kinesis网关,让NAT连接到外部。

基本上,这对我有用 - 但我的问题是金钱。 这种解决方案对于大量数据传输来说是昂贵的,我正在寻找一些方法来降低它的价格。

对于我制作的小Lambda,我付了POCenter image description here

这对于~$10来说太多了,因为我的生产渠道将运行数百~30GB /月。

如何建议我让gigabytes函数在不使用Lambda网关的情况下连接外部(特别是Kinesis)?

谢谢!

2 个答案:

答案 0 :(得分:2)

  

不使用NAT网关?

使用NAT 实例

在VPC中,您必须拥有这两项内容之一才能从私有IP地址访问Internet。

NAT实例正是在VPC中总是这样做的,直到相对较新的NAT网关服务推出为止。

  

您还可以使用NAT网关,这是一种托管NAT服务,可提供更好的可用性,更高的带宽,并且需要更少的管理工作。对于常见用例,我们建议您使用NAT网关而不是NAT实例。

     

http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html

当然,它更容易,但成本更高。多很多。在这种情况下最显着的区别是,对于NAT实例,您支付固定费用使用硬件,这可能是便宜的t2.nano,5美元/月。

NAT网关服务是一种高功率解决方案,具有几乎无限的扩展容量,并且相应地定价。 NAT实例只能与您选择运行它的硬件一样好,但我发现t2.nano和t2.micro足以满足需要低于250 Mbit / s互联网连接的工作负载。

使用上面的链接了解更多信息。

答案 1 :(得分:1)

Lambda函数实例永远不会被分配公共IP地址,无论您放置它们的VPC子网类型如何.NAT网关是在VPC内部提供Lambda函数的唯一解决方案,可以访问驻留在VPC外部的资源。 VPC(像Kinesis)。

如果由于成本而无法为您工作,您可能会考虑在具有弹性IP的EC2实例上运行Redis服务器,这将允许Lambda函数在不在VPC内部的情况下进行连接。类似的替代方案是使用RedisLabs而不是ElastiCache。