2012年12月12日 星期三

CloudFormation 教學 - 如何透過CloudFormer產生現有系統設定Template


相信對於許多IT和MIS來說,覺得最麻煩的應該就是要不停的做許多重複工作(比如說 Deploy service & Config network setting...等動作),而更討厭的是如果這個動作又不能被寫成Script自動化,今天要來介紹的神兵利器就是AWS 的CloudFormation。

還記得前一陣子我去參加AWS workshop 寫了一篇 "SaaS Template AWS CloudFormation" ,那時候我的結語是這個東西好威啊!但是該如何客製化產生template,或者是該如何把現有的環境設定輸出成template,是需要研究的功課。不過後來因為就都在忙其他的事情就沒有深入研究了,最近剛好跟同事提到有這個玩意,請他去研究一下,這才知道原來AWS大神已經都把工具做出來了!(謎之音:又少了一個可以周邊服務可以開發了...Orz...)


下面是我Step by Step 的貼圖教學,其實說穿了不值錢,真的很簡單!!




首先,先來到CloudFormation 的服務首頁,如果第一次使用會看到兩個選項:

第一個是Create New Stack  所謂的Stack 就是Template的意思,一個Stack會包含了你整個架構的設定,比如說你要建置一個HA 的 Web Service,內容應該會包含ELB、Instance x2、DB Server、IP設定..等 。

第二個是Lanch CloudFormer,這則是今天要介紹的重點,如何透過CloudFormer這個服務,把你目前系統的配置轉換成Template (Json的格式)。


其實產生CloudFormer也是利用CloudFormation的概念,利用AWS事先建立好的Stack去產生一台Instance,這個Instance裡面就有一個Web Service用來幫我產生template
(用自己去產生自己...很像繞口令)


在這邊他會要你選擇這個stack是不是要允許他設定IAM (權限設定),在這個案例是把它勾選起來,在其他案例就要小心了,因為如果你用了別人的template去產生一個架構,難保他不會偷偷開了一個權限和後門。


這一步可以略過,看你有沒有要加什麼tag


最後他會顯示出來,這個stack預計要產生怎樣的內容。


按下continue,就會回到CloudFormation的頁面,這時你就可以看到cloudformation 正在透過template產生你的stack (整個系統),越大的架構會需要花越多的時間請耐心等候~~


這時候你就可以來點一下下面的tab,由Event這一頁就可以看到目前正在啟動哪些Service,還有那些Service已經啟動好了。


在這邊就可以看到這個Template (Json格式的內容)



當整個Stack都啟動後,請回到EC2 找到剛剛啟動的Instacne ,並且查看他的public DNS or IP。最後連到那個網址,就會看到下面的 AWS CloudFormer 畫面。


首先你要先選擇你要產生的Template 是要Clone那個Region.


第一步:只是要你選擇一些描述這個Template是用來作什麼的

 第二步:選擇是否要clone DNS設定 (在這邊我沒設定所以是空的)

 第三步: 選擇你的網路設定,是否要有固定IP,是不是有LoadBalance...等

第四步:設定你要Clone 那些Instance 的設定 (如果你的Instance 在VPC,則他會自動把VPC的設定都一起Clone)

 第五步:是否要Clone Auto Scaling 的設定

第六步:是否要Clone EBS或是RDS..等設定
 第七步:選擇防火牆設定

 第八步:選擇是否要Clone Auto Scaling Trigger的條件


最後一頁,就是Summary,顯示出來你到底選擇那些Service要產生template,在這邊我只有選擇一個Instance跟一個防火牆設定。



將將~最後就產生出CloudFormation 的 Template啦,你可以直接Copy 這個Json下來,如果你按下Save Template,則會把這個template 存到S3裡面
如果你迫不及待想要測試你剛剛產生的Template,只要再跑依次Launch Stack就可以把你剛剛Template 所Clone的架構都產生出來,是不是很方便呢!?


感想:Amazon實在太威了,更新速度又如此之快,要其他廠商怎麼跟他拼~:P


張貼留言