繁体   English   中英

替代AWS Lambda + NAT网关

[英]Alternative to AWS Lambda + NAT gateway

快速介绍一下我的场景:我有一个VPC,其中包含一个API网关,该API网关将其调用重定向到我的Lambda函数,然后它们可以访问RDS实例和外部API调用(互联网访问)。

它的结构

由于功能需要访问RDS,因此我将RDS和Lambda放在了同一VPC中,从而在没有公共可访问性的情况下正确地保护了RDS。 现在,由于Lambda位于VPC中,因此它们需要NAT网关才能访问Internet(几乎所有这些功能都需要调用第三方API),这是我面临的一个巨大问题。

问题

我有一个小项目可服务几个用户(范围从10到200个用户),并且使用我创建的无服务器设置,我希望每月的费用在$ 3.00到$ 10.00之间 那是没有 单个 NAT网关的成本。 现在,如果加上网关的价格,即每小时0.045美元 -我什至没有考虑每GB数据0.045美元的价格- 每月30美元以上 不创建另一个为多可用区并减轻可能的可用区域故障的我,这真是愚蠢的,因此对于2个NAT网关而言,价格超过60美元

这不仅对我不切实际,而且是否还会使通常遵循按需方法的整个无服务器结构的观点无效?

如何解决呢?

我的替代方案之一是将Lambda移出VPC(意味着没有VPC),并通过某种机制访问RDS,而又不公开访问它-这也是我失败的地方,一个人如何安全地访问RDS? Lambdas功能不在RDS VPC的场景?

在最坏的情况下-我知道向公众公开我的RDS是很不好的-但是要暴露多大的漏洞?

请记住,我不是在责怪AWS价格,这只是着眼于寻找NAT网关的替代产品-我感谢解决此问题的建议。 另外,对于完全错误的假设,我很抱歉,我是AWS生态系统的新手。

一个公共的RDS实例可以解决您的成本问题,但是我强烈建议您避免这样做,因为这意味着任何人都可以发现并尝试对其进行身份验证。

Lambdas

  • 由于您的Lambda需要与Internet和VPC进行通信,因此它们必须位于VPC中。
  • Lambda也不能部署到公共子网中,因此它们必须位于私有子网中
  • 因为他们需要与Internet通讯,所以您的专用子网需要NAT

幸运的是,使用AWS托管的NAT网关并不是将NAT附加到私有子网的唯一选择,您还可以选择运行自己的NAT实例。

https://docs.aws.amazon.com/vpc/latest/userguide/VPC_NAT_Instance.html

尽管不再建议这样做(管理NAT网关,所以首选),但是AWS仍提供您可以用来完成相同工作的NAT实例AMI。 您应该能够在每个专用子网中运行一个t2.nano NAT实例(位于不同的AZ以获取HA),每个价格约为5美元。

这将为您每月节省50美元,这意味着您可以将RDS实例置于私有子网中,而无需公开暴露。 唯一的缺点是现在您必须自己管理NAT实例(修补等)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM