【问题标题】:AWS Lambda vs EC2 REST APIAWS Lambda 与 EC2 REST API
【发布时间】:2020-06-12 14:17:39
【问题描述】:

我不是 AWS 方面的专家,但有一些经验。遇到 Angular UI(EC2 上的主机)必须与 RDS 数据库实例通信的情况。到目前为止,所有设置都在堆栈中,除了 API(中间件)。我们正在考虑使用 Lambda(因为目前我们的流量未知)。同样在这里,我们在编程方面有很多选择,比如 C#、Python 或 Node。 (我们正在向 C# 或 Python 倾斜,基于已完成的一些研究和 Python 擅长具有出色的冷启动和 C# .NET 核心在性能方面稳定的技能)。 由于我们使用 Lambda 课程,我们应该走 API GATEWAY 的路线。一切就绪,但现在,我们应用程序的所有业务逻辑都可以驻留在 Lambda 中吗?如果是这样,Lambda 会不会变得巨大并受到性能影响(更多的内存,更多的计算资源因此更高的成本?)?然后我们想到让 Lambda 在那里进行轻量级处理,并且可以将繁重的工作转移到托管在 EC2 上的 .NET API?

不确定我们在这种方法中是否发现了任何问题?还必须提到,Lambda 必须调用 RDS 进行 CRUD 操作,那么我应该多考虑并发问题吗?因为它可能属于全州?

【问题讨论】:

    标签: amazon-ec2 aws-lambda aws-api-gateway asp.net-core-webapi


    【解决方案1】:

    AWS Lambda 的优势在于可扩展性。如您所知,因为 Lambda 是完全托管的,因此我们可以在这种情况下利用它。

    如果您在 EC2 上托管 API,那么我们就没有“扩展”部分。当然,您也可以开始使用 ECS、Auto Scaling Group……但它会带您走另一条路。

    您构建此应用程序是为了学习还是为了生产?

    【讨论】:

    • 嗨 Nghia - 感谢您的回复。将很快开始为开发计划此堆栈用于生产。我担心的是,将所有业务逻辑(我们的应用程序在从 RDS DB 中提取数据后必须进行大量预测/计划计算)保留在 LAMBDA 中是否理想?每个人说有一个峰值,并且 RDS 响应有点慢或 Lambda 处理逻辑运行缓慢,然后 Lambda 调用会堆积起来,或者由于 Lambda 缩放会同时在不同的容器中运行? [对于每个请求,数据库数据可能不同]
    • 将业务逻辑保留在 Lambda 中并没有错。在我们的项目中,我们运行了大约 30 个 lambda。它们中的每一个都包含一个小逻辑。还要考虑 Lambda 是否可以调用 API,这取决于您要如何定义 API 层。要完成无服务器,您可以考虑是否可以将我们的数据库扁平化为键/值,也可以使用 DynamoDB。谢谢,NghiaDo
    • 所以我从您的回复中了解到,完整的业务逻辑肯定可以合并到 Lambda 函数中。那是我不确定的地方,但感谢您的回答。此外,似乎世界正在通过选择 LAMBDA 走向无服务器,以及微服务的未来如何?我知道他在这种情况下微服务意味着大量的维护开销,但使用 ECS 进行微服务可能会有所帮助?
    • Lambda 并不是要取代微服务。他们可以一起工作。我这里有一个简单的设计。假设我们正在构建一个具有 3 个子系统 A、B、C 的产品,其中 C 是一个平台服务,可以提供在 A、B 中使用的通用服务或实用程序。所以 A,B 可以构建在多个 AWS Lambda 之上,这些 lambda 可以调用 C 中构建的微服务。
    猜你喜欢
    • 1970-01-01
    • 2018-08-12
    • 1970-01-01
    • 2019-11-29
    • 2016-06-23
    • 2019-01-22
    • 1970-01-01
    • 2019-11-20
    • 2018-04-03
    相关资源
    最近更新 更多