章节 01
导读 / 主楼:构建生产级异步 LLM 推理服务:架构设计与工程实践
基于 FastAPI、SQS 和 ECS Fargate 的异步 ML 推理平台,支持 500+ 并发用户,实现 API 层与推理层的完全解耦,附带完整的 Terraform 基础设施即代码和可观测性方案。
正文
基于 FastAPI、SQS 和 ECS Fargate 的异步 ML 推理平台,支持 500+ 并发用户,实现 API 层与推理层的完全解耦,附带完整的 Terraform 基础设施即代码和可观测性方案。
章节 01
基于 FastAPI、SQS 和 ECS Fargate 的异步 ML 推理平台,支持 500+ 并发用户,实现 API 层与推理层的完全解耦,附带完整的 Terraform 基础设施即代码和可观测性方案。
章节 02
以一个典型的文本分类场景为例。使用 DistilBERT 模型进行一次前向传播大约需要 100-500 毫秒。如果采用同步架构,API 服务器必须等待推理完成后才能响应客户端。这意味着:
这种模式在负载增加时会出现明显的性能悬崖——系统不是优雅降级,而是直接崩溃。
章节 03
该项目的解决方案借鉴了 AWS SageMaker 异步推理等生产系统的成熟模式,采用双层架构:
章节 04
API 服务只负责三件事:验证请求、写入数据库、发送队列消息。响应时间在毫秒级别,与推理耗时完全无关。客户端收到的是一个 job_id,而不是最终结果。
章节 05
独立的 Worker 服务从队列中拉取任务,执行实际的模型推理,然后将结果写回数据库。Worker 的数量可以根据队列深度动态调整,与 API 层的负载完全解耦。
这种架构的关键优势在于:
章节 06
项目采用 AWS 托管服务构建完整的基础设施:
计算层:ECS Fargate 提供无服务器容器运行环境,API 服务配置为 2 个任务(512 CPU / 1GB 内存),Worker 服务支持 1-10 个任务的自动扩缩容。
队列系统:SQS 标准队列用于任务分发,配合死信队列(DLQ)实现失败任务的三次重试机制。长轮询模式(30 秒可见性超时)确保 Worker 高效利用。
数据存储:DynamoDB 采用按需计费模式(PAY_PER_REQUEST),配合 24 小时 TTL 自动清理已完成任务,无需容量规划。
负载均衡:应用型负载均衡器(ALB)将流量分发到 API 服务,支持健康检查和自动故障转移。
自动扩缩容:基于 CloudWatch 队列深度告警触发阶梯式扩容(1→3→6→10),响应速度优于传统的百分比扩容策略。
章节 07
生产系统离不开完善的监控。该项目采用了 Prometheus + Grafana 的组合,并通过 Grafana Alloy 作为 sidecar 解决 Fargate 动态 IP 环境下的指标采集问题:
章节 08
项目在多个层面考虑了安全性: