2015 年底,AWS 推出了 EC2 Run Command 特性,为操作者提供了一个跨 AWS 服务器机群运行管理任务的界面。今年 6 月,AWS 扩展了该特性的适用范围,让操作者可以操作位于其他云或数据中心里的服务器。
AWS 首席执行官 Andy Jassy 认为,使用超过一个公有云“非常困难,而且相当浪费”,因此,其公司提供了一个工具,“为管理大规模混合环境提供了一个统一的方式。”借助EC2 Run Command,团队可以运行特定的Linux shell 脚本或者Windows PowerShell 命令,安装应用程序及升级操作系统,而不用考虑实例的位置。来自Amazon 的 Jeff Barr 罗列了一些其他的使用场景:
我们的客户已经开始喜欢上 EC2 Run Command,并大量地使用了这个特性。下面是他们给我们分享的一些使用案例:
- 创建本地用户和组;
- 扫描缺失的 Windows 更新并安装;
- 安装所有可用的 Windows 更新;
- 管理(启动、停止、重启)服务;
- 安装程序包和应用程序;
- 访问本地日志文件。
EC2 Run Command 通过运行在目标机器上的代理软件发挥作用。该代理是 EC2 简单系统管理器(SSM)服务的一部分(可以从 GitHub 上找到),已经植入了 AWS Windows 镜像,也可以手动安装到运行 Amazon Linux、Red Hat Enterprise Linux、CentOS、Ubuntu 和 Windows Server 的服务器上。据 Barr 介绍,该代理通过一个出站 HTTP 请求发送指令,不需要打开入站端口。
为了简单起见,该代理只要能够向目标区域里的 SSM 端点发送 HTTPS 请求就可以了。这些请求可以根据你的网络配置通过代理或网关定向或者路由。
除了运行特定的命令外,用户还可以选择他们希望在虚拟服务器上执行的预定义命令“文档”:使用 AWS 提供的 13 个文档中的一个,或者选择一个由同行或社区编写的公共文档,或者创建一个自定义文档。AWS 身份和访问管理(IAM)服务对谁可以创建和执行这些命令进行管理。不管文档源或目标机器在哪里,所有的执行历史都会集中记录到 AWS CloudTrail,用于后续审计。如果一个命令产生了大量的输出,那么用户可以将输出定向到 Amazon S3 存储桶,用于后续检索。AWS 提供了多种执行命令的方法,包括 Amazon EC2 控制台、AWS SDK、AWS CLI 或 Microsoft PowerShell。
EC2 Run Command 可以在所有的 AWS 区域免费使用。AWS 指出了一些用户应该了解的注意事项。所有命令都是异步执行的,由于 AWS“管理每条命令的排队、执行、终止和报告”,所以执行顺序是不确定的。另外,该服务只允许用户每分钟在每个实例上执行 60 条命令。一个单独的 AWS 账号最多支持 200 个命令文档,而文档只能在创建它们的区域里使用。用户还要注意,命令在目标服务器上是以管理员权限运行的。
来自 Amazon 的 Barr指出,随着计算资源消费的发展,他们必须考虑不同的服务器管理方式:
在一个相对静态的同构计算环境里,你只有数量有限的几台永久性的、为人所熟知的服务器(或者使用 Amazon Elastic Compute Cloud(EC2)的术语“实例”),当从这样一个环境迁移到一个更大、更动态的异构环境,你可能需要考虑使用一种新的方式管理和控制那些实例。
过去的一年里,一连串的多重云管理创业公司被科技公司收购——IBM 收购 Gravitant,Cisco 收购 Cliqr,CenturyLink 最近收购了 ElasticBox。许多多重云管理工具都采用了一种传统的服务器管理方法,主要是提供一个用户界面对虚拟机进行编目、排序和管理。AWS 首席执行官 Jassay 表示,这些多重云工具迫使客户“标准化最低层次的需求。”这也许可以解释,为什么开发人员和系统管理员似乎更喜欢使用以API 为中心的工具,如EC2 Run Command,帮助他们根据自己的情况、以新的方式、大规模地使用分布式计算资源。
查看英文原文: AWS Adds Multi-Cloud Scripting to EC2 Run Command Feature
评论