2009年12月17日 星期四

Amazon EC2 使用教學 - Bundle Instance 系統備份

既然寫了 Amazon EC2 使用教學 - 以 EBS Volumes & Snapshots 增加和管理永久的硬碟空間 備份資料的方式,接著就要介紹一下備份系統。


EC2 機器關機後,除了資料不會儲存外,對系統的更動也不會保留,因此,辛苦設定好的系統環境必須要有備份的機制,這就是 Bundle 的服務。這個服務能夠讓你先專心設定一台機器,接著安置好環境後,可以在用 Create Instance 的方式,一次建立多台機器,有點類似以前用 Norton Ghost  安裝大量機器的概念(主要建立在硬體規格一樣),另外,Clonezilla 再生龍 是免費的軟體,也可以負責這類服務 。


在此以 Linux 機器作為範例,而 Windows 部分據說可以透過 Web UI 的 Bundle Instance (S3 AMI) 製作,但這部分我沒試。另外,一樣可以用指令來備份,有需要在參考這篇 Windows > Bundling an AMI


 


EC2 Linux 機器


備份 Linux 系統需要使用 EC2 提供的 tools ,過程較為繁瑣。在 EC2 上的 Linux 要備份系統前,必須先準備一下 Amazon Web Services > Your Account > Security Credentials > X.509 Certificate ,這個用在使用 ec2 tools 要做認證用的,類似確認使用者的身份,需要有 cert-*.pem 跟 pk-*.pem 兩個檔案囉,若真的忘記只好再去申請一組啦,我操作的機器: Getting Started on Fedora Core 8 (AMI Id: ami-3c47a355) - Minimal Fedora Core 8, 32-bit architecture, Apache 2.0, and Amazon EC2 AMI Tools ,更多詳細資訊請參考 Linux and UNIX > Bundling an AMI


X.509 Certificate


接著,把這 cert-*.pem 跟 pk-*.pem 從本機端複製到 EC2 上要備份系統的 Linux 機器,而此台機器假設是使用 demo.pem 作為認證的,


My Desktop $ scp -i /path/demo.pem /path/cert-*.pem /path/pk-*.pem root@ec2-##-##-##-##.compute-1.amazonaws.com:/mnt


登入 EC2 要備份的 Linux 機器


My Desktop $ ssh -i /path/demo.pem root@ec2-##-##-##-##.compute-1.amazonaws.com


進行系統備份,需留意 -u  接的是一組數字組成的 AWS ID 可以在 AWS > Your Account > Security Credentials 查看或是在 AWS Management Console 挑一台機器看 Owner 也行,而 -r 接的是系統的資訊 32-bit  ,此過程需要一些時間


EC2 $ cd /mnt
EC2 $ ec2-bundle-vol -d /mnt -k /mnt/pk-*.pem -c /mnt/cert-*-.pem -u ############ -r i386


EC2-Bundle-Linux ec2-bundle-vol 01 @ 20091214


........


EC2-Bundle-Linux ec2-bundle-vol 02 @ 20091214


接著將備份好的系統上傳至 S3,其中 -b 接得就是你要擺在 s3 的那個目錄裡,若該目錄不存在則會自動建立,而 -a 跟 -s 分是認證使用者的 Access Key ID 和 Secret Access Key
,可以在 Amazon Web Services > Your Account > Security Credentials > Access Keys 查到。


EC2 $ ec2-upload-bundle -b your-s3-bucket -m /mnt/image.manifest.xml -a **** -s ****


最後,則是註冊這個備份系統,有兩種方式可以作,一種是一樣透過 EC2 tools 中的 ec2-register ,另一種則是在 AWS Management Console > AMIs > Register New AMI 上註冊。使用 EC2 tools 則需要在自己的機器上安裝 EC2 tools ,並且要有 JAVA 運作環境,因此,用 AWS Management Console 可以省下很多事囉。


使用 ec2-register


My Desktop $ ec2-register -K /path/pk-*.pem -C /path/cert-*.pem your-s3-bucket/image.manifest.xml


使用 AWS Management Console


EC2-Register New AMI @ 20091214


 


備份完系統後,使用上就在 AWS Management Console > Instance > Launch Instance 時,可以切換到 My AMIs 上,就可以看到自己備份好的系統,剩下的流程就像建立新機器一樣。


EC2-Bundle-Windows 05 @ 20091214


