2015年底,AWS推出了 EC2 Run Command 特性,为操作者提供了一个跨AWS服务器机群运行管理任务的界面。今年6月,AWS扩展了该特性的适用范围,让操作者可以操作位于其他云或数据中心里的服务器。
AWS首席执行官 Andy Jassy认为 ,使用超过一个公有云“非常困难,而且相当浪费”,因此,其公司提供了一个 工具 ,“为管理大规模混合环境提供了一个统一的方式。”借助EC2 Run Command,团队可以运行特定的Linux shell脚本或者Windows PowerShell命令,安装应用程序及升级操作系统,而不用考虑实例的位置。来自Amazon的 Jeff Barr罗列 了一些其他的使用场景:
我们的客户已经开始喜欢上EC2 Run Command,并大量地使用了这个特性。下面是他们给我们分享的一些使用案例:
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