在過去的10年,架設(shè)一個大型網(wǎng)站是一個非常艱巨的任務(wù),那可不是非專業(yè)人士可以完成的,F(xiàn)在好了,亞馬遜開放了他們的服務(wù)器架構(gòu),一切都改變了。 計算機(jī)硬件被移動到了云端,普通站長和開發(fā)人員都可以利用亞馬遜的硬件和網(wǎng)絡(luò)資源來運行自己的應(yīng)用。在本文,我們將把WordPress博客安裝到云端。
介紹
大多數(shù)博客和小型企業(yè)站點都托管在共享主機(jī)上面,通過固定的月租費用來獲得預(yù)裝軟件和特定功能的使用。大多數(shù)情況下,共享主機(jī)是一個完美的解決方案,但是將你的博客安裝在Amazon云端有很多好處是值得我們考慮的:
* 更容易升級更新. 在Amazon云端創(chuàng)建一個新服務(wù)器可以在數(shù)分鐘內(nèi)完成。使用該服務(wù),你的網(wǎng)站將有能力應(yīng)付突如其來的流量爆發(fā),比如你的博客文章被推薦到了Digg或者Reddit的首頁,你可以添加更多服務(wù)器并平衡負(fù)載。
* 經(jīng)濟(jì)有效的大規(guī)模服務(wù)能力. 如果你的站點吸引了大量的用戶,并且最終超過了主機(jī)的正常伺服能力,Amazon Web Services 將給你一個經(jīng)濟(jì)有效的辦法來設(shè)計一個符合你的需求的網(wǎng)站服務(wù)架構(gòu),而你并不需要去雇傭一個完整的網(wǎng)絡(luò)運作團(tuán)隊來安裝和管理網(wǎng)絡(luò)。這也是許多 Facebook開發(fā)人員選擇Amazon云服務(wù)器的原因。
* 完善的安裝與設(shè)置. 在運行WordPress時,這一點可能不是太重要,但如果你想使用PHP和MySQL之外的一些東西來建設(shè)你的下一個項目,則沒有必要請求主機(jī)公司的幫助,你可以就像在你自己的服務(wù)器上一樣安裝你所需要的軟件。
是否把WordPress站點放到亞馬遜云端由你的博客流量決定,并且你可以根據(jù)你的實際需求來決定服務(wù)器配置。通過下面的指南,你可以了解到怎樣迅速的在Amazon Cloud上設(shè)置和運行服務(wù)器。
Step 1 – 創(chuàng)建 Amazon Web Services 賬戶
在使用亞馬遜云服務(wù)之前,你需要在 Amazon Web Services (AWS) 創(chuàng)建一個賬戶, 去 aws.amazon.com 點擊 “Sign Up Now” 注冊。
如果以前使用過Amazon.com的服務(wù),這里可以直接使用同樣的電子郵件和密碼來登陸AWS,當(dāng)然你也可以選擇“I am a new user.”創(chuàng)建一個新的用戶。
在注冊階段,需要輸入你的聯(lián)系信息和信用卡信息,以便Amazon向你收取服務(wù)的費用。創(chuàng)建賬戶是免費的,不過使用其他的服務(wù)則都是需要花錢的。
定價模型很簡單 - 以服務(wù)器運行的小時為標(biāo)準(zhǔn)來收費,不過因為選項的不同,價格的計算可能比要復(fù)雜得多。當(dāng)你在Amazon上運行你得站點時,在讓服務(wù)器運行之前,最好仔細(xì)并重復(fù)檢查價格計算,免得在月底得時候被帳單嚇到。
我們的WordPress安裝不會超過一個小時,在我們完成前,我們會停止所有的服務(wù),所以完成本指南不會花我們一分錢。
Step 2 – 開啟你的第一臺服務(wù)器
服務(wù)器安裝包括兩個部分:
* 托管在亞馬遜EC2(Amazon’s Elastic Computing Cloud)上面的應(yīng)用服務(wù)器,用來運行Apache和PHP,將WordPress安裝在上面。
* MySQL 數(shù)據(jù)庫將托管在亞馬遜RDS(Amazon’s Relational Database Service)。
另由一個便宜,但更麻煩的方案,你可以手動安裝MySQL服務(wù)器與PHP和Apache在同一個服務(wù)器。在本指南中,我決定使用亞馬遜的關(guān)系數(shù)據(jù)庫服務(wù),因為這更容易使用,并且,亞馬遜會考慮數(shù)據(jù)庫的備份和維護(hù),你沒有必要擔(dān)心附加的安全細(xì)節(jié)問題。
現(xiàn)在我們開始創(chuàng)建我們的第一個應(yīng)用服務(wù)器實例。
在 AWS Management Console 點擊EC2標(biāo)簽, 因為是第一次使用EC2服務(wù),你需要另外注冊該服務(wù),點擊 “Sign Up For Amazon EC2″ 按鈕開始:
特別步驟,Amazon需要打電話給你來驗證身份。整個過程自動進(jìn)行:驗證碼輸入正確后,會被重定向到下一個頁面。
在注冊過程完成后,返回到管理控制臺和EC2標(biāo)簽。你將看到下面的頁面,點擊 “Launch Instance” 按鈕。
網(wǎng)頁會彈出一個 Amazon Machine Images (AMIs) 的列表.
AMIs 是正在運行的計算機(jī)的快照
多數(shù)計算機(jī)都包含了操作系統(tǒng)和其他一個基礎(chǔ)軟件,但是你還可以根據(jù)自己的需求創(chuàng)建更復(fù)雜的AMIs,甚至可以包含你的完整應(yīng)用。
我們選擇了最基本的選項:“Basic 32-bit Amazon Linux AMI 1.0.” 點擊 “Select” 進(jìn)入你選擇的AMI。
選擇了AMI之后,下一步就是選擇需要的硬件類型。根據(jù)選擇的32位或64位AMI,我們會看到不同的列表,32位的AMIs提供更便宜的選項。
作為測試,我們不需要太多的內(nèi)存或處理能力,因此我們開了一個微實例。選擇實例類型并點擊 “Continue.”
下一屏,采用默認(rèn)值就好,點擊 “Continue.”
當(dāng)你有多個不同規(guī)則的虛擬機(jī)后,你很容易會忘記每個機(jī)器的作用,你需要用大量的時間來查找正確的服務(wù)器。因此,對服務(wù)器的命名顯得非常重要,當(dāng)然在本指南中我們只運行一個實例,所以名字就顯得不那么重要了。
下一步,你會被問到創(chuàng)建一個鍵值對文件來安全地連接到服務(wù)器。Key 代替了用SSH連接到機(jī)器的密碼。命名你的Key Pair File,點擊 “Create & Download your Key Pair.” 拷貝鍵值對文件到一個安全的位置 (如果你使用Mac OSX或者Linux,~/.ssh 是一個好位置)?截愇募,修改文件權(quán)限到400:
chmod 400 wordpress_demo.pem
如果你使用Windows,你可以使用 PuTTY for SSH. PuTTY 使用它自己的鍵值格式(ppk),因此你需要使用Puttygen工具轉(zhuǎn)換key到ppk格式。
Key pair 創(chuàng)建之后,你會被要求在你的新機(jī)器上配置防火墻。默認(rèn)情況下,沒有人被允許連接到該機(jī)器 - 所有端口都是關(guān)閉的。我們打開了端口22(SSH)端口80(HTTP),我們能夠通過SSH配置機(jī)器并且從瀏覽器訪問博客。
繼續(xù),檢查配置,如果沒有發(fā)現(xiàn)任何不對,點 “Launch.” 完成安裝
回到Dashboard,你會注意到新建實例的狀態(tài)顯示為 “pending,”,過幾分鐘后會顯示為 “running.” ,這就意味著服務(wù)器已經(jīng)啟動并開始運行 - 你可以開始使用了。
服務(wù)器運行后,你可以通過在防火墻中定義的端口來訪問。下面我們將通過SSH連接到服務(wù)器進(jìn)行Apache, PHP, MySQL的PHP擴(kuò)展,以及WordPress。
Step 3 – 安裝需要的服務(wù)器軟件
在實例名稱的右鍵菜單中,選擇 “Connect” ,彈出一個包含SSH命令的頁面窗口
登陸SSH的命令與下面的格式類似:
ssh -i wordpress_demo.pem root@ec2-….compute-1.amazonaws.com
如果你把pem key保存在~/.ssh,你需要在命令中包含路徑。還有,你需要修改root用戶為ec2-user,亞馬遜不允許新的AMIs安裝用root用戶連接服務(wù)器。
登陸后,你就能像使用任何Linux主機(jī)一樣使用虛擬機(jī)。安裝軟件,我們用Yum安裝器來安裝Apache服務(wù)器,輸入下面的命令來安裝Apache:
sudo yum install httpd
下一步,用以下命令安裝PHP:
sudo yum install php
通過下面的命令安裝php-mysql擴(kuò)展:
sudo yum install php-mysql
好了,安裝完成開始準(zhǔn)備測試Apache。用下面的命令啟動Apache(你可以用“stop”或“restart”來停止或重啟Apache):
sudo /etc/init.d/httpd start
Web服務(wù)器啟動后,拷貝機(jī)器的URL到瀏覽器測試:
Step 4 – 創(chuàng)建數(shù)據(jù)庫機(jī)器
在安裝WordPress之前,我們需要一個數(shù)據(jù)庫。用RDS設(shè)置一個數(shù)據(jù)庫很容易,在AWS控制臺,點RDS標(biāo)簽,點 “Sign Up For Amazon RDS” 開始安裝數(shù)據(jù)庫機(jī)器。
安裝完以后,回到AWS控制臺的RDS標(biāo)簽,點擊 “Launch DB Instance.” 啟動數(shù)據(jù)庫實例
在彈出窗口設(shè)置需要啟動的數(shù)據(jù)庫屬性,比如服務(wù)器實例,分配的存儲空間等。我們?yōu)閿?shù)據(jù)庫分配了5個G的空間,足夠測試用了。為數(shù)據(jù)庫服務(wù)器實例和根 用戶命名,我們使用“wordpress-db”作為數(shù)據(jù)庫服務(wù)器名,“root” / “rootpass”, 作為管理登陸。因為做測試,我們使用簡單好記的登陸名,但如果要考慮更安全的登陸,建議采用較復(fù)雜的命名。
數(shù)據(jù)庫服務(wù)器設(shè)置完成后,你會被要求在服務(wù)器上定義一個默認(rèn)的數(shù)據(jù)庫。數(shù)據(jù)庫名我們設(shè)置為“wordpress”
點 Contiune 到下一步,你可以定義數(shù)據(jù)庫的備份設(shè)置,保留默認(rèn)值直接Continue進(jìn)入下一步。
驗證無誤后,點 “Launch DB Instance.”
創(chuàng)建數(shù)據(jù)庫實例的時間比創(chuàng)建EC2實例的時間稍長一些,大約5分鐘左右以后,你就可以在instances標(biāo)簽看到狀態(tài)為有效 “available” 了。
點擊實例可以看到更多的數(shù)據(jù)信息,拷貝“endpoint”的值,這也就是我們用于wordpress安裝的數(shù)據(jù)庫服務(wù)器的URL。
在安裝WordPress之前還有一個步驟就是我們還需要為數(shù)據(jù)庫配置防火墻,以便應(yīng)用服務(wù)器能夠訪問它。
回到RDS標(biāo)簽,點 “DB Security Groups.” ,在這兒你會看到?jīng)]有任何授權(quán)的應(yīng)用:
要讓應(yīng)用服務(wù)器訪問數(shù)據(jù)庫,我們需要授權(quán)它的安全組到數(shù)據(jù)庫的安全組。從“No Authorizations”下面的下拉列表中選擇 “EC2 Instance” ,并輸入安全組的名稱(“wordpress_app_server”)和你的Amazon Account ID
賬戶ID在AWS設(shè)置中是隱藏的,第一次點擊“Account”鏈接,然后點 “Security Credentials” 就可以找到。
輸入需要的信息然后點“Add”,你就可以看到安全組已經(jīng)被授權(quán)了,現(xiàn)在可以開始安裝WordPress了。
Step 5 – 安裝WordPress
重新打開SSH連接到應(yīng)用服務(wù)器,下載WordPress到服務(wù)器,默認(rèn)情況下Apache配置HTML文件在 /var/www/html/目錄
cd /var/www/html
sudo chown ec2-user
wget http://wordpress.org/latest.zip
unzip latest.zip
安裝需要創(chuàng)建wp-config.php文件,用下面的命令修改wordpress目錄屬性:
chmod o+w wordpress
在瀏覽器輸入URL路徑開始安裝wordpress
在wordpress數(shù)據(jù)庫設(shè)置頁面,我們的數(shù)據(jù)庫名是“wordpress”,Database Host一項填寫RDS實例的URL。
成功提交后,你的wordpress就成功安裝在亞馬遜云上了。
Step 6 - 停止所有服務(wù)
在本指南開始的時候我們提到過,AWS是按照使用的小時數(shù)來計費的,所以在測試完成后確認(rèn)你不會有費用支出,確認(rèn)停止所有的服務(wù)。
首先,停止EC2實例。如下圖所示:
停止數(shù)據(jù)庫也很容易,不過你不能重新恢復(fù)數(shù)據(jù)庫。幸運的是你在停止數(shù)據(jù)庫的時候,可以選擇保存數(shù)據(jù)快照。你以后可以使用保存的快照數(shù)據(jù)重新創(chuàng)建數(shù)據(jù)庫安裝。
在RDS標(biāo)簽,右擊數(shù)據(jù)庫實例,選擇“Delete”刪除
好了,確定服務(wù)都關(guān)閉后,退出AWS控制臺,你的WordPress博客已經(jīng)無法訪問了。