背景 (Background)
在大规模物联网(IoT)数据处理系统中,后端持续实时分析传入的文件。为了维持高吞吐量,系统通常会运行多达 200 个并发的 ECS 任务进行并行分析。由于这些工作负载是长时间运行且高度并行的,因此优化运营成本变得至关重要。
为降低总体计算费用,系统主要利用 Fargate Spot 容量提供程序来执行任务。然而,Spot 资源偶尔会遇到容量短缺或 AWS 侧的中断,导致任务放置失败或长时间处于 **Pending(待定)**状态。
本架构引入了一个自动化故障转移机制,旨在同时确保系统稳定性和成本效益。
系统概览 (System Overview)
本系统实现了全自动化的 Serverless 架构,用于监控 ECS Fargate Spot 实例的健康状态,并在连续故障发生时自动切换到标准 Fargate 实例,从而确保服务的高可用性。
架构图 (Architecture Diagram)
代码段
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ ECS 集群 │ │ EventBridge │ │ Lambda 函数 │
│ │ │ │ │ │
│ ┌─────────────┐ │ │ ┌──────────────┐ │ │ ┌─────────────┐ │
│ │ Spot 服务 │ │───▶│ │ 任务状态 │ │───▶│ │ 错误 │ │
│ │ │ │ │ │ 变更规则 │ │ │ │ 检测器 │ │
│ └─────────────┘ │ │ └──────────────┘ │ │ └─────────────┘ │
│ │ │ │ │ │ │
│ ┌─────────────┐ │ │ ┌──────────────┐ │ │ ▼ │
│ │ 标准服务 │ │ │ │ 任务运行 │ │ │ ┌─────────────┐ │
│ │ (备份) │ │ │ │ 规则 │ │ │ │ 故障转移 │ │
│ └─────────────┘ │ │ └──────────────┘ │ │ │ 协调器 │ │
└─────────────────┘ └──────────────────┘ │ └─────────────┘ │
│ │ │
│ ▼ │
┌─────────────────┐ ┌──────────────────┐ │ ┌─────────────┐ │
│ DynamoDB │ │ SNS │ │ │ 成功 │ │
│ │ │ │ │ │ 监控器 │ │
│ ┌─────────────┐ │ │ ┌──────────────┐ │ │ └─────────────┘ │
│ │ 错误 │ │◀──

最低0.47元/天 解锁文章
183

被折叠的 条评论
为什么被折叠?



