用途
本技能面向在 AWS ECS 上使用 Fargate 无服务器容器计算的场景,提供从选型、规格配置到成本优化与网络存储集成的完整参考。
主要能力
Fargate 与 EC2 选型
Fargate 为无服务器模式,无需手动管理,支持自动扩缩,按 vCPU-秒计费,管理开销低但控制力有限,适合负载波动、微服务架构、需要快速扩缩以及开发/测试环境。EC2 为手动管理模式,基于 ASG 扩缩,按实例-小时计费,开销高但控制力完整,适合稳态可预测负载、成本优化关键(利用率 >60%)、需要特定实例类型(GPU、高内存)、已有预留实例承诺或需要自定义 AMI 的场景。
CPU 与内存配置
文档给出有效组合:0.25 vCPU 对应 512 MB、1 GB、2 GB;0.5 vCPU 对应 1 GB–4 GB(1 GB 递增);1 vCPU 对应 2 GB–8 GB(1 GB 递增);2 vCPU 对应 4 GB–16 GB(1 GB 递增);4 vCPU 对应 8 GB–30 GB(1 GB 递增);8 vCPU 对应 16 GB–60 GB(4 GB 递增);16 vCPU 对应 32 GB–120 GB(8 GB 递增)。
文档提供按应用类型的选型决策函数示例:web_api 偏 CPU 密集,worker 偏内存密集,batch 需要突发容量,默认保守配置为 512 CPU / 1024 内存。并给出成本效益参考:开发环境 256/512,小型 API 512/1024,生产 API 1024/2048,内存密集 1024/4096,计算密集(ML 推理)4096/8192。
平台版本
1.4.0 为推荐版本,使用 containerd 运行时,支持 jumbo frames 与 UDP;1.3.0 已弃用(2026 年 3 月),使用 Docker 运行时;LATEST 自动更新至最新修订版。文档建议显式固定版本(如 "1.4.0"),而非使用 "LATEST",并给出 Terraform 与 Boto3 配置示例。
Fargate Spot 成本优化
相比按需最高可节省 70%,容量需要时提供 2 分钟终止通知,适合批处理、CI/CD 与容错负载。文档给出混合策略示例:保留按需基线(base=2)加 Spot 权重扩展(weight=4,约 80% 走 Spot),并提供 Boto3 配置。同时给出应用层优雅关闭的 Python 信号处理示例。
ARM/Graviton
相比 x86 约降低 20% 成本,许多负载性能提升最高 40%,API 不变,仅需修改任务定义。文档给出 runtime_platform 配置(cpu_architecture = "ARM64")以及多架构镜像的 Dockerfile 与 docker buildx 构建推送命令。
网络(awsvpc 模式)
每个 Fargate 任务获得独立 ENI,具有唯一私有 IP、专用安全组与完整网络隔离。文档给出 network_configuration 配置示例,并建议使用 VPC 端点(ECR API、ECR DKR、S3、Logs)以降低 NAT 成本。
EFS 持久化存储
文档给出 EFS 文件系统、挂载目标与任务定义中 efs_volume_configuration 的 Terraform 示例,包含传输加密与访问点授权配置。
临时存储
默认 20 GB,可配置至最高 200 GB,通过 ephemeral_storage 的 size_in_gib 设置。
成本优化与估算
优化策略与节省幅度:Fargate Spot 70%(低投入)、ARM/Graviton 20%(中)、合理规格 10–50%(中)、Compute Savings Plans 50%(低)、基于调度的扩缩 30–60%(中)。文档提供按月成本估算函数示例(us-east-1 近似费率:每 vCPU-小时 0.04048,每 GB-小时 0.004445),并给出 1 vCPU、2 GB、50% Spot 约 25 美元/月的示例。
使用方式
文档以 Terraform 与 Boto3 代码示例展示各项配置,包括任务定义、服务、容量提供者策略、网络、存储与端点。相关技能包括 boto3-ecs、terraform-ecs、ecs-deployment、ecs-troubleshooting。
适用场景
负载波动或不可预测、微服务架构、需要快速扩缩、开发/测试环境、无特定实例类型要求的工作负载。
限制
Fargate 控制力有限,不适合需要特定实例类型(GPU、高内存)、自定义 AMI 或已有预留实例承诺的稳态负载。Fargate Spot 会在容量需要时被终止(2 分钟通知),仅适合容错负载。具体价格随区域与时间变化,文档中的费率为近似值。