部落格 從Google Cloud Platform 遷移至 Digitalocean 筆記

但從去年起,Google Cloud Platform 就不是真正的免費了。開始有固定薪水後想省時間精力,於是就動手把部落格搬遷到其他 VPS 了。

前言

部落格遷移至Google Cloud Platform 已經一段時間了,因為是免費最低階的機器,速度雖慢也這樣將就。但從去年起,Google Cloud Platform 就不是真正的免費了,磁碟快照要收錢,對外獨立 IP 也開始要額外計算。既然不是真正的免費,那幹嘛忍受回應緩慢的機器速度?配備點一點,多收的錢不一定划算,許多成本是來自於方便擴充的先進架構設計,但是個人部落格用不到。開始有固定薪水後想省時間精力,於是就動手把部落格搬遷到其他 VPS 了。

人生、部落格、未來寫文章的方向

過去,因著對資訊領域的興趣,從伺服器架設、Wordpress 到 Ghost、HTML與CSS、Java Script的修改都自己來,因此部落格創立之初,每個能夠調整的細節都鑽研了一遍,反覆 Debug 的日子數也數不清,

  • Linux Kernel 核心參數怎樣調整對伺服器反應速度有利?
  • 新的 Google TCP 演算法 BBR 怎麼開啟?
  • Nginx 的設定檔每個參數有什麼意義?
  • PHP-fpm 設定檔要怎樣設網站後台操作速度比較快?
  • Pagespeed 怎麼調整可以壓縮網頁?如何更改JS與 CSS 順序讓網頁載入速度更快?
  • SSL 加密在 nginx 中如何設定OCSP Stapling?
  • Brotli, HTTP/2 啟用效果如何?
  • ……

另外,國外在展示迴廊的佈景主題都很有風格,但是套用到中文總有不搭調突兀的地方,常需要自己動手修改,於是又產生了額外的維護成本:原作者一旦配合 Ghost 平台更新,還要花時間檢視佈景主題原始碼。

我並不後悔自己過去花時間去摸索這些,工匠熟悉技藝,總是從最基礎的東西做起,但是人生到了另外一個階段,不再有無窮的時間,必須思索最核心、優先事項是什麼。如果說部落格最初的定位是保留學生的青澀,迷茫中的摸索,未來我希望,運用知識盡可能地減少干擾、維護軟硬體的時間成本,更專注在內容的經營。

選擇DigitalOcean 的考量

  1. 有一鍵 Ghost Blog 安裝腳本,VPS 開機後自動架設,DigitalOcean 的 Ghost Droplets 配置是 Ubuntu + Nginx
  2. 還算經濟實惠的價格,每月 5 美金的低階主機也配有 SSD
  3. 以前有日本機房位址,不過我沒搶到
  4. 有很多教學文章可以閱讀,支援度還不錯。

步驟

舊 Ghost 網站備份

要轉移需要兩個地方:

  • Ghost 匯出文章 JSON 檔
  • Ghost 存放所有圖片檔案的資料夾,/var/www/ghost/content

DigitalOcean 前置作業

  1. 創建DigitalOcean 帳號,登錄支付方式
  2. 點選 Create, 新增 Droplets
  3. 搜尋 Ghost,有現成的方案可以選取

要注意的是,一開始頁面預設不會顯示最低階每月五美金的方案,要手動拉到最左邊,另外有額外的每月一美金自動快照備份選項

VPS 的地點我選擇了新加坡,理論上離台灣的延遲最小,如果有日本的話更好,不過目前沒得選

Authentication 這邊是認證方式,建議選擇 SSH 金鑰的方式,生成方式就請自行搜尋了

接下來到最下面的 Create Droplets 就會開主機了!

登入主機

在後台可以看到剛啟動主機的相關資訊

點選 Get Started 可以看到說明如何登入

依照說明登入以後,主機便會自動執行安裝腳本,再依照要求填入相關資訊,如果有需要申請 Let’s Encrypt 後面也會自動申請。

重新指向 DNS 到新主機

我是採用 Cloudflare,所以就登入到 Cloudflare 後台修改,如果有需要採用 Cloudflare 的 Origin ca certificate,請記得手動修改主機的 nginx 設定檔

如果有採用 Cloudflare CDN cache 的,請先開啟 Development Mode 會比較好除錯。

上傳備份檔案到新主機

Content 資料夾可以直接覆蓋,然後再到 Ghost Lab 後台 Import 先前抓下來的文章備份檔,全部就遷移完成了!

結語

因為採取研究過最節省時間精力的做法,整個過程花了不到一個上午的時間就搬遷完成,讓我可以回來繼續專注在文章寫作本身。如果依照過去的習慣,每個細節都自己調校,恐怕會花一天的時間。希望未來在繁忙的人生中,部落格的寫作能夠繼續維持下去。