Skip to content
返回云服务

AWS ECS 与 Fargate 容器

用 Fargate 无服务器运行 Docker 容器 — 免 EC2 管理,按容器秒计费。

AWS进阶

为什么

Fargate 运行容器无需管理服务器 — 免补丁、免伸缩 EC2。按 vCPU/GB 秒计费。适合微服务和批处理。纯 AWS 用 ECS 比 EKS 简单。

何时使用

Docker 化微服务、定时任务和批处理用 ECS+Fargate。避免成本敏感稳态负载(EC2 便宜)或需 K8s 生态(用 EKS)。

如何做

1. 任务定义 — JSON 含容器镜像、CPU、内存、env、端口 2. 集群 — aws ecs create-cluster(Fargate 无需 EC2 实例) 3. 服务 — 运行任务定义、期望数、ALB、自动伸缩 4. Fargate — launchType=FARGATE,无实例管理 5. 日志 — awslogs 日志驱动 → CloudWatch Logs 6. 密钥 — ARN 引用,运行时从 Secrets Manager 解析 7. CI/CD — CodeBuild → ECR 推 → ECS 部署(强制新部署) 8. 自动伸缩 — CPU/内存或 ALB 请求数目标跟踪

示例

# 任务定义(Fargate) aws ecs register-task-definition --cli-input-json '{ "family": "my-app", "networkMode": "awsvpc", "requiresCompatibilities": ["FARGATE"], "cpu": "512", "memory": "1024", "containerDefinitions": [{ "name": "app", "image": "123.dkr.ecr.us-east-1.amazonaws.com/my-app:latest", "portMappings": [{"containerPort": 3000}], "logConfiguration": {"logDriver": "awslogs", "options": {"awslogs-group": "/ecs/my-app"}} }] }' # 作为带 ALB 的服务运行 aws ecs create-service --cluster my-cluster --service-name my-app \ --task-definition my-app --desired-count 2 --launch-type FARGATE \ --network-configuration awsvpcConfiguration={subnets=[subnet-1],securityGroups=[sg-1]} \ --load-balancers targetGroupArn=arn:aws:elasticloadbalancing:...,containerName=app,containerPort=3000

常见问题

  • ⚠Fargate 每容器最低约 $15/月 — 多小容器用 EC2 更便宜
  • ⚠需 awsvpc 网络 — 每任务一 ENI,子网 ENI 限上限任务数
  • ⚠镜像拉取延迟 — 大镜像慢启动,同区域 ECR + 多阶段构建

最佳实践

  • ✓批处理用 Fargate Spot — 70% 折扣,仅容错任务
  • ✓合理规格 CPU/内存 — Fargate 按配置非使用收费,超配浪费
  • ✓用 ECR 镜像扫描 — 推送时自动扫描,部署前抓漏洞

常见问题解答

什么是AWS ECS 与 Fargate 容器?它解决什么问题?

用 Fargate 无服务器运行 Docker 容器 — 免 EC2 管理,按容器秒计费。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。

如何在 5 分钟内上手AWS ECS 与 Fargate 容器?

两步即可跑通:① 任务定义 — JSON 含容器镜像、CPU、内存、env、端口;② 集群 — aws ecs create-cluster(Fargate 无需 EC2 实例)。建议先用免费套餐验证流程,再接入生产环境。

AWS ECS 与 Fargate 容器 最容易踩的坑是什么?

最高频的问题是:Fargate 每容器最低约 $15/月 — 多小容器用 EC2 更便宜。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。

AWS ECS 与 Fargate 容器 的最佳实践有哪些?

AWS ECS 与 Fargate 容器 的最佳实践包括:批处理用 Fargate Spot — 70% 折扣,仅容错任务;合理规格 CPU/内存 — Fargate 按配置非使用收费,超配浪费;用 ECR 镜像扫描 — 推送时自动扫描,部署前抓漏洞。其中首条「批处理用 Fargate Spot — 70% 折扣,仅容错任务」应作为团队默认规范写入 IaC 模板。

AWS ECS 与 Fargate 容器 如何控制成本与避免账单意外?

三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。AWS ECS 与 Fargate 容器 多数提供免费套餐,先在免费额度内验证再放量。