Skip to content
返回云服务

AWS ECS 容器服务

在托管 EC2 集群或 Fargate serverless 计算上运行 Docker 容器。

AWS进阶

为什么

ECS 跑 Docker 无 K8s 复杂性 — 任务定义、服务和调度已处理。Fargate 模式完全免服务器管理。简单负载比 EKS 便宜。

何时使用

Docker 负载无 K8s 需求时用 — Web API、后台 worker、定时任务。需 K8s 生态(Helm、operator)时用 EKS。

如何做

1. 集群 — aws ecs create-cluster,EC2 或 Fargate 启动类型 2. 任务定义 — 容器 JSON 规范(镜像、cpu、内存、端口、env) 3. 服务 — 运行 N 任务,集成 ALB、自动伸缩 4. Fargate — 无 EC2 管理,按 vCPU/GB-秒付费 5. EC2 模式 — 管理 EC2 ASG,稳态负载更便宜 6. 日志 — awslogs 驱动 → CloudWatch Logs 7. 密钥 — 存 Secrets Manager/SSM,任务定义引用 8. Service Connect — 内置服务发现 + 负载均衡

示例

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

常见问题

  • ⚠任务停止无日志 — 检查 CloudWatch 日志组存在且执行角色有日志权限
  • ⚠镜像拉取失败 — 确保任务执行角色有 ecr:GetRepositoryPolicy 权限
  • ⚠Fargate 冷启动 5-10 秒 — 延迟敏感时保持最小容量 > 0

最佳实践

  • ✓低运维用 Fargate — 无 EC2 补丁、按用付费、缩到零
  • ✓密钥存 Secrets Manager — 自动轮换、IAM 控制、任务定义无明文
  • ✓用 ECS Service Connect — 内置轻量服务网格,简单场景无需 Istio

常见问题解答

什么是AWS ECS 容器服务?它解决什么问题?

在托管 EC2 集群或 Fargate serverless 计算上运行 Docker 容器。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。

如何在 5 分钟内上手AWS ECS 容器服务?

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

AWS ECS 容器服务 最容易踩的坑是什么?

最高频的问题是:任务停止无日志 — 检查 CloudWatch 日志组存在且执行角色有日志权限。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。

AWS ECS 容器服务 的最佳实践有哪些?

AWS ECS 容器服务 的最佳实践包括:低运维用 Fargate — 无 EC2 补丁、按用付费、缩到零;密钥存 Secrets Manager — 自动轮换、IAM 控制、任务定义无明文;用 ECS Service Connect — 内置轻量服务网格,简单场景无需 Istio。其中首条「低运维用 Fargate — 无 EC2 补丁、按用付费、缩到零」应作为团队默认规范写入 IaC 模板。

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

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