用途:为用户提供 AWS ECS 容器工作负载的部署与配置建议,涵盖无状态 Web 服务、后台 worker、批处理任务及 sidecar 模式。
主要能力: 启动类型选型。默认推荐 Fargate,省去实例补丁、扩缩容与规格调整开销;需要 GPU、Graviton3、高内存实例、Docker-in-Docker、EBS 挂载或自定义 AMI 时选 EC2。容错批处理/worker 可用 Fargate Spot,资料称最多节省约 70%。 任务定义。每个任务定义放一个应用容器,sidecar(日志路由、envoy、datadog agent)可同置;Fargate 在任务级设 cpu/memory,EC2 在容器级设限制;凭据用 Secrets Manager 或 Parameter Store,不要写入镜像或环境变量;sidecar 排序用 dependsOn 配合 condition: HEALTHY;仅在主容器设 essential: true;尽量启用 readonlyRootFilesystem。 网络与服务。Fargate 强制 awsvpc 模式,任务放私有子网,通过 NAT 网关或 VPC 端点访问 ECR/S3/CloudWatch Logs;按服务设安全组;服务间通信优先用 Service Connect。负载均衡:HTTP/HTTPS 默认 ALB,TCP/UDP、超高吞吐或静态 IP 用 NLB;配置 healthCheckGracePeriodSeconds 至少为启动时间两倍,deregistrationDelay 可设 30s。 扩缩容。默认按 ECSServiceAverageCPUUtilization 70% 目标追踪;请求型服务按 ALB 的 RequestCountPerTarget 扩缩;队列 worker 用 SQS 的 ApproximateNumberOfMessagesVisible 配合步进扩缩;生产环境 minCapacity 至少 2。 Express Mode。用三个参数(容器镜像、任务执行角色、基础设施角色)一次 API 调用部署带负载均衡的 Fargate 服务,无额外收费,AWS 建议以其替代 App Runner。优点是生产级默认值(Canary 部署、可用区再平衡、自动扩缩、ACM HTTPS、CloudWatch 日志),底层仍是完整 ECS,可随时退出;限制是仅 HTTP/HTTPS、仅 Fargate、Canary 锁定、LB 配置创建后不可变、单容器、每 VPC 子网锁定。相关参数与 IaC 示例见 references/express-mode.md。 部署策略。滚动更新为默认,设 minimumHealthyPercent: 100、maximumPercent: 200 实现零停机;需要即时回滚的生产服务用 CodeDeploy 蓝绿;高风险变更用 Canary;始终启用 deploymentCircuitBreaker 并开启 rollback: true。 供给方式。所有 ECS 资源(集群、任务定义、服务、负载均衡、自动扩缩)应通过 CloudFormation、CDK 或 Terraform 等 IaC 供给,不要用命令式 CLI 创建或变更基础设施。CLI 仅限只读、可观测性与交互式调试,如: aws ecs describe-clusters --clusters my-cluster --include STATISTICS ATTACHMENTS aws ecs list-services --cluster my-cluster aws ecs describe-services --cluster my-cluster --services my-svc aws ecs list-tasks --cluster my-cluster --service-name my-svc --desired-status RUNNING aws ecs describe-tasks --cluster my-cluster --tasks <task-id> aws ecs execute-command --cluster my-cluster --task <task-id> --container my-container --interactive --command "/bin/sh" aws logs tail /ecs/my-task --follow aws ecs describe-task-definition --task-definition my-task
验证与限制:涉及 ECS 限额、定价或功能可用性时,应使用 awsknowledge MCP 工具(mcp__plugin_aws-dev-toolkit_awsknowledge__aws___search_documentation、aws___read_documentation、aws___recommend)核实。资料未提供具体价格数值以外的承诺,实际费用与限额以 AWS 官方为准。
反模式:生产用 :latest 标签;单账号一个巨型集群;任务规格过大;跳过健康检查;忽略 ECS Exec;未启用部署断路器;把密钥放环境变量;以 root 运行。
相关技能:eks、ec2、networking、iam、cloudfront、observability。