利用 AWS Lambda 与 EventBridge 优化低频 Java 作业的云计算成本
在云计算成本优化中,选择正确的服务架构至关重要。一家公司在 Amazon EC2 实例上运行一个基于 Java 的作业。该作业每小时运行一次,每次运行 10 秒,消耗 1 GB 内存。实例的 CPU 利用率通常较低,仅在作业运行期间有短暂峰值,此时作业使用最大可用 CPU。公司希望优化运行该作业的成本,可以将代码复制到具有 1 GB 内存的 AWS Lambda 函数中,然后创建 Amazon EventBridge 计划规则每小时运行代码。
为什么采用这个解决方案
-
成本效益:AWS Lambda 按实际执行时间和内存使用量计费,计费单位为毫秒,没有闲置成本。作业每小时运行 10 秒,每月约运行 720 次(24 小时 × 30 天)。以 us-east-1 区域为例,Lambda 的定价为每 GB-秒 0.0000166667 美元。计算每月成本:
- 运行时间成本:720 次 × 10 秒 × 1 GB × 0.0000166667 美元 = 约 0.12 美元。
- 请求成本:每百万请求 0.20 美元,720 次请求可忽略不计(约 0.000144 美元)。
总成本约 0.12 美元每月,远低于其他选项。此外,Lambda 无需管理服务器,进一步降低运维成本。
-
性能匹配:作业需要 1 GB 内存,Lambda 允许精确配置内存,且 CPU 资源随内存比例分配。对于 10 秒的短暂运行,即使有 CPU 峰值,Lambda 的 CPU 性能也足够支持 Java 作业。冷启动问题可能存在,但由于作业每小时运行一次,冷启动延迟(通常几秒)在可接受范围内,且不影响总体成本。
-
调度简单:Amazon EventBridge 提供可靠的计划规则,可以轻松配置每小时触发 Lambda 函数,确保作业准时运行。EventBridge 与 Lambda 集成无缝,无需额外基础设施。
-
简化管理:直接复制代码到 Lambda 函数,无需容器化或修改现有架构,减少了部署复杂性。Lambda 自动处理扩缩容、打补丁和监控,让公司专注于业务逻辑。
