再開 VPS 生活 – 搬家到 Linode

除了幾年前在當 intern 時,因為沒有環境可以架站,所以用了幾年的 virtual private server (VPS),後來開始工作,家裡有網路後,又在家裡弄了台主機。

前幾年去參加 MOPCON 時,知道了雲高這個機房在高雄的公司,雖然很想支持台灣在地企業,但自己用不到那個量,價格也稍高了些(300 NTD/month)。後來 Amazon 推出 Lightsail 攪亂一池 VPS 春水後,又再度升起想搬家的念頭,而臨門一腳的是看到一位醫學資料處理高手 Gbanyan 的轉 GCP 心得,便開始 survey 一些可行的方案。

選擇

Service Price Memory CPU SSD Network
Amazon Lightsail $5 512 MB 1 core 20 GB 1 TB
Scaleway €2.99 2 GB 2 cores 50 GB Unmetered
Vultr $2.5 512 MB 1 core 20 GB 500 GB
Linode $5 1 GB 1 core 20 GB 1 TB

Google Cloud Platform 的價錢計算比較複雜一些,除了 CPU 和 memory 是定額的之外,SSD, network 都是以量計價,如果是以上列最差的規格來算,當然是不划算的,不過以我的用量,加上 GCP 最近更加碼推出了 Always Free 的方案,算起來就是最便宜的了(f1-micro, 3 GB SSD, 5 GB network 大概差不多 1 USD/month),不過這是在我已經搬完家的事了。

我最大的考量是網路的速度,理論上在台灣有機房的 GCP 應該是最快的,次之就是考慮東京有機房的 (ping 值約 45 ms),例如 Vultr, Linode,再來美國西岸矽谷或洛杉磯 (ping 值約 140 ms),新加坡雖然平均快一些 (120 ms 上下),但總覺得不太穩定,沒什麼信心。

一些公司有提供 speedtest 可以測試:

綜合考量下,我選的是 Linode 東京機房 (Tokyo 2, Japan)

安裝

  1. 開 Tokyo 2 機器
  2. 裝 OS,我習慣用的是 Ubuntu 16.04 LTS
  3. 設定 FQDN
    • 除了 domain name -> IP 正解外,也可以把 IP -> domain name 的反解設上,變成 FQDN,設定在 Remote Access » Reverse DNS 裡。
  4. 開新 user、設定 SSH
  5. 裝 LAMP
  6. 設定 Lets encrypt、設定 HTTPS
  7. 設定 HTTP2
    • 雖然 Ubuntu 16.04 LTS 內的 Apache2 是 2.4.18, 理論上有支援 HTTP2 (只要 > 2.4.17 就有內建),但目前還被歸在 experimental,所以沒有被包進 binary package 裡,有兩個方法可以啟用,一個是拿 source 來重編,另一個是用個人包好的 PPA, 例如 Ondřej Surý 的,第二個方法比較簡單一些,也有不少人採用,應該是沒什麼問題才是:
sudo add-apt-repository ppa:ondrej/apache2
sudo apt-get update
sudo apt-get install apache2
sudo a2enmod http2

<VirtualHost> conf 裡加上

Protocols h2 http/1.1

可以用線上驗證工具 (例如 https://tools.keycdn.com/http2-test) 測試是不是已開啟 HTTP/2 支援。

Blog 搬家的部份沒有什麼太大的問題,把 WordPress 的檔案 copy 過去,mysql 資料 import 進去,DNS 設好就 OK 了。

目前用了一個多禮拜來,覺得還 OK,速度雖然沒有到秒開的狀態,但還是比原本放在家裡的 NAS 上很有感的升級,有一些小細節可能還要微調,不過大致上是這樣了。