2018年10月15日 星期一

Google 雲端平台架設網站,享受台灣機房飛快速度



這一篇,是我目前看過最詳細簡單的介紹文。
文章來源:http://jackthink.com/content/31

一般個人或小型企業架站,想到的架站軟體通常就是WordPress、Drupal、Joomla等CMS(內容管理系統)。而在架站空間的選擇上,最入門者通常選的是虛擬主機,再進階一些則會選擇VPS服務商。
先前我的網站是架在Linode上,但最近我架在Linode上的網站狀況太多了,因此開始搬家。目前一部份先搬到DigitalOcean,另外一部份則搬到Google雲端平台上。
Google雲端平台上的Cumpute Engene(運算引擎)服務其實和諸如Linode及DigitalOcean等VPS很像,都是提供一個基礎設施平台讓你可以在上面安裝作業系統,進一步在上面部署相關的網路服務,例如架設一個網站。
但Google Cloud Platform有更多好處。首先,新加入者都會送300美元的額度任你在兩個月之內使用。對於一般的小網站來說,這不只是免費使用2個月而已,300美元額度其實對於小網站來說已是太高了,可以任你在上面學與試驗各種功能。
其次,Google亞太區最大的資料中心就位於台灣的彰濱工業區,選擇它的東亞機房其是就是選擇台灣機房。各位可以上網搜一搜就知道,一般網站代管服務只要是提供台灣機房的,就是貴上一等,相較之下你會發現到Google Cloud其實價格算是相當便宜的。
例如,Compute Engine中若選擇最少資源的方案,一個月只需要5美元,Linode還有很多VPS都還端不出這麼低價的入門方案呀!
開始使用
我想會讀本文的應該都是有些架站基礎的,因此一些瑣碎的操作說明就不說了。只談一些操作的大步驟或者是重要的相關資料。
開始使用之前,你必需先填寫信用卡資料,完成之後,你的Google Cloud帳號裡就會有300美元的額度任你使用。
接著你必需開啟一個專案(project),然後再開啟專案的帳單功能就可開始使用。
下一步就可以進入該專案的資訊主頁,可選擇部署Compute Engine建立一個執行個體,或者是透過Cloud Launcher快速部署應用。Compute Engine在資訊主頁上相當顯眼的位置。Cloud Launcher則要點選最上方的三橫線圖示之後才可叫出(↓)。

如果你想省掉諸如LAMP環境架設的麻煩,可以透過Cloud Launcher找到Google的Click to Deploy(一鍵安裝)套裝,真的在短短幾分鐘時間裡就可以讓你架好一個網站,馬上讓網站上線。但完成是記得開起對外的HTTP連線,之後就可以透過外部 IP連到你的網站了。
例如,在CMS這一大類裡,可以看到WordPress、Joomla、Drupal等廣受歡迎的套件。有些套件會有重覆,是因為來自不同的供應商,例如,WordPress和Drupal除了可看到標示著「Google Click to Deploy」的之外,還有另一家Bitnami的。而同是Bitnami的WordPress還有兩款,這是因為裡面捆綁的功能不一樣,因此在安裝前可以先詳看一下。
以下則是透過Compute Engine建立一個執行個體的簡單步驟。在按下部署的按鍵之後,會看到系統這樣跑:
↓ 接著你可以選擇要使用怎樣的資源,右邊則會幫你計算出相對應的價格:

例如,微型方案(f1-micro),一個共用vCPU,0.6GB記憶體,選用10GB標準硬碟(若改用SSD則會再多一些些)每個月為6.97美元,但你如果是連續使用會有優惠,也就是每個月只需要5美元。

↓ 再升一級,到小型方案(g1-small),一個共用vCPU,1.7GB記憶體,10GB標準硬碟為15.73美元。
↓ 再升一級到1個vCPU(n1-standart1)方案,3.75GB記憶體,10GB標準硬碟每月28.5美元。若改用10GB的SSD永久硬碟則為29.81美元。
 

↓ 「區域」就是機房的位置,可以參考這裡的資料,了解每個代號的位置。asia-east1-a、b、c都是位於台灣的彰化縣。
在OS的選擇上,市面上一些常見的Linux版本基本上都找得到

