写点什么

Amazon EC2 容器服务背后的技术

  • 2015-07-24
  • 本文字数:1796 字

    阅读完需:约 6 分钟

Amazon EC2 Container Service (ECS) 是一个高度可扩展的高性能软件容器管理服务,它支持 Docker,使用户可以轻松地在 Amazon EC2 实例集群上运行应用程序。近日,Amazon 首席技术官 Werner Vogels撰文介绍了Amazon ECS 的架构。下图是Amazon ECS 包含的基本组件:

Amazon ECS 的核心是集群管理器,这是一个处理集群协调和状态管理任务的后台服务,它的上面是不同的调度器。集群管理和容器调度相互分离,用户可以构建自己的调度器。集群是一个供用户应用程序使用的计算资源池,而所谓的资源是指由容器划分的 Amazon EC2 实例的 CPU、内存和网络资源。Amazon ECS 通过运行在每个实例上的 Amazon ECS 容器代理协调集群。该代理允许 Amazon ECS 与 EC2 实例通信,并在用户或调度器请求时启动、停止和监控容器。它是用 Go 编写的,在 GitHub 上遵循 Apache 许可协议开源。

为了协调集群,需要一个有关集群状态的唯一信息源,提供诸如集群包含的 EC2 实例、运行在实例上的任务、组成任务的容器以及可用资源或已占用的资源这样的信息。这样,才能成功地启停容器。为此,他们将状态存储在一个键 / 值存储中。在任何现代集群管理中,键 / 值存储都是一个核心。而且,为了实现持久性和高可用性,预防网络分区或硬件故障,该键 / 值存储需要采用分布式部署。但这又带来一个问题,就是数据一致性很难保证,并发修改也很难处理。这就需要有一种并发控制机制来确保多个状态修改不会冲突。

为了实现并发控制,他们在实现 Amazon ECS 时使用了 Amazon 的其中一个核心分布式系统组件:一个基于 Paxos 算法以事务日志为基础的数据存储。该组件记录了每个数据条目的每次修改。每次写入操作都会作为日志中的一个事务提交,并且有一个特定的有顺序的 ID。数据存储中的当前值是根据日志记录所做的所有事务操作的总和。它允许 Amazon ECS 采用乐观并发的方式存储集群状态信息,在一个共享数据不断变化的环境中,这是非常合适的。

有了键 / 值存储,就可以协调集群了。而为了使用户能够利用 Amazon ECS 的状态管理功能,他们通过一组 API 开放了 Amazon ECS 集群管理器。用户可以通过它们以一种结构化的方式访问存储在键 / 值存储中的所有集群的状态信息。这组 API 成为用户在 Amazon ECS 上构建自己的解决方案的基础。Vogels 举了两个例子。

一个是自创建第一天起就托管在 AWS 上的免费叫车应用 Hailo 。在过去的几年里,该应用从一个运行在单个 AWS 区域中的单体应用程序演化成为一个运行在多个区域中的基于微服务的架构。起初,每个微服务运行在一个实例集群上。但实例为静态分区,导致每个分区的资源利用率都不高。为此,他们决定基于服务优先级和其它指标在一个弹性资源池上调度容器。他们选择了Amazon ECS,因为后者通过API 完全暴露了集群状态,使他们可以使用满足特定应用需求的逻辑构建一个自定义的调度器。

另一个是教育类通讯软件 Remind 。它起初是一个运行在 Heroku 上的大型单体应用。但随着用户数的增长,他们希望具备水平扩展的能力。因此,大约在 2014 年底,其工程团队开始探索使用容器迁移到微服务架构。他们希望在 AWS 上构建一个兼容 Heroku API 的 PaaS(平台即服务)。为了管理集群和容器编排,他们首先考察了一些开源解决方案,如 CoreOS 和 Kubernetes。但考虑到团队规模较小,他们没有时间管理集群基础设施及保持集群高可用。经过简单的评估之后,他们决定在 Amazon ECS 上构建他们的 PaaS。这样,工程团队就可以专注于应用开发和部署。在 6 月份的时候,Remind 开源了他们的 PaaS 解决方案“ Empire ”。在接下来的几个月中,他们将把核心基础设施的 90% 迁移到 Empire 上。

总之,Amazon ECS 的架构提供了一种高可扩展、高可用、低延迟的容器管理服务。它允许以乐观并发的方式访问共享的集群状态信息,并通过 API 赋予用户创建自定义容器管理解决方案的能力。另外,Vogels 还提到,集群中实例的数量并不会对 Amazon ECS 的延迟产生明显的影响。

