Widgets

昨天繼續玩了剛裝起來的 EC2 Micro Instance(歡迎參閱「第一次玩 Amazon EC2 Micro Instance 就上手」),越玩越不順手,因為裝的是自己不熟悉的 Fedora Core 8,所以揮一揮衣袖,尋覓有沒有什麼方法可以將 Ubuntu 裝在 EC2 Micro Instance 裡頭。



之前搜尋到 Ubuntu 官方釋出的 Ubuntu 10.04 LTS 在各 EC2 Region 提供 32-bit(m1.small)/64-bit(m1.large) 的各種 AMI,也提供有 EBS/Instance 兩種 root store。既然手上有了 m1.small 的 Ubuntu,那接下來尋找的方向大致類似:「如何將 m1.small (Standard Instances - Small Instance) 轉成 t1.micro (Micro Instance)」,很幸運地找到 AWS Discussion Forum 的這一串討論找到了提示 :) 這也提醒我別再一直故意跳過 EC2 Command Line Tool (命令列/指令列 工具) 了,哈!該看的文件還是要面對的 :p



1.

取得並安裝 EC2 Command Line Tool:請參閱 AWS 官方這份文件。依照大家自己手邊機器的環境做設定。(另外有一份 Command Line Reference 可以參考。)



  • 安裝 JAVA (JRE)
  • Windows XP 環境可以用:「我的電腦」右鍵 ->「內容 」->「進階」->「環境變數」的方式設定,不然就是把上述文件中的 set XXX=somepath 等東西寫到 AUTOEXEC.BAT 裡頭去。
  • 至少設定好這幾個環境變數,應該 Command Line Tool 就可以動作了(其餘請參閱文件):
    JAVA_HOME (ex: "d:\Program Files\jre6")
    EC2_HOME (ex: "e:\aws\ec2-api-tools-1.3-53907")
    PATH (ex: "something;%EC2_HOME%\bin")
    EC2_PRIVATE_KEY (ex: "~\pk-xxxxxxxxxx.pem")
    EC2_CERT (ex: "~\cert-xxxxxxxxxx.pem")


2.

有了 Command Line Tool 之後,就可以開始動手來試試看,先小試一個 EC2 command 玩玩看:

%> ec2-describe-regions
REGION  ap-southeast-1       ec2.ap-southeast-1.amazonaws.com
REGION  eu-west-1            ec2.eu-west-1.amazonaws.com
REGION  us-east-1            ec2.us-east-1.amazonaws.com
REGION  us-west-1            ec2.us-west-1.amazonaws.com



3.

確定 Command Line Tool 正常運作之後,接下來進入主題囉!

首先,幾個前情題要:

  • 如果可能,最詳細的 EC2 與 Micro Instance 相關的簡要資訊在產品頁面使用者手冊,請參閱。
  • Micro Instance 只能用 EBS storage,沒有自己本身的 Instance storage。(可以簡單想像成這是兩種硬碟放在不同處,但是 mount 上來之後沒什麼差別。)
  • 如果要指定 Security Group ,記得加上相關參數 --group
  • 我自己的狀況是先建好一個 Security Group,裡頭開有至少兩個 SSH (22) 和 HTTP (80)。方便 instance 建立好的時候就能馬上直接用這兩個 port。

在此,以美東的 32-bit Ubuntu 10.04 LTS on m1.small 為例,加上 Security Group 設定的指令如下:(XXXX GGGG 請代換。不熟悉 Command Line Tool 的話,可以先在 AWS Management Console 介面上先設定 Key Pair 和 Security Group。)

%> ec2-run-instances ami-1234de7b --instance-type m1.small --region us-east-1 --key XXXX --group GGGG



4.

開好這個新的 instance 之後,可以在 AWS Management Console refresh 之後看到這個新的 instance。接著來改變 instance 屬性,使之成為 Micro Instance(更多討論串內容可以參閱這裡):

(以下指令中的 "instance_id" 請代換成上一步驟剛建立的 instance id。)

%> ec2-stop-instances instance_id
%> ec2-modify-instance-attribute instance_id --instance-type=t1.micro
%> ec2-start-instances instance_id




5.

接下來就看大家各自發揮囉,一個基本的 Ubuntu on Micro Instance 已經建立起來了。我另外做了 associate Elastic IP 的動作。

如果要 SSH 進去的話,請用 "ubuntu" 這個 username,下指令的時候搭配 "sudo" 服用即可。



關於建立 LAMP 環境,可以參考 Linode Library (哈!)。



Brought to you by

7 Comments:

  1. 是如果是新開instance的話,根本不需要從small轉成micro,下指令的時候直接改成--instance-type t1.micro就可以了,不用另外浪費錢開small再轉micro

    ReplyDelete
  2. 謝謝 Sandy 的資訊 :)
    我也想過這樣試試看,但我是 EC2 完全新手,哈,想說可能包好的 AMI 都有對應的 instance type,所以... :p 我再找個時間試試看用 m1.small type 的 AMI 直接用 t1.micro type 建立看看。

    ReplyDelete
  3. 我有裝 noip2 耶, ( 我註冊了 pofeng-ec2.no-ip.biz ) 或許這樣可以省下 elastic ip 的錢 :p , 你一定要用固定 ip 嗎 ?

    ReplyDelete
  4. @Pofeng, elastic IP 好像只有在沒有使用(associate with some EC2)的時候才會計費,印象中。有固定 IP 的話比較方便設定 DNS A :p 用 noip 也是可以的 :)

    ReplyDelete
  5. 真的耶

    $0.01 per non-attached Elastic IP address per complete hour

    不過, 我關機的時間應該比開機多, 所以我還是用 noip2 省錢好了 (哈哈, 真無聊)

    ReplyDelete
  6. Hello, my name is Hugo
    請問可以請您吃個飯嗎?
    有許多問題想請教您

    ReplyDelete
  7. 謝謝 Sandy,今天終於有時間測試了:ec2-run-instances ami-508c7839 --instance-type t1.micro --region us-east-1 --key XXXXX

    很順利 :)

    ReplyDelete

 
Top