一般性问题

问:什么是 Amazon Elastic Container Service?

Amazon Elastic Container Service (ECS) 一项高度可扩展的高性能容器管理服务,支持 Docker 容器,并让您能够在托管的 Amazon EC2 实例群集上轻松运行应用程序。使用 Amazon ECS,您将不再需要安装、运维、扩展自己的集群管理基础设施。只需进行简单的 API 调用,您便可以启动和停止支持容器的应用程序,查询集群的完整状态,使用各种熟悉的功能,包括安全组、Elastic Load Balancing、EBS 卷和 IAM 角色。您可以使用 Amazon ECS 根据您的资源需求和可用性要求在您的集群中安排容器的置放。您还可以集成自己的计划程序或第三方计划程序,以满足业务或应用程序的特定要求。

问:Amazon ECS 有何用?

使用 Amazon ECS,您将不再需要安装、运维、扩展自己的集群管理基础设施,Amazon ECS 让容器的使用更简单,您可以将其作为构建块用于您的应用程序。Amazon ECS 让您可以使用 Docker 容器来安排长期运行的应用程序、服务和批量进程。Amazon ECS 可以维持应用程序的可用性,让您根据应用程序的容量需求来对容器进行扩缩。Amazon ECS 集成有您熟悉的功能,包括 Elastic Load Balancing、EBS 卷、VPC 和 IAM。简单的 API 让您可以集成并使用自己的计划程序,或将 Amazon ECS 连接到现有的软件交付流程中。

问:Amazon ECS 如何定价?

使用 Amazon ECS 不收取任何额外费用。您只需为您创建的用于存储和运行应用程序的 AWS 资源(例如 EC2 实例或 EBS 卷)付费。您只需在您使用时为您的使用量付费;既没有最低费用,也没有前期承诺。

问:Amazon ECS 与 AWS Elastic Beanstalk 有什么区别?

AWS Elastic Beanstalk 是一个应用程序管理平台,可以帮助客户轻松部署和扩展 Web 应用程序和服务。它将构建块(例如 EC2、RDS、Elastic Load Balancing、Auto Scaling、CloudWatch)的调配、应用程序的部署、运行状况监控从用户身上分离出来,让用户可以集中精力编写代码。您只需指定要部署的容器映像、CPU 和内存要求、端口映射和容器链接即可。

Elastic Beanstalk 会自动处理所有的具体事务,包括预置 Amazon ECS 群集、平衡负载、自动扩展、监控以及在群集中放置容器。如果您希望利用容器的各种优势,但只想通过上传容器映像,在开发到生产等环节部署应用程序时享受到简易性,则 Elastic Beanstalk 非常适合。如果您需要对自定义应用程序架构进行更多精细化的控制,则可以直接使用 Amazon ECS。

问:Amazon ECS 与 AWS Lambda 有什么区别?

Amazon Container Service 是一项高度可扩展的 Docker 容器管理服务,让您可以运行和管理在 Docker 容器中运行的分布式应用程序。AWS Lambda 是一项事件驱动型任务计算服务,在响应数据更改、网站点击或来自其他 AWS 服务的消息等“事件”时运行您的代码,无需您管理任何计算基础设施。

使用 Amazon ECS

问:怎样开始使用 Amazon ECS?

请访问我们的开始使用页面,了解有关如何开始使用 ECS 的更多信息。

问:Amazon ECS 是否支持任何其他容器类型?

不。Amazon ECS 目前只支持 Docker 这一容器平台。

问:我想启动容器。为什么必须启动任务?

Docker 鼓励您将应用程序分成单个组件,而 Elastic Container Service 针对这一模式进行了优化。任务让您可以定义想要放置在一起的一组容器或一部分容器、容器的属性及其链接方式。任务中包含 Amazon ECS 确定如何放置所需的所有信息。要启动单个容器,您的任务定义中应该只包含一个容器定义。

问:Amazon ECS 是否支持应用程序和服务?

是的。Amazon ECS 服务计划程序可以管理长期运行的应用程序和服务。使用服务计划程序,您可以维持应用程序的可用性,并且根据应用程序的要求来扩展或缩小容器。服务计划程序让您可以使用 Elastic Load Balancing 在各个容器间分配流量。Amazon ECS 将自动从关联的负载均衡器注册和注销容器。

服务计划程序还将自动恢复运行状况不佳 (ELB 运行状况检查失败) 或停止运行的容器,保证正常运行的容器达到所需数量,以便支持您的应用程序。

通过改变您希望服务运行的容器的数量,可以扩展或缩小应用程序的规模。改变应用程序的定义或使用新的映像可以更新应用程序。计划程序将自动启动使用新定义的新容器并停止运行之前版本的容器(如果使用 ELB,则会等待 ELB 连接耗尽)。

问:Amazon ECS 是否支持动态端口映射?

是的。可以将 Amazon ECS 上的服务与 Elastic Load Balancing (ELB) 服务的应用程序负载均衡器 (ALB) 相关联。ALB 支持包含一组实例端口的目标组。您可以在 ECS 任务定义中指定动态端口,这可为安排在 EC2 实例上的容器提供未使用的端口。ECS 计划程序将自动向应用程序负载均衡器中使用此端口的目标组添加任务。

问:Amazon ECS 是否支持批量作业?

