Google Cloud Platform f1-micro

使用 Google Cloud Platform 雲端免費主機 f1-micro 詳解

Written by

Photo by Solen Feyissa on Unsplash

Google 的 Google Cloud Platform (GCP) 的免費主機方案 f1-mirco 方案,在免費期間或試用期結束後,只要不超過指定用量限制,都可以永久免費使用 GCP 指定的服務項目。

利用這個免費方案架設小型個人部落格,只要流量控制好,若不花錢可能不容易,但可以花費很少的支出就可以用到 GCP 這個高富帥產品。

另外,免費方案雖然不可以使用台灣的節點,選擇美西的節點 (us-west1-a),與其他的 VPS 託管商機房比較,google 的網路速度還是最快的,可參考下圖測試。

GCP network MTR

既然 google 推出這麼好的方案,就要能看得到也能吃得到,試試折騰一台主機,一個月會花費多少網路費用。免費方案的規定如下圖:

Google Cloud Platform 免費方案

內容目錄:

  • 建立執行個體
  • 開啟 TCP BBR
  • 設置 SWAP 交換分區
  • 安裝 Nginx + php7.0 + MySQL5.6
  • 安裝 WordPress

每月一個 f1-mirco 執行個體 (1 個共用 vCPU 0.6 GB 記憶體)、30GB 硬碟、5GB 快照備份空間、1GB 網路流量。

以這樣的規格來看,不要使用爆表而被強迫升級的話,有幾點要注意

  • 不能安裝控制面板的程序
  • 選擇使用 CentOS 6 系統
  • 設置 SWAP 交換分區
  • 不能使用快照備份空間

使用教學 (以 Google Compute Engine 來做說明):

建立執行個體

  1. 區域:us-west1-a (美西結點)
  2. 機器類型:微型 (1 個共用 vCPU 0.6G)
  3. 開機磁碟:CentOS 6 / 20 GB 標準永久磁碟
  4. 身分及 API 存取權:允許所有 Cloud API 的完整存取權
  5. 防火牆:允許 HTTP / HTTPS 流量都打勾

點取「建立」,等待幾分鐘製作系統。

建立好 VM 後,別忘了去「VPC 網路」選項,改為靜態 IP。

GCP 防火牆設置:打開 21 端口

好了之後,點取 SSH (再瀏覽器中直接開啟),因為要方便使用,直接修改 sshd_config 文件,用 root 登入。

sudo su - # 更改為 root 權限
passwd root # 設置 root 密碼

修改權限以 root 登入

vi /etc/ssh/sshd_config
PermitRootLogin yes # 改為 yes
PasswordAuthentication yes # 改為 yes
service sshd restart # 重啟 sshd

修改權限後,就可以用 PuTTY 或 Xshell 5 登入你的主機。

開啟 TCP BBR

這是 google 提出的 tcp 擁塞控制算法,既然是用 google 自家的產品,當然就開啟 BBR。

詳細開啟的方法,可以參考我這一篇 – 開啟 TCP BBR 擁塞控制算法為 VPS 網路加速

https://yungke.me/tcp-bbr-vps-network-speed/

設置 SWAP 交換分區

SWAP 交換分區對小記憶體的主機很重要,安裝系統能不能順利完成,以後使用當中可以弭補一下記憶體的不足。

可以參考我之前寫的 – 如何在 Vultr 中添加 SWAP 交換分區

https://yungke.me/how-vultr-swap

SWAP 開個 512MB 就夠了,不需要太多,如果你連 512MB 都不夠用,就要考續升級到 1.7G 方案,就不要在 0.6G 方案中硬撐了。

安裝 Nginx + php7.0 + MySQL5.6

小記憶體的主機,建議安裝 Nginx 系統,Apache 在小記憶體主機中,效能不會很好;資料庫安裝 MySQL5.6 就好,若要用 MySQL5.7 或 MariaDB-10.1,都需要至少 1G 的記憶體主機。

建議使用 OneinStack 安裝包或 lnmp.org 安裝包,這兩個系統安裝包都可以在小記憶體主機中順利安裝。

我以 OneinStack 做說明:

Please input SSH port(Default: 22): 21234
Do you want to enable iptables? [y/n]: n
Do you want to install Web server? [y/n]: y
Please select Nginx server:
        1. Install Nginx
        2. Install Tengine
        3. Install OpenResty
        4. Do not install
Please input a number:(Default 1 press Enter) 1
Please select Apache server:
        1. Install Apache-2.4
        2. Install Apache-2.2
        3. Do not install
Please input a number:(Default 3 press Enter) 3
Please select tomcat server:
        1. Install Tomcat-8
        2. Install Tomcat-7
        3. Install Tomcat-6
        4. Do not install
