通过 AWS Fargate 实现无服务器容器运维 - ECS 与 EKS 的应用模式

介绍无需实例管理的无服务器容器,包括 ECS 与 EKS 的使用场景区分以及通过任务大小调整进行成本优化的方法。

Fargate 的工作原理及与 EC2 启动类型的区别

Fargate 是 ECS 和 EKS 的无服务器计算引擎。EC2 启动类型需要自行管理运行容器的 EC2 实例的预置、扩展和补丁更新,而 Fargate 可将这些管理交给 AWS。在任务定义中指定 vCPU(0.25 到 16)和内存(0.5 GiB 到 120 GiB)后,AWS 会准备容器的运行环境。每个任务在基于 Firecracker 的独立 microVM 中运行,任务间不共享内核,安全隔离得到增强。无法访问底层主机 OS,也无法运行特权容器。平台版本(ECS)管理 OS 内核和运行时版本,指定 LATEST 会自动应用最新稳定版。

ECS on Fargate 与 EKS on Fargate 的使用场景区分

ECS on Fargate 是 AWS 原生的容器编排,通过任务定义、服务和集群三个概念即可简单运维。标准提供与 ALB 的集成、通过 Service Connect 实现的服务网格以及通过 CloudMap 实现的服务发现。ECS Exec 可连接交互式 Shell 到任务内的容器,用于生产环境调试。EKS on Fargate 在 Fargate 上运行 Kubernetes Pod。通过 Fargate Profile 定义命名空间和标签选择器,匹配条件的 Pod 自动调度到 Fargate。当需要利用 Kubernetes 生态系统(Helm、Argo CD、Prometheus 等)或在多云环境中推进 Kubernetes 标准化时选择此方案。但 EKS on Fargate 存在无法使用 DaemonSet、无法挂载 EBS 卷(支持 EFS)、不支持 GPU 实例、每个 Pod 分配 ENI 导致启动比 EC2 节点慢等限制。

成本优化

Fargate 按 vCPU 秒和内存 GB 秒按量计费。合理调整任务大小是成本优化的关键。通过 CloudWatch Container Insights 测量实际 CPU 和内存使用率,减少过度预置的任务资源。Fargate Spot 可在常规 Fargate 价格基础上享受最高 70% 的折扣,中断时从发送 SIGTERM 信号到容器被强制停止的宽限期默认为 30 秒。适用于基于队列的 Worker 和批处理等具有中断容忍性的工作负载。Compute Savings Plans 可跨 Fargate、Lambda 和 EC2 应用,1 年或 3 年承诺可使 Fargate 的使用最高获得 50% 折扣。

设计最佳实践与常见陷阱

vCPU 和内存的组合存在有效值矩阵,不能指定任意组合(例如 0.25 vCPU 仅可选择 0.5/1/2 GiB)。如果未正确设置健康检查宽限期 (healthCheckGracePeriodSeconds),启动较慢的容器可能会因健康检查失败而反复停止和重启。临时存储默认为 20 GiB(最大 200 GiB),任务终止时消失,因此持久数据应使用 EFS 或 S3。awsvpc 网络模式是必须的,由于每个任务分配一个 ENI,需注意子网 IP 地址耗尽。运行大量任务时,请确保至少 /19 的 CIDR 或启用 ENI Trunking。

Fargate 与 App Runner 的比较

App Runner(已停止接受新客户)是从源代码或容器镜像自动构建、部署和扩展的容器服务。已在使用的情况下,也可以不进行 VPC 配置或任务定义而发布 Web 应用和 API。而 Fargate 提供 VPC 内部署、细粒度安全组控制、Sidecar 容器、多容器任务定义和 EFS 挂载等高级网络和自定义功能。批处理、多容器配置以及需要直接访问 VPC 资源的工作负载适合 ECS on Fargate,稳定流量的 Web API 则是 App Runner 现有用户的选项。EKS on Fargate 在需要复用现有 Kubernetes 清单和工具链时选择。

总结

Fargate 是将容器运维中的基础设施管理交给 AWS 的无服务器计算引擎。可从 ECS on Fargate 简单起步,需要 Kubernetes 时迁移到 EKS on Fargate。成本方面可选择 Fargate Spot 和 Savings Plans,资源使用率则通过 Container Insights 持续监控。理解子网 IP 耗尽、vCPU/内存有效组合、健康检查设置等典型陷阱,是稳定生产运维的基础。

参考资料(AWS 官方)

本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。

如本页内容与官方文档不一致,请以官方文档为准。

分享