AWS Cloud and DevOps with the intention to bring more enterprise on to the cloud and practicing

(只提供繁体中文版本)

DevOps – Blog by John Chang

AWS Cloud and DevOps with the intention to bring more enterprise on to the cloud and practicing

在AWS上進行DevOps的過程,自動化是其中很重要的一部分,我們通常會藉由一些工具或程式語言的幫助。Ansible, Shell Script以及Python是我最常使用的幾種。

Ansible是近年來很多人的選擇之一,它的好處是只需要有OpenSSH以及一台Linux-based的機器就可以使用,它的語言格式是yaml語法,主要的用處是用來對機器下達命令,將需要做的是逐一列出,很適合用來管理EC2 instances。Ansible的執行必須是在Linux主機上面,而遠端被管理的機器,從前也必須是Linux-based, 但是現在Windows也支援了。透過inventory file,我們可以管理遠端的機器IP address,並且分類。Inventory file預設是放在/etc/ansible/hosts,當然也可以自己創建新的文件,再透過參數的方式下達給指令。執行的對象是一個稱為playbook的檔案,將hosts, tasks等內容寫進playbook執行。從前你需要一台一台對每台機器操作,現在你只需要寫好一個playbook,對於管理多台機器是很方便的語言。

AWS對於每個服務都有提供相對應的cli給開發者使用,也因此很多人會將cli command寫進Shell Script中,再結合crontab以特定時間執行。例如我們需要在CloudWatch中增加custom metric的Alarm,就可以用crontab每格一段時間執行shell,把需要的資料送到CloudWatch。

Boto3是Python使用的AWS SDK,可以讓Python的開發者來開發AWS的軟體服務。你的機器需要先透過pip安裝boto3: pip install boto3,之後便可以在你的Python程式中使用。最常使用的SDK通常是EC2跟S3。

開發者透過這些程式語言,可以將以往需要手動輸入的動作用程式的方式執行,寫過的程式有時甚至可以重複利用,不僅有較高的效率,也能減少失誤的機率。

Posted in ICG日志.