本文將示範如何在Google雲端服務上建置一個常用的LAMP網站解決方案,並為此網站伺服器加入以開放原始碼開發的網頁防火牆軟體(WAF),以提高網站伺服器的防護能力。
服務模式
接著,說明3種不同的服務模式。
SaaS(Software as a Service,軟體即服務)
在傳統上,通常習慣以買斷的方式來購買軟體,而SaaS則是以租賃的概念提供客戶軟體服務。運作時是將軟體置放在雲端業者的機房,使用者可利用一些簡單的驗證方式(例如帳號及密碼)登入來使用雲端軟體。在此模式下,企業可按照實際的需求來動態採購所需要的軟體數量。換句話說,可以將原本需要支出的固定採買軟體版權的費用,轉變成可動態調整的軟體使用費用。
PaaS(Platform as a Service,平台即服務)
在過去,要開發某個網路運用程式(例如以PHP語言進行開發)之前,必須先建立支援PHP語言的系統環境,例如在本文所要建置的LAMP環境,而後才能進行開發。而在PaaS的服務模式下,雲端業者已幫忙建立好相關的開發環境,只要專注在開發所需要的網路運用程式即可。在這個模式下,只能掌控運作應用程式的環境,但並不能掌控作業系統、系統硬體或運作的網路架構。
IaaS(Infrastructure as a Service,基礎設施即服務)
簡單來說,就是雲端業者僅控管網路等基礎設施,而使用者可控管包括作業系統、應用程式及系統上的防火牆等完整的主機系統資源。
Google雲端服務簡介
以下大致描述一下Google App Engine(GAE)、Google Compute Engine(GCE)這兩項Google雲端服務的內容。
Google App Engine(GAE)
Google App Engine(以下簡稱GAE)可以讓使用者在Google的基礎架構之上執行網路應用程式(例如PHP或ASP.NET等程式語言)。簡而言之,GAE即是幫客戶建置好作業系統、網路等環境,客戶僅需專注在開發網路應用程式即可。在開發完成後,只需要將網路應用程式上傳,即可提供給其他的用戶使用該應用程式所提供的服務。此外,可以公開該應用程式給所有的人使用或限制具有權限的成員才能夠存取該網路程式所提供的服務。目前根據Google官方文件所述,GAE所支援的程式語言如圖1所示。
|
▲圖1 GAE支援的程式語言。 |
Google Compute Engine(GCE)
此種服務定位為IaaS服務,在本文即是使用此雲端服務來建立所需要的LAMP環境,並利用此服務來建立一個虛擬機器(Virtual Machine,VM),而後在此機器上建立相關的環境。在建立的過程中,必須為網站伺服器加上ModSecurity模組,以便替Apache加上網頁防火牆的功能,但由於ModSecurity模組需要Apache支援某個特殊的選項,而一般以套件方式安裝的Apache並不會支援此類的特殊選項,因此這裡必須採用原始碼編譯的方式來建置環境。
不過,難度應該也不高,按照本文的實作步驟按圖施工,應該就能夠成功安裝。
實作LAMP環境
首先至GCP網站(https://cloud.google.com/)申請試用的帳號,在申請過程中,會要求讀者輸入信用卡資訊,根據Google的說法,此動作僅是用於驗證的功能,如果沒有轉換成商用客戶是不會扣錢的。在申請成功後,即可獲得免費使用300美元(一年的期限)的優惠,相關訊息如圖2所示。
|
▲圖2 申請成功後,獲得免費使用300美元(一年的期限)的優惠。 |
接下來,前往GCP的主控台(https://console.cloud.google.com/)新增一個虛擬機器,如圖3所示,依序點選「Compute Engine」→「VM執行個體」。
|
▲圖3 新增虛擬機器。 |
接著輸入建立虛擬機器所需要的相關資訊,例如所使用的CPU等級、記憶體容量等等,當然選擇越高級,所需要的費用就越高,在設定時要特別注意以下幾個重要事項:
1. 區域最好選擇「asia-east1」,此機房位於台灣彰化。
2. 映像檔選擇「CentOS 7」
3. 最重要的是,要記得設定防火牆需要允許http及https通訊協定通過,否則無人可以連到你的網站。
其餘設定的組態,可根據使用者的實際需求來設定,設定內容如圖4所示。
|
▲圖4 設定虛擬機器所需的資訊。 |
虛擬機器建立完成後,就會自動指定一個IP位址給此虛擬機器使用,使用者透過SSH連線到此虛擬機器,即可使用GCP所提供的「在瀏覽器視窗中開啟」連線方式,如圖5所示。
|
▲圖5 選用「在瀏覽器視窗中開啟」連線方式。 |