2015年底,AWS推出了EC2 Run Command特性,為操作者提供了一個(gè)跨AWS服務(wù)器機(jī)群運(yùn)行管理任務(wù)的界面。今年6月,AWS擴(kuò)展了該特性的適用范圍,讓操作者可以操作位于其他云或數(shù)據(jù)中心里的服務(wù)器。
AWS首席執(zhí)行官Andy Jassy認(rèn)為,使用超過一個(gè)公有云“非常困難,而且相當(dāng)浪費(fèi)”,因此,其公司提供了一個(gè)工具,“為管理大規(guī)模混合環(huán)境提供了一個(gè)統(tǒng)一的方式。”借助EC2 Run Command,團(tuán)隊(duì)可以運(yùn)行特定的Linux shell腳本或者Windows PowerShell命令,安裝應(yīng)用程序及升級(jí)操作系統(tǒng),而不用考慮實(shí)例的位置。來自Amazon的Jeff Barr羅列了一些其他的使用場(chǎng)景:
我們的客戶已經(jīng)開始喜歡上EC2 Run Command,并大量地使用了這個(gè)特性。下面是他們給我們分享的一些使用案例:
創(chuàng)建本地用戶和組; 掃描缺失的Windows更新并安裝; 安裝所有可用的Windows更新; 管理(啟動(dòng)、停止、重啟)服務(wù); 安裝程序包和應(yīng)用程序; 訪問本地日志文件。EC2 Run Command通過運(yùn)行在目標(biāo)機(jī)器上的代理軟件發(fā)揮作用。該代理是EC2簡(jiǎn)單系統(tǒng)管理器(SSM)服務(wù)的一部分(可以從GitHub上找到),已經(jīng)植入了AWS Windows鏡像,也可以手動(dòng)安裝到運(yùn)行Amazon Linux、Red Hat Enterprise Linux、CentOS、Ubuntu和Windows Server的服務(wù)器上。據(jù)Barr介紹,該代理通過一個(gè)出站HTTP請(qǐng)求發(fā)送指令,不需要打開入站端口。
為了簡(jiǎn)單起見,該代理只要能夠向目標(biāo)區(qū)域里的SSM端點(diǎn)發(fā)送HTTPS請(qǐng)求就可以了。這些請(qǐng)求可以根據(jù)你的網(wǎng)絡(luò)配置通過代理或網(wǎng)關(guān)定向或者路由。
除了運(yùn)行特定的命令外,用戶還可以選擇他們希望在虛擬服務(wù)器上執(zhí)行的預(yù)定義命令“文檔”:使用AWS提供的13個(gè)文檔中的一個(gè),或者選擇一個(gè)由同行或社區(qū)編寫的公共文檔,或者創(chuàng)建一個(gè)自定義文檔。AWS身份和訪問管理(IAM)服務(wù)對(duì)誰可以創(chuàng)建和執(zhí)行這些命令進(jìn)行管理。不管文檔源或目標(biāo)機(jī)器在哪里,所有的執(zhí)行歷史都會(huì)集中記錄到AWS CloudTrail,用于后續(xù)審計(jì)。如果一個(gè)命令產(chǎn)生了大量的輸出,那么用戶可以將輸出定向到Amazon S3存儲(chǔ)桶,用于后續(xù)檢索。AWS提供了多種執(zhí)行命令的方法,包括Amazon EC2控制臺(tái)、AWS SDK、AWS CLI 或Microsoft PowerShell。
EC2 Run Command可以在所有的AWS區(qū)域免費(fèi)使用。AWS指出了一些用戶應(yīng)該了解的注意事項(xiàng)。所有命令都是異步執(zhí)行的,由于AWS“管理每條命令的排隊(duì)、執(zhí)行、終止和報(bào)告”,所以執(zhí)行順序是不確定的。另外,該服務(wù)只允許用戶每分鐘在每個(gè)實(shí)例上執(zhí)行60條命令。一個(gè)單獨(dú)的AWS賬號(hào)最多支持200個(gè)命令文檔,而文檔只能在創(chuàng)建它們的區(qū)域里使用。用戶還要注意,命令在目標(biāo)服務(wù)器上是以管理員權(quán)限運(yùn)行的。
來自Amazon的Barr指出,隨著計(jì)算資源消費(fèi)的發(fā)展,他們必須考慮不同的服務(wù)器管理方式:
在一個(gè)相對(duì)靜態(tài)的同構(gòu)計(jì)算環(huán)境里,你只有數(shù)量有限的幾臺(tái)永久性的、為人所熟知的服務(wù)器(或者使用Amazon Elastic Compute Cloud(EC2)的術(shù)語“實(shí)例”),當(dāng)從這樣一個(gè)環(huán)境遷移到一個(gè)更大、更動(dòng)態(tài)的異構(gòu)環(huán)境,你可能需要考慮使用一種新的方式管理和控制那些實(shí)例。
過去的一年里,一連串的多重云管理創(chuàng)業(yè)公司被科技公司收購(gòu)——IBM收購(gòu)Gravitant,Cisco收購(gòu)Cliqr,CenturyLink最近收購(gòu)了ElasticBox。許多多重云管理工具都采用了一種傳統(tǒng)的服務(wù)器管理方法,主要是提供一個(gè)用戶界面對(duì)虛擬機(jī)進(jìn)行編目、排序和管理。AWS首席執(zhí)行官Jassay表示,這些多重云工具迫使客戶“標(biāo)準(zhǔn)化最低層次的需求。”這也許可以解釋,為什么開發(fā)人員和系統(tǒng)管理員似乎更喜歡使用以API為中心的工具,如EC2 Run Command,幫助他們根據(jù)自己的情況、以新的方式、大規(guī)模地使用分布式計(jì)算資源。
查看英文原文:AWS Adds Multi-Cloud Scripting to EC2 Run Command Feature