Amazon EC2 Container Service 对于我们构建具有高可用性、稳定性的微服务,以及受益于各种 AWS 服务而言至关重要。
Akinori Yamada 工程团队

CyberAgent 是一家互联网媒体服务公司,运营着日本领先的流媒体平台之一 – FRESH!。目前,FRESH! 可提供大约 1400 个频道和将近 37000 个节目,从广播电台的流媒体服务到原版影视剧,应有尽有。CyberAgent 使用 Amazon Aurora 数据存储来执行其写入密集型微服务 (例如时间安排和对话),并利用 Amazon Relational Database Service (Amazon RDS) 上的 MySQL 数据库来处理其余的微服务 API。所有 API 都通过 Amazon CloudFrontAmazon API Gateway 进行管理。对于可能会影响 API 响应时间的流程,CyberAgent 实施了一套可通过 Amazon Simple Queue Service (Amazon SQS) 队列接收任务的工作程序。

  • CyberAgent 决定以 Docer 容器的形式来实施所有 FRESH! 微服务。
  • CyberAgent 工程师一直在使用 Docker 和 Docker Compose 进行本地开发。
  • 极少数工程师拥有在生产环境中按所需规模部署 Docker 容器的经验。此外,也没有运行完整容器管理解决方案的内部记录。
  • CyberAgent 决定采用 Amazon EC2 Container Service (Amazon ECS),这是一项高度可扩展的容器管理服务,可提供群集管理和容器编排。
  • 2015 年春季 Amazon ECS 在亚太地区 (东京) 发行时,该公司就已开始对其进行评估。
  • 在短短几周内,该公司就完成了从进行评估到在 Amazon ECS 上构建首个开发环境的整个流程。
  • 该公司开发了一款名为 ecs-formation 的自定义工具,以简化开发工作流程,并让工程师能够将 Docker Compose 应用程序部署到 Amazon ECS。
  • 除了这款自定义工具外,CyberAgent 还利用 CircleCI (AWS 合作伙伴网络的高级技术合作伙伴) 轻松构建服务并将其部署到 Amazon ECS。
abema-tv_arch-diagram
  • 使用 Amazon ECS,您无需安装和运行群集以及容器管理软件;这降低了大规模运行容器的管理需求并缩短了上市时间。
  • CyberAgent 团队仅用了两个月便为全面运行 (包括任务自动扩展) 做好了准备。
  • 使用 Docker 和 Amazon ECS,工程师无需再为环境一致性担忧;由环境差异导致的问题几乎消失殆尽。
  • Amazon ECS 任务定义中的基本参数是一项附加优势,也是一项影响公司整体系统稳定性的因素。如果某个容器的基本参数被标记为“True”且该容器发出现了故障,则参与该任务的所有其他容器也将停止运行,以防止单个容器故障的副作用波及其他容器。
  • 自开始使用 Amazon ECS 以来,CyberAgent 已经实现了超过 99.9% 的服务可用性。

要了解有关简化容器编排和管理的更多信息,请访问 Amazon EC2 Container Service 详情页面