gpt4 book ai didi

amazon-web-services - AWS Lambda + NAT 网关的替代方案

转载 作者:行者123 更新时间:2023-12-04 15:29:09 27 4
gpt4 key购买 nike

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

它的结构如何

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

问题

我有一个小项目来服务一些用户(从 10 到 200 个用户),并且使用我创建的无服务器设置,我预计成本为 每月 3.00 美元到 10.00 美元 .这就是成本没有 一个 NAT 网关。现在,如果我们加上网关的价格,即 $0.045 per hour - 我什至没有考虑每 GB 数据传输 0.045 美元 - 即 > 每月 30 美元 .如果不创建另一个多可用区并减轻可能的可用区故障,我会很愚蠢 - 所以 >$60.00 用于 2 个 NAT 网关 .

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

如何解决这个问题?

我的选择之一是将 Lambdas 移出 VPC(意味着没有 VPC)并通过某种机制访问 RDS,而不使其公开访问 - 这也是我失败的地方,如何安全地访问 RDS Lambdas 函数在 RDS VPC 之外的场景?

在最坏的情况下——我知道将我的 RDS 暴露给公众是不好的——但是暴露它的漏洞有多大?

请记住,我并不是在责怪 AWS 的价格,这只是专注于寻找 NAT 网关的替代品——我很欣赏解决这种情况的建议。另外,如果我做了一个完全错误的假设,我很抱歉,我是 AWS 生态系统的新手。

最佳答案

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

lambda 斯

  • 因为您的 lambda 需要与 Internet 以及您的 VPC 通信,所以它们必须存在于 VPC 中。
  • Lambda 也不能部署到公共(public)子网中,因此它们必须位于私有(private)子网中
  • 因为他们需要与 Internet 通信,所以您的私有(private)子网需要一个 NAT

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

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

    虽然不再建议这样做(NAT 网关是托管的,因此是首选),但 AWS 仍然提供 NAT 实例 AMI,您可以使用它们来完成相同的工作。您应该能够在每个私有(private)子网(在不同的 AZ 以获得 HA)中运行一个 t2.nano NAT 实例,每个大约 5 美元。

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

    关于amazon-web-services - AWS Lambda + NAT 网关的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56453496/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com