06 May 2014
Amazon EC2是什麼東西,這裡就不多做介紹了,
這裡主要介紹 Amazon EC2 API Tools,這個tool讓developer用來管理EC2上的instances,
不管是create, terminate, stop, create key等等之類的操作都可以透過API tool來完成,
那什麼時候需要用到這個tool? 像是automation啊,或者如果你想要customize自己的AMI時,
還是得先安裝 Amazon EC2 API Tools以及AMI Tools,不過AMI就是另外一個課題了,有機會的話再開另一篇來講吧!
這裡就focus在下面兩個主題:
    1. how to setup API tools?
    2. how to create EC2 instance using API command line?
    3. how to grant permissions to instance using API command line?
    4. how to terminate instance using API command line?

在開始之前,記得先去註冊AWS的帳號啊!(有一張信用卡就可以註冊了)


1. Get certificate and Private key

因為tools需要先拿到cert and private key,才可以讓developer對自己的account做操作,
所以得先拿到!
怎麼拿呢?
先到Security credentials的頁面,
進去以後,請點選紅色框框中的按鈕『Create new certificate』(如下圖),

按下按鈕就建立好cert and private key了!就把cert and private key下載到『桌面』.
記得!!!一定要先下載private key!因為只有一次的機會!錯過就無法重新下載了!
cert也要一併下載下來.



2. Download the API tools

接著就去下載API tools,
先在home目錄底下建立一個.ec2的folder,
這folder會存放cert and private key,以及api tools,
cd 
mkdir .ec2 # create folder
cd .ec2
wget http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip # download tools
unzip ec2-api-tools.zip
mv ~/Desktop/*.pem . # move cert and private key



3. Environment setup

接著要設定環境變數,
打開你的.bash_profile
vim ~/.bash_profile

並且insert下列的內容,
export EC2_HOME=~/.ec2    
export PATH=$PATH:$EC2_HOME/bin
export EC2_PRIVATE_KEY=$EC2_HOME/pk-xxxxxxxxxx.pem # remember to replace xxxx to your file name
export EC2_CERT=$EC2_HOME/cert-xxxxxxxxxxx.pem # remember to replace xxxx to your file name
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home/ # because API tools are written in java
export EC2_URL=https://ec2.us-west-2.amazonaws.com

其實設定都還蠻淺顯易懂的,
EC2_URL比較需要特別說明,
這個超重要!為什麼呢?
因為你不設的話,你待會下某些指令都會找不到東西!指令還得帶上--region option才行!
為了省下麻煩,就在bash_profile設定吧!當然你可以把us-west-2改成你想要的region!

最後記得要讓bash_profile生效!
source ~/.bash_profile


4. Gen key

接著先建立key,這key是等等用來ssh連線到你的instance的!
ec2-add-keypair ec2-keypair
這指令會幫你gen key,gen完以後會顯示在console上,
請把它複製起來!(從-----BEGIN RSA PRIVATE KEY-----開始複製,一直到-----END RSA PRIVATE KEY-----)
然後建立一個ec2-keypair的檔案,把內容貼在裡面!
cd ~/.ec2
vim ec2-keypair


5. Create instance

在create之前,你應該要知道你想要create哪一類型的instance!像是ubuntu, centos, amazon linux....etc.
所以要透過下面的指令去查有哪些instance,
ec2-describe-images -a --filter architecture=x86_64 >> ~/image_list
-a意思就是show all
然後--filter出architecture是x86_64的image!
因為其實資料蠻亂的,建議你還是output到一個file來看你想要create哪一種instance!
這裡我選擇了ami-6ac2a85a,這個是ubuntu14.04的instance!

接著就可以create了!下面的option應該就不用多作說明了,有玩ec2的應該都知道
ec2-run-instances  ami-6ac2a85a  --key ec2-keypair  --region us-west-2  --instance-type t1.micro


6. Connect to instance

一開始你想要ssh進去instance,一定是不行的!
因為預設的group permission是沒有開22 port的!
所以要用下面的指令去打開!
ec2-authorize default -p 22

打開以後就可以ssh進去了!
ssh -i ec2-keypair ec2-xxx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com

喔!對了!如果你忘記自己instance的ip或者相關資訊,
可以透過下面指令來查!
ec2-describe-instances



7. Terminate instance

要terminate一個instance非常簡單!
你只要知道自己的instance id就好了!(如果忘記id是什麼,一樣用ec2-describe-instances去查!)
ec2-terminate-instances i-xxxxxxx


















blog comments powered by Disqus