2009年12月20日 星期日

工作三個月

若單純用月跟日相減計算,工作差不多滿三個月了。這三個月的日子,仔細想想還算豐富,生活型態跟碩班差不多,大概是碩班生活就是不斷實作吧。


從一開始先使用 Ubuntu Desktop 環境,接著用用 VMWare Workstation,翻翻 Django BookPython 教學文件,接著忘記怎樣開始的,就用用 Facebook 以及嘗試在上面開發一個簡單的 Quiz ,在這之前則是使用 Google Map API 設計一些東西,盡管後來都沒派上用場,而其中有一些空窗期則是將工作上的系統製成 VMWare Image 或是幫忙弄弄 Django 程式,大部分都不難,所以常把這當作雜事。


除此之外,偶爾也會想一些有的沒有的,像前陣子就常試想要使用 MapReduce 架構去處理照片串成影片,小影片再串成大影片,結果,英文太差,隔行如隔山,用錯關鍵字找了三、四天,放棄前忍不住到論壇發文詢問,一問之下才發現別人給的回應有點怪,最後才發現我用錯了關鍵字,恰好用錯的字也是該領域中的一種情境。第一次覺得英文差很浪費時間,在論壇上可是瞬間就解決問題了!


隨後又被分配要介紹 Amazon EC2 ,在這之前則是被丟一些投影片或文件看看,原來很多事很早就規劃。然後花了兩、三天看看別人寫的教學,接著兩、三天摸摸 EC2 ,直到報告前三天開始弄投影片,又恰好碰到 EC2 的改版,讓預計中的進度有點變亂。明明 35 頁的投影片,再加上 15 頁的圖片,僅剩幾頁文字介紹,就這樣被主管至少五次來回地改來改去,原來用字真的要分外小心,雖然別人對此題目不熟,或是不是這領域的,但他們對報告流程都很熟悉,而一丁點的用字錯誤,就可能會被認為做事態度不佳。大概在報告前兩天時,開始有小小的壓力,畢竟我頂多只熟悉跟電腦溝通的英文字句吧!慶幸的,報告的過程還算流暢,主管也幫我回應許多問題,整個單位 60 人,共有 24 人左右捧場,扣除一些認識的,這份簡介大概對 10 ~ 15 人左右有幫助吧?其間有三位長官。經過這次簡短的報告,我覺得長官們吸收能力很強,明明覺得沒什麼的簡介,但他們也能聽得很仔細,並且問出其中重要的問題。偶後某長官也有特別關心一下,讓我覺得在上位者,都有十足的功力。


除了工作外,也跟同事以及大學同學去試試今年才新設立的運動館,由於一年有補助五百元,嘗試打打桌球、撞球,甚至電玩、投籃機和打擊場,只是電玩要撤掉,連帶投籃機跟打擊場變成要投幣使用,而補助的錢卻不能用這在些,久了只剩桌球和撞球,或許明年可以考慮游泳。


在這邊生活倒還愜意,一個月吃飯加住宿大概六千元,前陣子也因此狠下心買了一台電腦,只是時間不太夠,很難執行一些計畫,但也感覺這樣才是完整的生活,許多事都是平行地進行著,不再像學生時代,可以一段時間只專心處理一件事了。


接下來就是把看文件的功力練好,增加自己的吸收能力囉。


2009年12月18日 星期五

宅男最後的 120 小時








剛在 Facebook 上看到的,沒想到 YouTuBe 已經可以這樣玩了!我覺得影片拍得不錯,有些配樂也很耳熟,整體感還挺不賴的。


腦中突然一閃,前陣子恰好把圖片和影片串接當成一個練習 MapReduce 架構的題目,若真的無聊的話,或許可以把所有片段抓下來串接成所有故事劇情 XD 有興趣的還是從投完一遍吧,網路上已經有不少攻略,因為常常選錯看不到最後一幕囉,在此擺在煞風景的結局。其他的倒是隨著故事可以看到許多香港風景,挺不錯的。


Nami 結局









國企匡結局









讓本機可連虛擬機器,虛擬機器可連外 - VirtualBox 網路設定