Please input a number:(Default 4 press Enter) 4
Do you want to install Database? [y/n]: y
Please select a version of the Database:
         1. Install MySQL-5.7
         2. Install MySQL-5.6
         3. Install MySQL-5.5
         4. Install MariaDB-10.2
         5. Install MariaDB-10.1
         6. Install MariaDB-10.0
         7. Install MariaDB-5.5
         8. Install Percona-5.7
         9. Install Percona-5.6
        10. Install Percona-5.5
        11. Install AliSQL-5.6
Please input a number:(Default 2 press Enter) 2
Please input the root password of database: 12345
Please choose installation of the database:
        1. Install database from binary package.
        2. Install database from source package.
Please input a number:(Default 1 press Enter) 1
Do you want to install PHP? [y/n]: y
Please select a version of the PHP:
        1. Install php-5.3
        2. Install php-5.4
        3. Install php-5.5
        4. Install php-5.6
        5. Install php-7.0
        6. Install php-7.1
Please input a number:(Default 4 press Enter) 5
Do you want to install opcode cache of the PHP? [y/n]: y
Please select a opcode cache of the PHP:
        1. Install Zend OPcache
        3. Install APCU
Please input a number:(Default 1 press Enter) 1
Do you want to install ionCube? [y/n]: n
Do you want to install ImageMagick or GraphicsMagick? [y/n]: n
Do you want to install Pure-FTPd? [y/n]: y
Do you want to install phpMyAdmin? [y/n]: y
Do you want to install redis? [y/n]: n
Do you want to install memcached? [y/n]: n
Do you want to install HHVM? [y/n]: n

說明:

  • SSH port 22 端口改掉,1024 ~ 65535 之間的端口都可。
  • 不安裝 iptables,因為 GCP 已經有防火牆配置了。
  • 安裝 Nginx,不安裝 Apache、Tomcat
  • 安裝 MySQL-5.6
  • 安裝 opcode cache
  • 安裝 Pure-FTPd 及 phpMyAdmin
  • ionCube、ImageMagick、redis、memcached 都不要安裝,減少主機的記憶體負載。

最後 Enter 之後,就可以去喝杯咖啡,安裝過程 2.5H – 3H 之久,如圖:

GCP 主機的 CPU 負載

如果有修改 SSH 端口,在回到 GCP 控制台 → 防火牆,將修改的端口加進去。

安裝 WordPress

安裝好系統後,開好虛擬主機後及建立資料庫後,可以利用 ssh 登入,以指令快速安裝 WordPress。

指令:

cd /data/wwwroot/example.com/
wget http://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
mv wordpress/* .
rm -rf wordpress
rm -rf latest.tar.gz

修改文件權限:

chown -R www.www /data/wwwroot/example.com/

結語

在小記憶體主機的調整中,my.cnf 文件可以修改 max_connections 最大連接數為 100,減少 MySQL 吃掉太多的記憶體。

Nginx php-fpm 的優化也不能省略,也以節省 CPU 及 RAM 使用為目的,以我的設置為參考:

pm = dynamic
pm.max_children = 9
pm.start_servers = 6
pm.min_spare_servers = 4
pm.max_spare_servers = 9
pm.max_requests = 2048
pm.process_idle_timeout = 10s
request_terminate_timeout = 120
request_slowlog_timeout = 0

GCP f1-mirco 像這樣的配置,使用 WordPress 上,在後台寫文章或調整,都還是很順暢,安裝個 Performance Plugin 優化後,CPU 負載都不會太高。

以我這幾天測試下來,除了導入 xml 資料外會跳 502 外,安裝佈景、外掛及寫文章,都很正常,速度也不慢。以個人部落格來使用,流量也不多的話,一個月不會花到多少錢,就能用到 GCP VM 主機了。

探針:

GCP 0.6G f1-micro 探針

如果您有更好的建議,歡迎回覆,大家一起研究。

測試網站:muzike.xyz

使用 CSSIgniter 主題,Cache Enabler + Optimus + Heartbeat Control 外掛,關閉 admin-ajax.php


2020/03/04 補充:

現在 VPS 主機都便宜了,隨便一個主機方案都有 1G 的記憶體,資料庫不太需要去調整,都可以應付大部分的網站,所以現在已很少有小記憶體的調校文章。

早期的 VPS 貴森森,很多大神用 64MB 或 128MB 記憶體就可以架起一台 VPS 主機,資料庫的 my.cnf 文件就得調整,不然一下子記憶體就要爆了。

64MB VPS 上優化 MySQL

https://www.vpsee.com/2009/06/64mb-vps-optimize-mysql/

hosted by kinsta

〈使用 Google Cloud Platform 雲端免費主機 f1-micro 詳解〉的留言

  1. 1GB的上行网络流量,一下子就用完了

    1. 真要做站,用 f1-micro 還真不行。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Your Mastodon Instance