麻煩的FTP
在Google Cloud Platform上架好網站很容易,真的就是幾分鐘的時間就可完成。
但架好網站之後,如何上傳檔案到網站上,就很麻煩了。根據Google的官方說明與教程,有兩種方法可以上傳資料,但無論那一種,都一定要先安裝Google Cloud SDK。
其中第一種方法是直接透過Google Cloud SDK輸入文字式指令,相信對很多人來說,這並不是一個簡單易學的方法。
第二種方法,則是要透過Google Cloud SDK產生SSH金鑰,再利用一般的FTP軟體像是FileZilla以金鑰登入主機。
但實際上,透過Google的說明,甚至網路上你搜尋了一堆教學文之後,也是沒有用的。既使你能夠登入了,但卻是沒有權限可以上傳任何資料。筆者在經過多方嘗試之後,雖然找到方法,但這方法似乎不是很安全。若有大德能夠指導更好更安全的方法,不勝感激。不過,這對於初學者來說,至少是能夠讓你成功登入與上傳檔案的方法。
安裝Google Cloud SDK
Google Cloud SDK是非常奇怪的東西,根據Google說明,安裝之前必需先下載並安裝Python 2.7.x
一般人會直覺直接下載安裝2.7.x版中最新的Python 2.7.11,而我記得當初在安裝gcloud時我並未先安裝Python,安裝軟體自動幫我安裝的是Python 2.7.10。
但一卻一直收到錯誤的資訊,就是無法安裝,多方嘗試最後只能得到這樣的結果↓。
後來我寫信給他們客服,經過半天才回信。但沒幫我提出任何解決問題的方法,只跟我要更詳細的說明與提供他資料。
隔天我找到解決方法了:就是Python只能裝較舊的2.7.9版。在我解決該問題之後好像是隔天,客服才終於寫信來告訴我,得裝Python 2.7.9版才行。
FTP呢?
要FTP上傳資料,Google Cloud SDK的安裝還只是一道小關卡。
接著要如何從讓FTP軟體以SSH金鑰連上網站並可以順利上傳資料,這個就麻煩了。
事實上,除了透過Google Cloud SDK產生金鑰,還可以利用WinSCP自行產生金鑰軟體後在你Google 雲端平台的執行個體裡找到「中繼資料」功能中的「SSH」金鑰標簽編輯上傳自製的金鑰。網路上也有幾篇文章介紹這個方法,但利用這個方法產生的金鑰卻沒有權限上傳資料,因此在此就不介紹該方法了。
多方嘗試之後,只能利用Google Cloud SDK產生一個root權限的金鑰,才能夠順利上傳檔案。
方法是,安裝好Google Cloud SDK之後,點選桌面的Google Cloud SDK Shell執行gcloud init。
這過程當中會要你輸入專案名稱,你可在你的Google Cloud主控頁面右上方看到一個下拉式選單的小箭頭圖示,點下去就可以看到所有的專案名稱,你正在執行的專案旁則會多一個勾勾。
gcloud SDK登入專案時,你可選擇你用來建立該專案的帳戶名稱(通常就是你的gmail)登入。
最後如何產生具有root權限的金鑰,說麻煩也不麻煩,但就是難以找到文件說明,目前個人網搜再加上一些嘗試之後,最終只能如此了,就是輸入以下的指令:
gcloud compute ssh root@instanceName --zone zoneName
其中instanceName(執行個體名稱)和zoneName(區域名稱)可在你的Google Cloud專案的資訊主頁裡找到「運算」區塊,裡面會有「1個執行個體」的標注。點選之後就可進入你的執行個體主控頁面,最下方有個小表格,可以看到「名稱」、「區域」等欄位的資料。就依這兩個欄位資料照實填就好了。
區域其實就是你的機房位置,當初在建立執行個體時你就可以選擇,台灣機房的話就選asia-east1-a、asia-east1-b、asia-east1-c其中一個。
如果順利的話,電腦會另開一個SSH Shell視窗,並在你的電腦的使用者資料夾下產生一個「.ssh」的資料夾存放金鑰。產生金鑰過程當中會要求你輸入密碼保護,如果你的FTP軟體不支援密碼功能,那麼這裡只能直接按enter也就是不用密碼保護了。
在成功產生root帳號的金鑰之後接著就是設定FTP的問題了。
設定時「主機」就是你執行個體的外部IP。「協定」要選擇「SFTP」,登入型式選擇「Key file」,使用者「root」,然後「Key file」則瀏覽到你電腦資料夾中你的帳號名稱之下的「.ssh」,找到金鑰檔即可。
接著就可以開始上傳任何資料了。使用root權限登入其實不是一個很安全的方法,不過目前為止網路爬文還找不到其他方法可以順利上傳資料。(也求高人來指點了!)
在你開始FTP上傳資料之後,馬上就可以體驗到Google台灣機房的飛快速度了!真的,以前上傳大量資料到網站上真的是非常耗時而頭大的事,現在則是變得輕鬆而愉快了。
在架好網站之後,如何設定DNS把你的網址轉到Google Cloud Platform上的執行個體,會再另外專文介紹。

沒有留言:

張貼留言