问:Amazon ECS Anywhere 是什么?
Amazon ECS Anywhere 是 Amazon ECS 的一种功能,通过它可以在本地运行和管理基于容器的应用程序,包括在您自己的虚拟机 (VM) 和裸机服务器上。使用 ECS Anywhere,您无需安装或运行本地容器编排软件,因此降低了运营开销。ECS Anywhere 提供完全托管的解决方案,让您能够将自己在所有环境中的容器管理标准化。
问:为何应该使用 ECS Anywhere?
作为完全托管的高可扩展性容器编排解决方案,Amazon ECS 让您能够轻松地使用不同类型的计算容量运行基于容器的应用程序,例如 AWS Fargate 和 AWS Graviton2 支持的实例以及您自己数据中心的服务器。ECS Anywhere 可扩展 Amazon ECS 的应用范围,为您的所有基于容器的应用程序提供单一管理界面,而无论它们在什么环境中运行。这样,您就可以在云端和本地的集群管理、工作负载计划和监控中获得简单而一致的体验。使用 ECS Anywhere,您不需要安装和维护任何容器编排软件,因此您的团队无需学习不同工具所需的专业领域知识和技能。ECS Anywhere 让您能够根据需要轻松地在本地环境中运行应用程序,并且可以随时通过单击操作将其迁移到云中。
问:ECS Anywhere 支持哪些平台和操作系统?
您可以将 ECS Anywhere 用于任何虚拟机(例如,在 VMware、Microsoft Hyper-V 或 OpenStack)上运行或者运行可支持操作系统(OS)的裸机服务器。ECS 代理是允许主机连接 ECS 控制面板的软件,可获得长期支持(LTS)版本的 Amazon Linux 2、Ubuntu、RHEL、SUSE、Debian、CentOS 和 Fedora 支持并通过了测试。
问:如何连接本地计算与 AWS 以使用 ECS Anywhere?
- 确保虚拟机/裸机服务器能够稳定地连接互联网。
- 登录 ECS 管理控制台并获得激活密钥。这种密钥可配置,一个密钥可用于注册 1 到 1,000 台虚拟机或裸机服务器。您可以根据需要创建多个激活密钥。
- 在虚拟机/裸机服务器上安装轻量级开源 ECS 代理,它可从 Github、Docker Hub 和 Amazon Elastic Container Registry Public 获得。作为安装配置的一部分,提供激活密钥以及 AWS 区域。
完成后,您的服务器(或裸机实例)就可用作您的 ECS 集群中的计算容量,并可随时为它们安排 ECS 任务。
问:我应使用哪个 AWS 区域注册我的本地计算?
我们建议您使用在地理上离您的本地计算最近的 AWS 区域注册。
问:如何确保本地计算与 AWS 云之间的链接安全?
默认情况下,本地计算与 AWS 云之间的链接是安全的。在 AWS 区域中运行的 ECS 控制平面编排容器的方式时通过安全链接向每个已注册服务器上安装的 ECS 代理发送指令,并使用在服务器注册时附加到实例的 IAM 角色凭证进行身份验证。因此,您不需要采取任何其他操作。
此外,ECS 代理使用 AWS Systems Manager 代理自动且安全地在本地服务器与 ECS 控制平面之间建立信任;它与 AWS 的连接使用传输层安全性 (TLS) 进行加密。
问:哪些类型的信息流从本地计算返回到 AWS 区域?
只有管理容器必需的信息发送到在 AWS 区域中运行的 ECS 控制平面。例如,关于主机运行状况、容器活动(它已启动还是停止)和容器运行状况检查(如已配置)的信息可发送回 AWS 区域。利用这些信息,AWS 可向您发出关于运行状况和容量的提醒,并管理您本地计算基础设施上运行的 ECS 任务。容器内存、磁盘存储或网络流量的内容不会发送到控制平面。
问:我的本地计算、EC2 实例和 Fargate 是否可在同一个 ECS 集群中?
是。这样,您在将来需要时可以轻松地将本地运行的 ECS 工作负载迁移到 Fargate 或 EC2 上的 AWS 区域中的 ECS。
问:我是否可使用我用来在 Fargate 和/或 EC2 实例上运行 ECS 任务的本地环境的相同 ECS 任务定义?
是。ECS 任务定义是必须在同一位置运行的一组容器的规格。ECS 任务定义可以创建为与本地计算、Fargate 和 EC2 兼容,全都在单个任务定义中。
问:如果本地计算与 AWS 云之间的网络连接中断会发生什么情况?
当本地计算中运行的 ECS 代理与区域中 ECS 控制平面之间的网络连接发生中断时,现有 ECS 任务将继续照常运行。如果任务仍与其他 AWS 服务连接,只要任务角色凭证仍然激活(默认过期时间为 6 小时),它们就将继续与其通讯。当凭证过期后,任务就将无法再与其他 AWS 服务通讯,直到重新建立与控制平面的网络连接,那样将会自动更新凭证。此外,在断开连接期间,无法进行任何数据层面转换操作,例如扩大或缩小任务规模。
问:我是否可使用 ECS Anywhere 在物理隔离/断开连接的环境中运行容器?
否。ECS 提供基于云的完全托管容器编排解决方案,它驻留在 AWS 区域中。因此,它要求本地计算能够稳定地连接到互联网,以便与区域中 ECS 控制平面通讯。
问:使用 ECS Anywhere 时,我可以使用与 AWS 服务的哪些其他 ECS 集成?
通过 ECS Anywhere,您可以为自己的集群和服务建立 CloudWatch 指标,使用 CloudWatch 日志驱动程序获得容器的日志,并访问 ECS CloudWatch 事件流以监控集群事件。您还可以使用任务 IAM 角色和任务执行角色精细地控制容器化应用程序对 AWS 资源的访问。
问:使用 ECS Anywhere 时,我可以使用哪些第三方解决方案?
ECS Anywhere 可与云端 ECS 所用的相同工具共用,包括 Terraform、Consul、Datadog、Spinnaker、Jenkins 以及其他更多。
问:可以使用 Amazon ECS Anywhere 运行 Windows 容器吗?
是。客户可以使用 Amazon ECS Anywhere,用现有的 Windows Server 许可证在本地部署环境中运行 Windows 应用程序。
问:我能否将自己现有的 Microsoft Windows 许可证用于 Amazon ECS Anywhere?
是,您可以在本地部署基础设施上使用现有的 Microsoft Windows 许可证。
问:我是否能够在 ECS Anywhere 上运行基于 GPU 的工作负载?
是。您可以通过添加 --enable-gpu 标记到 Amazon ECS Anywhere 安装脚本中来启用 GPU 实例。当脚本安装后,您可以分配很多 GPU 到任务定义中的特定容器中。Amazon ECS 将此用作计划机制,以将物理 GPU 固定到所需容器中,以实现工作负载隔离和最佳性能。您可以通过遵照此处提供的安装驱动程序的以下步骤将 Nvidia 和 CUDA 驱动程序与 Amazon ECS Anywhere 结合使用。
问:ECS Anywhere 的费用是多少?
您需要按每个实例 0.01025 USD/小时的费率为每项托管 ECS Anywhere 外部实例付费。请参阅定价页面了解更多信息。
问:什么是 ECS Anywhere 的服务等级协议 (SLA)?
在此可以找到 ECS Anywhere SLA。