相關問題



  • Client.InvalidInstanceType: Instance does not support bundling

    • 一開始在自己的桌機上(Unbuntu 9.04 desktop i386),備份 EC2 上的 Linux 機器,一直在試 ec2-bundle-instance ,但只會有這個訊息,最後發現應該是只適用在備份 Windows 機器啦

    • 參考資訊:[ec2-beta] Bundling image?



  • The specified bucket is not S3 v2 safe (see S3 documentation for details)

    • 當要在 EC2 Linux 機器上打算上傳資料至 Amazon S3 時,會蹦出這個訊息,主要是我使用的 bucket name 包含底線 "_",最後我換成 "-",

    • 詳細資訊:Bucket Restrictions and Limitations




2009年12月11日 星期五

Amazon EC2 使用教學 - 以 EBS Volumes & Snapshots 增加和管理永久的硬碟空間

Amazon EC2 可以很方便地叫幾台電腦出來,然而每一台關機後資料是不會留下來的,如其名,機器只在來計算為主。目前我用便宜的機器大概有 140 GB 的空間可用,大部分的應用都很充足,但為了能夠把實驗資料留下,就必須使用 EBS(ELASTIC BLOCK STORE)服務,其中  Volumes 用來增加儲存空間,而 Snapshots 能對Volumes 進行硬碟備份。


在使用 EBS Volumes 服務前,需要留意自己開的機器所在的區域,因為增加的硬碟要跟機器在同一區才行。以下則簡單列出 Linux 與 Windows 上掛載新硬碟的過程。


EC2 - EBS 01 @ 20091210


其中左上角是在新增機器可以選擇的區域,區域位置主要是網路回應可量,當然各區域的計費也是不同的,這些都需留意。右下角則是在 Instance 查看某一台機器所在的區域位置。接著切換到 Volumes 頁面,則可按下 Create Volume 新增一顆硬碟,這時就會問你硬碟要建在那個區域,而 Snapshot 先不用選,這是用在類似複製某顆硬碟出來用的。


EC2 - EBS 02 @ 20091210


Windows 新增硬蝶


在還沒安裝硬碟之前,Windows 機器上只會有 C 槽 ,從下面可以更快速查看 Disk 狀態(只有30GB)


[Start]->[Administrative Tools]->[Computer Management]->[Storage]->[Disk Management]


EC2 - EBS Windows 01 @ 20091210


接著,畫面切回 AWS Management Console 頁面,可以在左邊 ELASTIC BLOCK STORE 之 Volumes 上選擇哪顆硬碟來加到機器上(Attach Volume),其中 Instances 就是要選你要加的機器代號,可以回 Instances 頁面查詢,這邊也會列出所在位置讓你配對,而 Device 我是輸入 1 ,之前很直覺地試 D ,想說當作 D 槽,則是會出錯。


EC2 - EBS Windows 02 @ 20091210


當你一按下 Attach 後,不一會兒就可以在 Windows 上看到硬碟加入的樣貌,並且可以按右鍵來進行處理,Windows 有操作精靈帶你走,如格式化硬碟等,很方便的。


EC2 - EBS Windows 03 @ 20091210


不一會兒的功夫,硬碟加好囉。


EC2 - EBS Windows 04 @ 20091210


以上就完成加入硬碟的過程。


Linux 新增硬碟


EC2 - EBS Linux 01 @ 20091210


增加硬碟的過程跟 Windows 差不多,但在 Attach Volume 時,Device 代號可以用選單選的,此例為 /dev/sdf ,而被加到機器的硬碟會呈現 in-use 的狀態,這跟 Windows 都一樣,只是我忘了補上 Windows 操作的圖。


EC2 - EBS Linux 02 @ 20091210


但接下來,就沒有 Windows 操作的輕鬆,當然也可能是因為我沒使用 X-Window 的關係,首先使用 Terminal 登入機器,我用 PuTTY 登入,並且用以下指令查詢新加入的硬碟狀態


# ls -l /dev/sdf
# fdisk -l /dev/sdf


Linux - fdisk -l


接著可以使用 fdisk 來建 partition table ,此例是全部分配


# fdisk /dev/sdf


Linux - fdisk


接著格式化


# mkfs.ext3 /dev/sdf1


Linux - mkfs.ext3


最後就掛載到 /data 囉


Linux - mount


最後,講講 Snapshot 的部份,它是一個可以用來複製或備份硬碟服務,當我們在 Volume 增加硬碟後,如果某顆硬碟以儲存的資料想要分享到其他台機器時,這時就可以使用 Snapshot 服務,製作一個 Snapspot ,爾後在新增硬碟時(Create Volume),可以以某個 Snapshot 製作出來,以下是簡單的製作流程以及新增 Volume 時採用 Snapshot 的設定。


選取某顆硬碟製作 Snapshot ,此例使用 demo 這個名字。


EC2 - Snapshots 01 @ 20091210


 


過一陣子後,則可以在 Snapshots 頁面看到製作好的資訊。


EC2 - Snapshots 02 @ 20091210


