由於之前提到的某些原因,我終於還是決定更換博客的託管主機。折騰了2天,轉到Amazon雲計算平台後,百度已經開始收錄本站,效果顯著。

什麼是Amazon EC2?

這個問題在講私有雲的時候有過簡短的介紹,不過後面的語言可能太學術了一點。Amazon AWS服務是雲計算先驅,EC2是AWS提供的其中一項服務。簡單的說,EC2就是在Amazon服務器上運行的虛擬機,我們可以在虛擬機里自己安裝操作系統、web服務、數據庫,想做什麼就做什麼,擁有完全的權限。

為什麼選擇Amazon EC2?

目前很多成長期的互聯網公司都在使用EC2,例如Foursquare,Quora,Zynga等。之前叱吒風雲的維基解密亦曾託管於EC2,抵禦了官方黑客洪水般的DDOS攻擊。雲計算的一大特點就是按需使用,靈活伸縮,在初期網站訪問量不大時選用低配置虛擬機,花費較少,而待大量訪問來臨時,後台可以一鍵升級到高配置,穩定度過高峰。

另外與普通主機託管不同的,剛剛也提到了,我們擁有root級完全的系統權限,後台要跑什麼應用自己都可以搭環境,不受限制。最狠的是Elastic IP配置可以讓我們的站點擁有一個獨立IP!這是多麼的難能可貴啊,被GFW誤殺的概率大大降低了。

如何收費?

目前新註冊用戶可以免費使用Micro Instance 1年。該instance具體配置為613M內存,10G空間,每個月上下行流量各15G。這個配置對於個人博客這類小型網站完全夠用。

其他高配置的虛擬機Instance收費標準,是以小時計費。

如何部署?

1. 註冊賬戶

首先你需要新註冊一個Amazon AWS帳號(舊帳號無法免費使用EC2),註冊時會要求提供信用卡,並自動有越洋電話打來確認。

2. 創建EC2 Instance

登錄AWS控制台,選擇“Launch Instance”新建一個虛擬機。

創建instance虛擬機

3. 選擇AMI

AMI相當於硬盤鏡像,你可以選擇預裝有不同操作系統的鏡像,當然也有很多人將他們自己配置的鏡像打包共享,方便快速部署。假設我們想要部署一個wordpress博客站點,那麼就可以選擇BitNami WordPress Stack,這是一個配置好了wordpress運行環境的鏡像,可以選擇預裝Ubuntu或Windows系統,預裝Apache、PHP和mysql等環境,當然你也可以自己裝其他環境,例如nginx。在BitNami網站上查找Amazon鏡像代碼,根據自己的需要選擇不同鏡像。

bitnami鏡像代碼

這裡要注意的是一定要選Root Device為EBS的AMI,才能保存數據在虛擬硬盤。

下面就可以繼續在Amazon控制台搜索鏡像代碼,繼續配置EC2。

搜索選擇AMI

4. 選擇Instance類型

這裡選Micro,才可以享受1年的免費使用期。

instance類型

5. 密鑰對

如果你之前沒有生成過密鑰對,這裡需要生成key pairs,用於以後ssh登錄到系統。

key_pairs

6. 防火牆設置

初次配置,建議新建一個防火牆Security Group規則,允許所有TCP UDP ICMP協議,以避免出現不必要的麻煩。以後熟悉了運行環境,可以修改規則只允許HTTP(80) SSH(22)通過。

firewall

7. 創建完畢

等instance狀態為running的時候,系統就已經在正常運行了。我們可以通過控制台顯示的二級域名訪問到web服務,並登錄wordpress後台進行有關設置。

創建完畢

8. 分配IP

切換到Elastic IP,選擇新分配一個IP,然後將其綁定到我們剛剛部署好的系統。使用這個獨立IP是免費的,但如果你分配了IP卻不做關聯綁定,佔著茅坑不拉屎,就會被收費了。我們可以隨時解除綁定,釋放IP。下一次再分配的時候,二級域名和IP都會有變化。

分配elastic_ip

好了,現在可以到域名服務商處,修改A記錄,把自己的域名指向這個IP了。

9. SSH登錄

Linux下直接使用終端登錄

ssh -i yourkey.pem bitnami@****.compute-1.amazonaws.com

Windows下可以使用PuTTy登錄到運行的EC2 instance,注意putty本身不支持Amazon提供的PEM格式密鑰,需要使用puttygen來將pem格式文件轉換成putty使用的ppk文件。將Connection->SSH->Auth->Private Key file for authentication設置為由pem轉換而來的ppk文件。

這樣就可以登錄到Instance上了,現在就可以top看看系統的詳細信息。sudo有效,可以為所欲為了。

博客遷移

備份數據庫,導入到EC2中的數據庫;備份wordpress主題、插件……這些都不是本文討論範圍了。搜索之,應該會有人總結得很全面。

這裡要提到的是Bitnami的應用結構。Apache安裝在/opt/bitnami,phpmyadmin和wordpress安裝在/opt/bitnami/app。web服務啟動重啟都有相關腳本,很方便。ftp以及mysql默認用戶密碼等等,具體請查看/opt/bitnami的文檔。

參考鏈接:
http://apan.me/index.php/2011/04/22/%E5%BC%80%E5%8D%9A%E5%8E%86%E7%A8%8B/
http://www.agileweboperations.com/migrate-your-wordpress-blog-to-a-bitnami-ec2-instance
http://www.2bit-coder.com/2010/09/wordpress-in-the-cloud-amazon-ec2/