本文將示範如何在Google雲端服務上建置一個常用的LAMP網站解決方案,並為此網站伺服器加入以開放原始碼開發的網頁防火牆軟體(WAF),以提高網站伺服器的防護能力。
一般而言,如果公司需要一個網路服務,例如架設企業的網站,通常會先購買所需要的硬體設備並建置機房,在硬體架設完成後,再聘請專業的網管人員來負責建置及管理網路設備和主機。如此林林總總的成本花費,對一般的中小企業而言,也是一個不小的負擔。如果能有一個服務,企業主不必購買昂貴的硬體設備,也無須負擔機房的管理,而只要關注在網站的內容更新,相信將可有效地降低企業管理的維運成本。基於此類的因素考量,即有「雲端」的服務因應而生。
簡而言之,雲端服務即是企業主向雲端業者租賃一部分的主機,並由雲端業者負責管理相關的網路設備及主機硬體。企業主僅需要專注在「內容」的更新即可。
由於Google的雲端服務目前有提供一年300美元的免費試用額度,因此在本文將善用此優惠方案,以實作的方式在Google的雲端服務上建置一個常用的LAMP(Linux + Apache + MySQL + PHP)的網站解決方案,並為此網站伺服器加上開源碼社群中最富盛名的網頁防火牆軟體(Web Application Firewall,WAF)來確保網站伺服器的安全,本次所使用到的軟體工具如表1所示。
表1 實作所需軟體清單
何謂雲端服務
簡單來說,所謂的雲端服務即是雲端業者在他們機房內部署效能優異的主機,並依據客戶的需求來配置適當的資源和環境,以滿足客戶對於網路服務的要求。
依據美國國家標準與技術研究院(National Institute of Standards and Technology,NIST)的定義內容,雲端服務依照其類型可以區分為5個基本特徵、4種部署模式、3種服務模式(即所謂的雲端543),相關說明如下:
基本特徵
基本特徵共有以下5項,分別加以說明。
On-demand Self-service(按使用者需求自行調配服務)
使用者可以依本身的實際需求來要求所需要的系統資源,例如伺服器的CPU等級、記憶體或儲存等相關的主機效能,而且在整個要求過程均可由使用者自行設定。亦即系統資源要求可由單方面自動化,而無須與資源提供者互動,如此可快速地反應使用者對於資源的要求。
Broad Network Access(廣泛的網路存取)
由於雲端的服務皆必須透過網路提供,所以需要提供一個標準機制來讓不同類型之使用者端的平台(例如智慧型手機及筆記型電腦等)皆可利用網路來使用雲端所提供的服務。
Resource Pooling(共享資源池)
雲端業者所提供的系統資源,例如硬碟儲存空間、網路的頻寬、CPU的計算能力、虛擬機器數量等。可將這些資源比喻成一個大水池,可以隨時依使用者的實際需求,重新分配適當的資源給不同的使用者。對使用者而言,他並不需要了解這些系統資源所在的實體位置(例如位於那台主機上),只要知道系統資源所在的地理位置(例如系統資源是位在那個國家或那個資料中心,如此可幫助使用者選擇離自己最近的機房)等抽象概念即可。
Rapid Elasticity(快速重新部署靈活度)
雲端業者所提供的系統資源不僅可以快速且有彈性地被提供或收回,而且對使用者來說,可以在任意時間彈性地購買所需要的系統資源。
Measure Service(服務可計算)
雲端業者可充分掌控與監管雲端服務的資訊,來確保計算費用或系統資源優化的維運工作可順暢地進行,並為使用者提供透明化服務使用資訊。
部署模式
相關的部署模式共有4項,以下分別進行說明。
Public Cloud(公有雲端)
雲端業者所建置的系統資源,不受限地提供給所有人使用。此模式所花費的成本較低,但其安全性也較低,因此這種模式比較適用於資料機敏性低或預算不足的中小型企業。
Private Cloud(私有雲端)
即是由企業自行建置的系統資源,僅提供給企業內部使用,故其所花費的成本較高,但可有效地控管安全性,因此比較適用於資料機敏性高或預算充足的企業。
Community Cloud(社群雲端)
這是指由數個組織共同建置的系統資源,比較適合於需要共享資料的學術單位或社群。
Hibrid Cloud(混合雲端)
混合雲端即是泛指上述兩種(含)以上的雲端部署模式型態。常見的運用方式為,企業將機敏性高的資料交由私有雲端處理,而機敏性低的資料則交由公有雲端處理。