跳至主要內容
ESC
Study Jam:雲端基礎實作 — 第 4/10 篇

在 GCP 上建立網站

在 GCP 上建立網站

課程概述

想在 GCP 上架網站,方法不只一種。從單純的靜態網頁,到比較複雜的動態應用,Google Cloud 都接得住。這堂課我們挑三種最常見的做法來比一比:Cloud Storage 靜態託管、Cloud Run 容器化部署,還有 Firebase Hosting 全端方案。

網站部署路徑:同一個網站需求依靜態檔案或伺服器端邏輯、獨立託管或整合式應用服務,分流到 Cloud Storage、Cloud Run、Firebase Hosting 或 App Engine,並共用網域與 TLS 保護

先看網站形狀再選平台:純 HTML/CSS/JS 可走物件儲存與 CDN;任意後端容器走 Cloud Run; 需要 Auth、Firestore 等整合體驗時考慮 Firebase Hosting;既有框架與 PaaS 慣例則可評估 App Engine。 自訂網域與 HTTPS 是四條路共同的入口層。

你將學到

  • 使用 Cloud Storage 託管靜態網站
  • 透過 Cloud Run 部署容器化 Web 應用
  • 設定自訂網域與 SSL 憑證
  • 理解不同部署方案的成本與效能差異

核心概念

網站部署方案比較

方案適用類型自動擴展自訂網域免費額度
Cloud Storage純靜態網站自動需搭配 LB5GB 儲存
Cloud Run動態應用/API0→N 自動內建支援200 萬次請求/月
Firebase Hosting全端應用自動內建支援10GB 傳輸/月
App Engine傳統 Web App自動內建支援28 小時/天
先分靜態與動態,再看是否需要 Firebase 整合、任意容器或受管 Runtime。自訂網域與 HTTPS 是入口需求,不能單獨決定後端平台。

Cloud Storage 靜態網站

# 建立 bucket(名稱需與網域一致)
gcloud storage buckets create gs://www.example.com --location=us-central1

# 上傳網站檔案
gcloud storage cp -r ./website/* gs://www.example.com/

# 設定網站配置
gcloud storage buckets update gs://www.example.com \
  --web-main-page-suffix=index.html \
  --web-error-page=404.html

# 設定公開存取
gcloud storage buckets add-iam-policy-binding gs://www.example.com \
  --member=allUsers --role=roles/storage.objectViewer
靜態網站 HTTPS 請求從瀏覽器經 Cloud DNS、HTTPS 負載平衡器與受管憑證抵達 Cloud CDN,快取未命中時才回源 Cloud Storage 並填入快取

自訂網域的 TLS 在 HTTPS 負載平衡器終止;Cloud CDN 命中時直接從邊緣回應,未命中才向 Bucket 取回物件並填入快取。公開的是靜態物件讀取權,不應連帶公開 Bucket 的管理權限。

Cloud Run 部署流程

  1. 撰寫 Dockerfile
  2. 建立 Artifact Registry 儲存庫:gcloud artifacts repositories create REPO --repository-format=docker --location=REGION
  3. 使用 Cloud Build 建構映像:gcloud builds submit --tag REGION-docker.pkg.dev/PROJECT/REPO/app
  4. 部署到 Cloud Run:gcloud run deploy app --image REGION-docker.pkg.dev/PROJECT/REPO/app
Cloud Run 安全部署流程:不可變映像先部署成零流量 Revision,通過 Smoke Test 後以 v1 90%、v2 10% 金絲雀分流,依健康指標升至 v2 100% 或回滾 v1 100%

新映像會建立新的 Revision,不會覆寫舊版。先用零流量 Revision 做 Smoke Test,再逐步增加 v2 流量;指標惡化時只需把流量切回 v1,不必在事故當下重新建置映像。

實作重點

  • 純靜態網站就用 Cloud Storage + Cloud CDN,成本最低
  • 有伺服器端邏輯要跑就上 Cloud Run,什麼語言的容器都吃得下
  • Firebase Hosting 適合搭配 Firebase 全家桶(Auth、Firestore)
  • 記得設定 HTTPS,Cloud Run 和 Firebase Hosting 預設提供 SSL

Skill Badge 指引

Lab 連結Build a Website on Google Cloud — 完成此 lab 可獲得 Skill Badge

延伸學習

Study Jam:雲端基礎實作 — 4/10 完成 查看系列全覽 →

留言討論

徽章解鎖!