另外,還可以設定這個 Snapshot 的存取權限,例如分享給大家用。


EC2 - Snapshots 03 @ 20091210


最後,回到 Volumes 頁面,新增 Volume 時,就可以挑選 Snapshot 啦,它就會以指定的 Snapshot 內容弄出一顆硬碟囉


EC2 - Snapshots 04 @ 20091210


2009年12月10日 星期四

Google Letter

Google Letter


今早收信,發現有封神秘字樣,原來我的廣告費已經達 10 美金,我掛 Google Adsense 也快一年了。這封應該只是確認一下身分而已,離目標 100 美金還遠得很。好像只要達 10 美金,就可以去設定收款的方式,看大家推薦都用西聯匯款,除了速度較快外,也可以免手續費的樣子,剩下等我哪一天真的達到 100 元再來分享吧。


目前我的廣告帳號是跟 Pixnet 綁在一起吧?也就是會付 20% 給 Pixnet 囉,至於為何會綁在一起,實在是以前寫的網誌都偏心情為主,申請時都沒過,過了一陣子後恰好也搬到 Pixnet ,可能是文章比較多了,後來用 Pixnet 這邊申請也就剛好過啦。


Amazon EC2 使用教學 - 以 SSH/PuTTY 連線 Linux 機器

EC2 Instance list @ 20091210


關於如何在 EC2 上新增一台機器,可以參考這篇 Amazon Elastic Compute Cloud (EC2) 使用教學 - 以 Windows Server 2003 與 RDP 為例 ,其中只要在選 Instance 時,改選 Linux 機器就行啦。


接著要怎連線呢?若你是在 Unix 上的機器並有 ssh client 可以用的話,那沒問題,就搭配使用一開始跑機器所給的 Key Pair (此例為 demo.pem ),另外在 Security Groups 上可別忘了要打開 22 port


# ssh -i demo.pem root@ec2-##-##-##-##.compute-1.amazonaws.com


其中上述的 "ec2-##-##-##-##.compute-1.amazonaws.com" 就是 EC2 配給你的連線位置


PuTTY PuTTYgen


只是,如果想從 Windows 機器連進 EC2 上開的機器,滿常用的是 PuTTY 軟體,只是登入機器的帳密問題需要稍微處理一下,必需搭配 PuTTYgen 軟體,一樣可以在 PuTTY 網站下載囉!


Putty - AWS


登入前要先切換到 [Connection]->[SSH]->[Auth] 上,需要用 Private key file for authentication 的登入方式。


Putty - Auth


然而,我們手上只有 *.pem 檔案,上述要的 *.ppk ,這時就需要靠 PuTTYgen 幫忙轉換


PuTTYgen - Import Key


PuTTYgen - Save private key


透過上述兩步,可以將 *.pem 轉成 *.ppk 檔,就可以在 PuTTY - Private key file for authentication 使用,開啟連線後,輸入 root 完就自動建立連線啦。


Putty - root@EC2


2009年12月9日 星期三

ASUS Eee PC 1000H WinXP 版 - 關閉觸控面板

最近常用 Eee PC 打打字,發現很容易不小心按到觸控面板,結果就打字的東西就會亂飄,然而上次仔細一看卻沒發現任何開關它的熱鍵,就不了了之。


剛剛又不小心弄到,就上網找一下資料,發現有關閉的方式,但我不確定原先舊有的是否就有,因為我已經是先更新了觸控面板的驅動程式才去做設定。所以,可以先試著去找看看,若沒有下面所提到的設定再去安裝新的觸控面板驅動程式吧!


首先,上 ASUS 官網下載驅動軟體 ASUS技術支援 -> [檔案下載] -> [Eee Family] -> [Eee PC] -> [Eee PC 1000H XP] 按下搜尋後,再選 WinXP 系統。


接著看 [觸控板驅動程式] ->  [觸控板驅動程式 V7.0.4.3版] 上頭恰好有列出



  1. 新增支援多點觸控功能

  2. 新增支援防誤觸功能


所以下載安裝完後,可以從視窗右下角常駐程式中去點選[觸控面板右鍵]->[Smart-Pad內容]->[Elan Smart-Pad] 頁面,就有"停止裝置" 的選項,當然這樣關閉觸控面板是可以的,但倘若哪一天忘了帶滑鼠,一開機連去點 Smart-Pad 設定的能力都沒有,那豈不是更慘?好像沒有組合鍵可以關閉打開它,但至少在 Smart-Pad 設定頁面上,有一個選項”當外部USB滑鼠插入時停用",可以恰恰好用一下囉。如果常駐程式找不到觸控面板的設定,那就從[開始]->[設定]->[控制台]->[滑鼠]->[Elan Smart-Pad] 也可以設定。