感兴趣的读者可以点击这里查看过去一年来Amazon ECS 增加的特性。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

立即免费注册 AWS 账号,获得 12 个月免费套餐:点击注册

有云计算问题?立刻联系 AWS 云计算专家:立即联系

2015-07-24 05:223647
用户头像

发布了 1008 篇内容, 共 446.8 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

喂饭级教程 —— 基于 OceanBase seekdb 构建 RAG 应用

老纪的技术唠嗑局

教程 #人工智能 rag

领跑智能体千亿赛道:未来式智能登IDC领导者象限,业务人员零门槛用智能体提效

极客天地

去中心化交易所 dex设计方案

西安链酷科技

工厂有了ERP,为什么还要上MES系统?

万界星空科技

数字化转型 制造业 ERP mes 万界星空科技mes

【Redis实用技巧#0】在Redis中,如何优雅地找出10万个指定前缀的key?

艾体宝IT

Reids

新兴平台机会洞察:2026海外平台推广的蓝海机遇

Wolink

出海 海外社媒营销 海外营销推广 海外红人营销 品牌推广

大数据-173 Elasticsearch 映射与文档增删改查实战(基于 7.x/8.x)JSON

武子康

nosql 大数据 elasticsearch 分布式 ES

超能小艺以AI赋能无障碍功能,诠释科技不让任何人掉队

新消费日报

网络安全整改:漏洞扫描的技术操作框架

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

AI泡沫什么时候破?

脑极体

AI

云CAD结合AI实现文生DWG图纸

WEB CAD SDK

别怪孩子钻进手机,他只是在你身边找不到人——东方心语

极客天地

周跃峰接棒华为云CEO,会带来什么样的变化?

Alter

云计算 AI

红人营销矩阵:如何构建多元化的海外红人合作生态

Wolink

跨境贸易 出海 海外社媒营销 海外营销推广 海外红人营销

基于 DeepSeek V3.2 的 Native Agent 实践指南,真香

冯骐

人工智能 智能体 agent 大语言模型 DeepSeek

网络安全整改:安全基线核查的技术操作框架

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

KOL营销内容创作指南:打造高互动率的优质内容

Wolink

出海服务商 kol推广 海外社媒营销 海外营销推广 海外红人营销

企业海外营销品牌建设:全球化品牌资产积累与价值评估

Wolink

跨境贸易 出海 海外社媒营销 海外营销推广 海外红人营销

深耕东南亚的海外网红营销服务公司盘点

Wolink

跨境贸易 出海服务商 海外社媒营销 海外营销推广 海外红人营销

为什么现在没有好产品经理了?【IPD产品研发管理】

IPD产品研发管理

产品 软件 产品经理 需求管理 硬件开发

淘宝商品列表API在竞品分析中的创新应用

Datafox(数据狐)

淘宝API 关键词搜索淘宝接口 淘宝商品列表接口 淘宝数据接口 淘宝商品列表采集

怎么样可以节省dapp开发成本

西安链酷科技

营销费用的AI革命:为什么说真正的智能必须经历TPM-TPE-TPO的三级跳?

赛博威科技

#人工智能 营销费用

线上算不清ROI,线下管不住“小样”?赛博威全渠道费用管理助力美妆企业降本增效

赛博威科技

#人工智能 营销费用

NineData社区版V4.7.0发布!新增MySQL至TiDB等6条数据复制对比链路,SQL窗口新增谷歌云6种数据源类型

NineData

数据库 数据库管理工具 社区版 NineData 下载安装

海外网红推广价值延伸:从单次合作到长期品牌共建的路径

Wolink

跨境贸易 出海服务商 海外社媒营销 海外营销推广 海外红人营销

年底总结:2025最专业的十大海外网红营销服务公司

Wolink

跨境贸易 出海 海外社媒营销 海外营销推广 海外红人营销

源网荷储与碳中和:助力新能源规模化发展

西格电力

碳中和 新能源 碳中和碳达峰 智慧能源管理系统 源网荷储

头脑大师入驻版小程序:多功能变现神器,解锁流量新价值

微擎应用市场

网络安全整改:渗透测试的技术操作框架

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

AI赋能的外贸推广:智能工具提升海外营销效率的实践

Wolink

跨境贸易 出海 外贸独立站 海外社媒营销 海外营销推广

Amazon EC2容器服务背后的技术_语言 & 开发_谢丽_InfoQ精选文章