前陣子開始用 VirtualBox ,因為上次抓的 VMWare Server 版無法在 Windows 7 x64 安裝,是連安裝檔都無法正常執行,所以,就開始嘗試 VirtualBox 啦。


我覺得它小而巧,我挺喜歡整個都包在一個檔,可以很方便地搬動。但有一點我一直很不解,為什麼我把虛擬機器設成 NAT 時,它的確可以透過我本機電腦的網路服務連出去,但本機電腦卻連不進虛擬機器,我對這點很疑惑。這樣的 NAT 服務有點怪,跟我在 VMWare 上的使用或是在 FreeBSD 上架設 NAT 的服務有所差別,之後我就一直沒再理他,直到最近工作的事靠一段落後,又再次看到這篇文章 營造 Linux 學習環境的好用工具 VirtualBox !第二次看到時,我終於想通該怎樣搞了。


那就是為虛擬機器加網卡,第一張是 Network Address Translation ,第二張是 Host-only networking ,如此一來,第一張網卡提供 NAT 服務,讓虛擬機器可以與連出去外面,而第二張網卡使用"僅限主機",將使得本機端電腦可以連到虛擬機器。


測試的成果很順利,NAT 那張網卡取得的是 10.x.x.x 開頭的 IP ,而 Host-only networking 那張則是 192.168.x.x  的 IP


2009年12月17日 星期四

Amazon EC2 使用教學 - Create Image (EBS AMI) 系統備份

這週發現,原先在 Amazon EC2 上,從 Quick Start 開啟的機器,有一些不一樣了。開啟的機器無論 Linux 或 Windows 系統,它們的一開始只被分配小量的硬碟空間,如 15GB 等,跟之前不太一樣,上周開 Linux 機器時,至少提供 140 GB 的暫存空間。而以前用 Bundle 建立的系統依舊還可以透過原先開機器的方式進行。


幾天前,我還以為 Create Image (EBS AMI) 跟 Bundle Instance (S3 AMI) 是相同的服務,直到今天中午才發現是不一樣的,雖然它們有共同的功能,那就是備份系統,但整個過程是不一樣的。主要是現在從 Quick Start 開啟的新機器,它們的系統碟已經換成 EBS Volume 了,簡單的說,建立一台機器時,會自動在 Volume 區建立一顆硬碟並且使用它。目前我還沒搞清楚計費的差別,畢竟現在這種新的方式,多用了一個 EBS Volume 服務,感覺會多收費 :P 而使用舊有的 AMI ,在建立機器時,其 root device 是 instance-store 的型式,只有 EBS 型式的才能使用 Create Image (EBS AMI) 的方式備份喔。而流程上是將系統碟製作 snapshot ,如此一來,新開機器的系統碟就是透過 snapshot 來複製出來,以此達成開啟新機器的動作。


回歸主題,關於 Create an EBS Image 的備份方式,無論 Windows 或 Linux 系統都是一樣的,可以完全在 AWS Management Console 這 Web UI 上完成操作,不需像 Bundle 時還要下下指令,以及準備相關的 Key 等等。在此以 Windows 機器當作範例,特別留意的,在製作 EBS AMI 時,系統會有重開機的現象,跟 Bundle Image 是不一樣的,Bundle 時並沒有重開機。在製作 Windows EBS AMI 時,別忘了記住或修改 Admin Password,這幾天我測試的結果,透過建立的 AMI 來開機器時,無法用 Private Key 來取得管理者密碼,而 Linux EBS AMI 倒還可以用 Private Key 進行登入。


以下是對 Windows 系統的操作


使用 Create Image (EBS AMI) 備份系統是很方便的,只需要在 AWS Management Console 操作就行了


EC2-Bundle-Windows 01 @ 20091214


接著只需打打名字


EC2-Bundle-Windows 02 @ 20091214


等待一會就會蹦出此訊息囉。


EC2-Bundle-Windows 03 @ 20091214


最後在 AMIs 就可以看到製作好的 AMI 囉!



EC2-Bundle-Windows 04 @ 20091214


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