是的。您可以使用 Amazon ECS 的 Run 任务一次运行一个或多个任务。Run 任务在符合任务要求 (包括 CPU、内存和端口要求) 的实例中开始任务。

问:能否将自己的计划程序与 Amazon ECS 配合使用?

ECS 提供了 Blox,这是一个用于容器管理和编排的开源对象集合。借助 Blox,您可以轻松地从 Amazon ECS 使用事件、本地存储集群状态以及通过 API 查询本地数据存储。此外,Blox 还包含一个守护程序计划程序,可用作关于如何使用集群状态服务器的引用。请参阅 Blox GitHub 页面了解更多信息。

问:能否使用自己的 AMI?

可以。您可以使用满足 Amazon ECS AMI 规范的任何 AMI。我们建议先从支持 Amazon ECS 的 Amazon Linux AMI 开始用起。兼容 Amazon ECS 的合作伙伴 AMI 也可以使用。您可以查阅相关文档了解 Amazon ECS AMI 规范的情况。

问:我应该如何配置我的容器实例,以便从 Amazon Elastic Container Registry 中提取?

Amazon ECR 与 Amazon ECS 集成,让您能够轻松地存储、运行和管理在 Amazon ECS 上运行的应用程序的容器映像。为此,您只需在您的任务定义中指定 Amazon ECR 存储库,然后将 AmazonEC2ContainerServiceforEC2Role 附加至您的实例。Amazon ECS 将为您的应用程序取得相应的映像。

问:AWS Fargate 怎样与 Amazon ECS 配合发挥作用?

Fargate 可以彻底消除服务器预置、群集管理和编排工作。Amazon ECS 使用 Fargate 预置的容器对您的容器进行自动扩展、负载均衡和计划管理工作以便保证可用性,让您可以更轻松地构建和运行容器化应用程序。

问:怎样在 AWS Fargate 加 Amazon ECS 和只使用 ECS 之间做出选择?

Amazon ECS 支持 Fargate 技术,客户可以选择使用 AWS Fargate 来启动容器,无需预置或管理 EC2 实例。AWS Fargate 是在 AWS 上启动和运行容器的最易用的工具。如果客户需要对 EC2 实例进行更高的控制,以便满足合规和监管要求或者支持更多的自定义选项,则可以只使用 ECS 而不使用 Fargate 来启动 EC2 实例。

安全性

问:Amazon ECS 如何隔离属于不同客户的容器?

Amazon ECS 在客户控制的 Amazon EC2 实例中排定容器的执行,或者使用 AWS Fargate 排定容器的执行,其隔离控制功能和合规性与 EC2 相同。您的计算实例位于 Virtual Private Cloud (VPC) 中,它具有指定的 IP 范围。您可以决定哪些实例向互联网公开,哪些实例保持私有状态。

  • 您的 EC2 实例使用 IAM 角色访问 ECS 服务。
  • 您的 ECS 任务使用 IAM 角色访问服务和资源。
  • 安全组和网络 ACL 让您能控制进入和离开您的实例的入站和出站网络访问。
  • 您可以通过工业标准的加密 IPsec VPN 连接,将您现有的 IT 基础设施关联到 VPC 中的资源。
  • 您可以将您的 EC2 资源预配置为专用实例。专用实例是为了增加额外的隔离,在单一客户的专用硬件上运行的 Amazon EC2 实例。

问:能否对容器实例应用额外的安全配置和隔离框架?

可以。作为 Amazon EC2 客户,您拥有对容器实例操作系统的根访问权限,这让您在掌控操作系统安全设置的同时还控制着其他软件组件的加载和配置,以获得更多安全功能,例如监控、补丁管理、日志管理和主机入侵检测。

问:能否以不同的安全设置来操作容器实例,或者将不同的任务隔离在不同的环境中?

可以。您可以使用您选择的工具配置不同的容器实例。通过构筑集群和针对目标的启动,Amazon ECS 允许您控制任务在不同容器实例中的放置情况。

问:Amazon ECS 是否支持从私有或内部来源中取回 Docker 映像?

是的。客户可以对其容器实例进行配置,以便访问 VPC 内的专有 Docker 映像注册表或者可从 VPC 外部访问的注册表,例如 Amazon ECR

问:如何为 ECS 任务配置 IAM 角色?

首先,您需要为您的任务创建 IAM 角色,使用“Amazon EC2 Container Service Task Role”服务角色并附加含必要权限的策略即可成功创建。当您新建一项任务定义或修订任务定义时,您可以从“Task Role”下拉列表中选择一个角色,或使用以 JSON 格式存储的“taskRoleArn”来指定角色。

服务等级协议 (SLA)

问:Amazon ECS 的 SLA 有什么保证?

我们的计算 SLA 保证 Amazon ECS 的月度正常运行时间百分比至少达到 99.99%。

问:怎样确定我是否有资格获得 SLA 服务抵扣?

对于您运行任务所在的可用区,如果同一个地区内有一个以上的可用区在任何月度账单周期内的月度正常运行时间百分比没有达到 99.99%,那么您就有资格获得计算 SLA 规定的 Amazon ECS SLA 服务抵扣。

如需 SLA 的所有条款与条件的完整详细信息,以及如何提交索赔的详细信息,请参阅计算 SLA 详细信息页面

开始使用 Amazon ECS

打开 Amazon ECS 控制台
准备好开始使用了吗?
注册
还有更多问题?
联系我们