Amazon ECS 热门2014年〜
轻松运行和管理容器化应用程序的容器编排服务
它能做什么
Amazon ECS (Elastic Container Service) 是在 AWS 上轻松运行、停止和管理 Docker 容器的全托管容器编排服务。自动处理容器的放置、扩缩容、健康检查和负载均衡,让开发者专注于应用开发。可选择在 EC2 实例上运行或使用 AWS Fargate 无服务器运行两种方式。
使用场景
适用于微服务架构的构建和运维、Web 应用的容器化和生产部署、批处理和定时任务的容器执行、CI/CD 流水线中构建测试环境的搭建、遗留应用的容器迁移等所有使用容器的场景。
日常类比
可以将其比作大型物流仓库的管理系统。货物 (容器) 放在哪个货架 (服务器)、损坏的货物是否需要替换、旺季是否需要增加货架等决策全部自动完成。ECS 代替仓库管理员 24 小时不间断地考虑最优配置。
什么是 ECS
Amazon Elastic Container Service (ECS) 是 AWS 提供的全托管容器编排服务。它简化了使用 Docker 容器的应用程序部署、管理和扩缩容。2014 年发布,作为 AWS 自有的容器管理服务被众多企业采用。无需 Kubernetes 那样复杂的配置,与 AWS 各种服务的深度集成是其特点。
主要特性
ECS 的最大特点是与 AWS 生态系统的无缝集成。标准提供 Elastic Load Balancing 流量分发、CloudWatch 监控、IAM 细粒度访问控制。启动类型可选择 EC2 和 Fargate 两种,EC2 启动类型可细粒度控制实例类型和大小,Fargate 启动类型则完全无需服务器管理。通过称为任务定义的 JSON 配置文件,可以声明式管理容器的 CPU、内存和网络设置。
任务定义与服务
在 ECS 中,应用程序的执行单元称为「任务」。任务定义中描述使用的 Docker 镜像、分配的 CPU 和内存、环境变量、日志设置等。一个任务定义可包含多个容器,常见的是使用 Sidecar 模式同时运行日志收集或代理。服务是管理任务长期运行的机制,自动维护指定数量的任务始终运行。任务异常终止时自动重启,与负载均衡器配合进行健康检查。 有关任务定义和服务的最新动态和实践方法,也可参阅 专业书籍 (Amazon)。
定价体系
ECS 控制平面本身不收取额外费用。产生费用的是运行容器的基础设施部分。EC2 启动类型收取使用的 EC2 实例费用,Fargate 启动类型按分配的 vCPU 和内存使用时间收费。Fargate 按秒计费,最低 1 分钟起,按使用量付费。使用 Fargate Spot 可获最高 70% 折扣。
入门指南
要开始使用 ECS,在 AWS 管理控制台打开 ECS 仪表板,从「创建集群」开始。集群是运行任务的逻辑分组。然后创建任务定义,设置 Docker 镜像 URL、CPU 和内存分配、端口映射等。可以指定推送到 Amazon ECR 的自有镜像或 Docker Hub 的公开镜像。创建服务并指定任务数量后,ECS 会自动启动和管理容器。
注意事项
- The EC2 launch type requires instance management, so consider the Fargate launch type if you want to reduce operational overhead
- Use task definition revision management so you can roll back when configuration changes cause issues
- It is recommended to configure container logs to output to CloudWatch Logs. This is essential for investigating the cause of failures