一般性问题
全部打开Amazon Elastic Container Service (ECS) 是一项高度可扩展的高性能容器管理服务,它支持 Docker 容器,并让您能够在托管的 Amazon EC2 实例群集上轻松运行应用程序。使用 Amazon ECS,您将不再需要安装、运维、扩展您自己的群集管理基础设施。只需进行简单的 API 调用,您便可以启动和停止支持容器的应用程序,查询集群的完整状态,以及使用各种熟悉的功能,包括安全组、Elastic Load Balancing、EBS 卷和 IAM 角色。您可以使用 Amazon ECS 根据您的资源需求和可用性要求在您的群集中安排容器的置放。您还可以集成自己的计划程序或第三方计划程序,来满足业务或应用程序的特定要求。
使用 Amazon ECS,您将不再需要安装、运营以及扩展自己的集群管理基础设施,即可轻松地将容器用作应用程序的构建块。Amazon ECS 让您可以使用 Docker 容器来安排长期运行的应用程序、服务和批量进程。Amazon ECS 可以维持应用程序的可用性,并让您能够根据应用程序的容量需求扩展或缩小容器。Amazon ECS 集成了您熟悉的功能,包括 Elastic Load Balancing、EBS 卷、VPC 和 IAM。简单的 API 让您可以集成并使用自己的计划程序,或将 Amazon ECS 接入现有的软件交付流程中。
使用 Amazon Batch 无需支付额外费用。您只需为您创建的用于存储和运行应用程序的亚马逊云科技资源(例如 EC2 实例或 EBS 卷)付费。您只需在使用时按实际使用量付费;既没有最低费用,也无需预付费。请访问此处了解更多定价信息。
Amazon Elastic Beanstalk 是一个应用程序管理平台,可以帮助客户轻松部署和扩展 Web 应用程序和服务。它可以将构建块(例如,EC2、RDS、弹性负载均衡器、Auto Scaling、CloudWatch)的预置、应用程序的部署和运行状况监控从用户那里抽象出来,让用户可以集中精力编写代码。只需指定要部署的容器映像、CPU 和内存要求、端口映射以及容器链接即可。Elastic Beanstalk 将自动处理所有具体事务,如预置 Amazon ECS 群集、均衡负载、自动扩展、监控以及在群集中置放容器。
如果您既想享受容器技术的优势,又希望通过上传容器映像这种简单的方式,实现应用程序从开发环境到生产环境的部署,那么 Elastic Beanstalk 就是理想选择。如果您需要对自定义应用程序架构进行更多精细化的控制,则可以直接使用 Amazon ECS。
使用 Amazon Elastic Container Service
全部打开请访问我们的文档,详细了解如何开始使用 Amazon ECS。
否。Elastic Container Service 目前只支持 Docker 这一容器运行时。
Docker 鼓励您将您的应用程序分成单个组件,Elastic Container Service 还针对此模式进行了优化。通过任务,您可以定义一组您想将其置放在一起(或同一置放决策中)的容器、它们的属性及其关联方式。任务包括 Elastic Container Service 做出置放决策所需的一切信息。要启动单个容器,您的任务定义应只包含一个容器定义。
可以。Amazon ECS 服务计划程序可以管理长期运行的应用程序和服务。该服务计划程序可以帮助您维持应用程序的可用性,并让您能够根据应用程序的容量需求扩展或缩小容器。借助该服务计划程序,您可以使用 Elastic Load Balancing 在各个容器间分配流量。Amazon ECS 将自动从关联的负载均衡器注册和注销容器。
该服务计划程序还可自动恢复运行状况不佳(ELB 运行状况检查失败)或停止运行的容器,以确保您拥有所需数量的运行状况良好的容器支持您的应用程序。通过改变您希望服务运行的容器的数量,可以扩展或缩小应用程序的规模。
您可以通过改变应用程序的定义或使用新镜像,来更新应用程序。计划程序将自动启动使用新定义的新容器并停止运行之前版本的容器 (如果使用 ELB,则会等待 ELB 连接耗尽)。
可以。可以将 Amazon Elastic Container Service(ECS)上的服务与应用程序负载均衡器关联,以实现弹性负载均衡器(ELB)服务。应用程序负载均衡器支持包含一组实例端口的目标组。您可以在 ECS 任务定义中指定动态端口,这可为安排在 EC2 实例上的容器提供未使用的端口。ECS 调度器将通过此端口将任务自动添加到应用程序负载均衡器的目标组。
可以。可以使用 Amazon ECS Run 任务一次运行一个或多个任务。Run 任务在符合任务要求(包括 CPU、内存和端口)的实例上启动任务。
ECS 提供 Blox,这是一个用于容器管理和编排的开源对象集合。借助 Blox,您可以轻松使用 Amazon ECS 事件、本地存储群集状态以及通过 API 查询本地数据存储。此外,Blox 还包含一个进程守护程序调度器,可作为如何使用集群状态服务器的参考。请参阅 Blox GitHub 页面了解更多信息。
可以。您可以使用符合 Amazon ECS AMI 规范的任何 AMI。我们建议先从支持 Amazon ECS 的 Amazon Linux AMI 开始用起。也可以使用与 Amazon ECS 兼容的合作伙伴 AMI。您可以在文档中查阅 Amazon ECS AMI 规范。
Amazon ECR 与 Amazon ECS 集成,让您能够轻松地存储、运行和管理在 Amazon ECS 上运行的应用程序的容器映像。您只需在您的任务定义中指定 Amazon ECR 存储库,然后将 AmazonEC2ContainerServiceforEC2Role 挂载至您的实例即可。然后,Amazon ECS 将为您的应用程序检索相应的映像。
安全性
全部打开Amazon ECS 在客户控制的 Amazon EC2 实例中排定容器的执行,同时以 EC2 客户拥有的相同控制功能和合规性为基础来进行构建。
您的计算实例位于具有您指定的 IP 范围的 Virtual Private Cloud (VPC) 中。您可以决定哪些实例向互联网公开,哪些实例保持私有状态。
您的 EC2 实例使用 IAM 角色访问 ECS 服务。
您的 ECS 任务使用 IAM 角色访问服务和资源。
通过安全组和网络 ACL,您可以控制进入和离开您的实例的入站和出站网络访问。
您可以通过工业标准的加密 IPsec VPN 连接,将您现有的 IT 基础设施关联到 VPC 中的资源。
您可以将您的 EC2 资源预配置为专用实例。专用实例是为了增加额外的隔离,在单一客户的专用硬件上运行的 Amazon EC2 实例。
可以。作为 Amazon EC2 客户,您拥有对容器实例操作系统的根访问权限,这让您在掌控操作系统安全设置的同时还控制着其他软件组件的加载和配置,以获得更多安全功能,例如,监控、补丁管理、日志管理和主机入侵检测。
可以。您可以使用自己选择的工具来配置不同的容器实例。通过构建集群和有针对性的启动,Amazon ECS 让您能够控制不同容器实例中的任务置放。
支持。客户可以对其容器实例进行配置,以访问 VPC 内的私有 Docker 镜像注册表或可从 VPC 外部访问的注册表,如 Amazon Elastic Container Registry。
首先,您需要为您的任务创建 IAM 角色,使用“Amazon Elastic Container Service 任务角色”服务角色并挂载必要的权限策略。创建新的任务定义或任务定义修订版本时,可以通过从“任务角色”下拉列表中选择一个角色,或使用以 JSON 格式提交的“taskRoleArn”来指定角色。