【发布时间】:2017-10-08 15:14:24
【问题描述】:
在我正在进行的一个项目中,在 AWS 上实现了许多 Web 服务。相对简单的服务(DynamoDB 插入或查找)且使用频率相对较低,已实现为 Lambda,非常适合该任务。还有一个更复杂的 Web 服务,它执行大量的字符串处理和正则表达式匹配,需要高性能,它已在 C++(大约 5K LOC)中作为 Nginx 模块实现,可以处理 20K 请求/ s 在 EC2 实例上运行(该服务只接受一个小的 JSON 有效负载,对位于 S3 上的静态数据文件中的一些参考数据进行大量字符串处理和正则表达式匹配,并返回大小小于 1KB 的 JSON 响应)
管理层推动统一我们对 AWS 服务的使用,并将所有 Web 服务实现为 Lambda。
我的问题是:在 EC2 上运行的 C/C++ nginx 编译模块等高性能 Web 服务是否可以实际转换为 AWS Lambda(在 Python 中)并期望具有相同的性能,还是与 EC2 上的性能相同?如果转换为 Lambda,需要注意哪些性能注意事项?
【问题讨论】:
-
恕我直言,就性能而言,Lambda 函数无法与纯 C/C++ nginx 编译模块竞争,但有趣的是,Lambda at edge 是 Lambda 的精简版,并且可以用于响应早期的 HTTP 查询以响应 CloudFront 事件,这种机制显然需要快速。
-
听起来你已经很好地处理了这个问题——告诉管理层把他们的手指从他们的(r)耳朵里拿出来。 ??????
标签: amazon-web-services nginx amazon-ec2 aws-lambda