问:什么是 Amazon ECS Anywhere?
Amazon ECS Anywhere 是 Amazon ECS 的一项功能,可让您在本地(包括在自己的虚拟机 (VM) 和裸机服务器上)运行和管理基于容器的应用程序。使用 ECS Anywhere,您无需安装或操作本地容器编排软件,从而降低了运营开销。ECS Anywhere 提供了完全托管的解决方案,因此您可在所有环境中实现容器管理标准化。
问:为什么要使用 ECS Anywhere?
作为完全托管且高度可扩展的容器编排解决方案,Amazon ECS 可使您轻松地在不同类型的计算容量上运行基于容器的应用程序,例如 Amazon Fargate 和 Amazon Graviton2 支持的实例以及您自己的数据中心的服务器。ECS Anywhere 扩展了 Amazon ECS 的覆盖范围,可为您的所有基于容器的应用程序提供单一的管理界面,而不考虑运行这些应用程序的环境为何。因此,在云端和本地的集群管理、工作负载调度和监控方面,您可获得简单、一致的体验。使用 ECS Anywhere,您无需安装和维护任何容器编排软件,因此您的团队无需学习不同工具的专业知识领域和技能集。通过 ECS Anywhere,您可随时根据需要在本地环境中轻松运行应用程序,然后,只需单击一下即可迁移到云端。
问:ECS Anywhere 支持哪些平台和操作系统?
ECS Anywhere 支持任何虚拟机(例如,可在 VMware、Microsoft Hyper-V 或 OpenStack 上运行),也可在支持操作系统 (OS) 的裸机服务器上运行。ECS 代理是一种连接主机与 ECS 控制平面的软件,支持 Amazon Linux 2、Bottlerocket、Ubuntu、RHEL、SUSE、Debian、CentOS 及 Fedora 的长期支持(LTS)版本并通过测试。
问:是否可以结合使用 ECS Anywhere 与 VMware Cloud on Amazon Web Services (VMC)?
可以;您可以将 ECS Anywhere 与 VMC 结合使用。您可以使用经过 ECS 优化的 VMware Virtual Machine Disk (VMDK) Amazon Linux 版本来启动实例。这些经过 ECS 优化的 VMDK 预置了最新版本的 ECS 代理、Docker 守护程序及 Docker 运行时依赖项。
问:如何将本地计算与亚马逊云科技连接以使用 ECS Anywhere?
- 确保虚拟机/裸机服务器具有稳定的互联网连接。
- 登录 ECS 管理控制台并获取激活密钥。一个可配置秘钥,可用于注册 1 至 1000 个虚拟机或裸机服务器。您可以根据需要创建任意数量的激活密钥。
- 在虚拟机/裸机服务器上安装轻量级开源 ECS 代理,可从 Github、Docker Hub 和 Amazon Elastic Container Registry Public 上获得。作为安装配置的一部分,需提供激活密钥以及亚马逊云科技区域。
完成后,可将您的服务器(或裸机)实例用作 ECS 集群中的计算容量,并为在其上安排 ECS 任务做好准备。
问:应该在哪个亚马逊云科技区域注册我的本地计算?
我们建议您在地理位置上最接近本地计算的亚马逊云科技区域进行注册。
问:如何确保本地计算和亚马逊云科技云之间的关联的安全?
默认情况下,本地计算和亚马逊云科技云之间的关联是安全的。在亚马逊云科技区域运行的 ECS 控制平面通过安全链接向安装在每台注册服务器上的 ECS 代理发送指令来协调容器,使用服务器注册时附加到实例的 IAM 角色凭证对安全链接进行身份验证。因此,不需要采取任何其他的操作。
此外,ECS 代理使用 Amazon Systems Manager 代理自动安全地在本地服务器和 ECS 控制平面之间建立信任;其与亚马逊云科技的连接使用传输层安全性 (TLS) 加密。
问:哪种类型的信息从本地计算流回亚马逊云科技区域?
只有管理容器所需的信息才会发送到在亚马逊云科技区域运行的 ECS 控制平面。例如,有关主机运行状况、容器活动(无论是启动还是停止)和容器运行状况检查(如果已配置)的信息可能会发送回亚马逊云科技区域。此信息使亚马逊云科技能够向您提供有关运行状况和容量的警报,并管理在本地计算基础设施上运行的 ECS 任务。容器内存、磁盘存储或网络流量的内容不会发送到控制平面。
问:本地计算、EC2 实例和 Fargate 是否可以在同一个 ECS 集群中存在?
可以。这样,您以后可轻松地将本地运行的 ECS 工作负载迁移到 Fargate 或 EC2 上亚马逊云科技区域中的 ECS(如有必要)。
问:是否可以在本地环境中使用与在 Fargate 和/或 EC2 实例上运行 ECS 任务相同的 ECS 任务定义?
可以。ECS 任务定义是一组必须兼容运行的容器规范。您可以创建 ECS 任务定义,使其与本地计算、Fargate 和 EC2 兼容,所有这些都在单个任务定义中。
问:如果本地计算和亚马逊云科技云之间的网络连接中断,会发生什么情况?
在本地计算上运行的 ECS 代理与区域内 ECS 控制平面之间的网络连接中断时,现有的 ECS 任务将继续照常运行。如果任务仍与其他亚马逊云科技服务连接,则只要任务角色凭证处于活动状态(默认到期时间为 6 小时),这些任务就会继续运行。凭证过期后,任务将无法与其他亚马逊云科技服务通信,直到重新建立与控制平面的网络连接,控制平面将自动更新凭证。此外,在断开连接期间,任何数据层面操作变化(如向上或向下扩展任务)都不会起作用。
问:是否可以使用 ECS Anywhere 在实体隔离/断开连接的环境中运行容器?
不可以。ECS 提供基于云的完全托管的容器编排解决方案,该解决方案存储在亚马逊云科技区域。因此,需要您的本地计算机具有稳定的互联网连接才能与区域内 ECS 控制平面进行通信。
问:在使用 ECS Anywhere 时,还可以使用哪些其他 ECS 与亚马逊云科技服务的集成?
借助 ECS Anywhere,您可以获取集群和服务的 CloudWatch 指标,使用 CloudWatch 日志驱动程序获取容器的日志,以及访问 ECS CloudWatch 事件流以监控集群的事件。您还可以使用 Task IAM 角色和任务执行角色为容器化应用程序提供对亚马逊云科技资源的细粒度访问控制。
问:使用 ECS Anywhere 时可以使用哪些第三方解决方案?
ECS Anywhere 使用与云中的 ECS 相同的工具,包括 Terraform、Consul、Datadog、Spinnaker、Jenkins 等。
问:ECS Anywhere 的费用是多少?
每个托管的 ECS Anywhere 外部实例的价格为每实例小时 0.065 CNY。有关详细信息,请参阅定价页面。