最新資訊
科技新聞

雲端整合專家,提供全方位雲端顧問服務

科技趨勢

使用 GCP 建立簡單的靜態網站

大家好,這次我們要來使用 GCP 上的 Cloud Storage、Load Balancer 以及 Cloud CDN 來架設一個簡單的靜態網站,後續會再搭配上 Gitlab 來完成 CICD 自動化更新的功能。

工具介紹

Cloud CDN

Google Cloud CDN(Content Delivery Network)是 GCP 中提供高性能、低延遲和安全的內容交付解決方案。主要是用於加速網站和應用程序的內容傳遞,以提供更好的用戶體驗。

以下是 Google Cloud CDN 的主要特點和功能:

  1. 全球分發: Google Cloud CDN 有數個全球節點,可以將內容快速傳遞到全球各地的用戶。這意味著用戶可以從最近的節點獲取內容,降低延遲,提高速度。
  2. 安全性: Google Cloud CDN 提供安全性功能,如 DDoS 攻擊防護,SSL/TLS 加密和 Web Application Firewall(WAF)支援,以保護應用程序和內容免受各種安全威脅。
  3. 高性能: CDN 通過緩存靜態和動態內容,以及使用 Google 的全球網絡基礎設施,提供卓越的性能。這有助於減少伺服器負載,加快頁面加載速度,並提供一致的用戶體驗。
  4. 動態內容加速: 除了靜態內容,Google Cloud CDN 還可以加速動態內容的傳遞。以便我們能在提供動態生成內容的同時又保持高性能和低延遲。
  5. SSL/TLS 加密支援: CDN 可以提供 SSL/TLS 加密,確保敏感數據在傳輸過程中的安全性。Google Cloud CDN 還支援 HTTPS,使您可以為您的網站和應用程序提供安全的連接。
  6. 日誌和監控: CDN 提供詳細的日誌和監控功能,以幫助您了解內容交付的性能和用法。您可以使用這些數據來進行分析、優化和故障排除。

Cloud Storage

Google Cloud Storage(GCS)是 GCP 提供的一個高度可擴展、耐用且安全的物件儲存服務。為開發人員和企業提供一個靈活且可靠的儲存解決方案,以儲存和檢索大量的數據,並支援多種用途,包括數據備份、媒體存儲、數據分析和網站托管等。

以下是 Google Cloud Storage 的主要特點和功能:

  1. 全球可用性: GCS 是一個全球性的服務,擁有多個地理位置的數據中心。這意味著數據可以存儲在不同的地理位置,以實現低延遲和高可用性。
  2. 耐用性: GCS 提供 99.999999999% 的數據耐用性,保證了數據的安全且不容易丟失。此外它還能透過多副本存儲和自動修復功能,來確保數據的完整性和可用性。
  3. 彈性存儲類別: GCS 提供多種存儲類別,包括標準存儲(Standard Storage)和長期存儲(Nearline、Coldline),以滿足不同數據訪問模式和預算需求。可以根據需要選擇最適合的存儲類別。
  4. 安全性: GCS 提供多層次的安全性措施,包括存儲數據時的自動加密、用戶訪問控制、身份驗證和授權機制,以確保數據的機密性和完整性。
  5. 多用途: GCS 可以存儲各種數據類型,包括文本、圖像、音頻、視頻和其他二進制數據。適用於各種應用程序,從備份和存檔到大數據分析和媒體存儲。
  6. 集成性: GCS 與其他 GCP 服務(如 Google Compute Engine、Google Kubernetes Engine 和 BigQuery)緊密集成,使您能夠輕鬆在各種應用程序中使用 GCS。
  7. 監控和分析: GCS 提供詳細的監控和分析工具,以幫助您了解存儲使用情況、性能和訪問模式。您可以使用這些數據來優化數據管理和控制成本。
  8. 成本效益: GCS 提供多種價格計劃,包括按使用量計費,使您能夠根據實際使用情況進行付費,從而降低成本。

Google Cloud Load Balancer

Google Cloud Load Balancer 是 Google Cloud Platform 的一個托管式負載均衡服務,用於實現高可用性、高性能和可擴展性的應用程序部署。它可以自動分發流量到應用程序的多個實例,以確保流量平衡,降低延遲,提高可靠性,並優化應用程序的效能。以下是 Google Cloud Load Balancer 的主要特點和功能:

  1. 全球負載均衡: Google Cloud Load Balancer 支援全球負載均衡,使您能夠將流量分發到世界各地的多個地理位置,以確保低延遲和高可用性。它有兩種主要負載均衡器類型:
  2. HTTP(S) 負載均衡器: 用於 HTTP 和 HTTPS 流量的負載均衡,可實現 SSL 終止、URL 映射、重定向等高級功能。
  3. TCP/UDP 負載均衡器: 用於 TCP 和 UDP 流量的負載均衡,適用於非 HTTP 流量,如 DNS 和 VPN。
  4. 自動擴展:Load Balancer 可與 GCP 的自動擴展功能集成,以根據流量需求自動調整應用程序實例數量。這有助於應對流量的變化,並確保高性能。
  5. 多協議支援: 支援多種協議,包括 HTTP、HTTPS、TCP 和 UDP。因此可以透過 Load Balancer 來處理各種應用程序的流量。
  6. SSL/TLS 終止: HTTP(S) 負載均衡器支援 SSL/TLS 終止,以減輕後端服務器的計算負擔,同時提供數據的安全性。
  7. 全面的監控和日誌記錄: 提供詳細的監控和日誌記錄功能,可用於了解流量模式、健康狀態、錯誤和性能問題。
  8. 集成性: Google Cloud Load Balancer 可以輕鬆集成到 Google Cloud Platform 中的其他服務中,如 Google Kubernetes Engine(GKE)、Google Compute Engine(GCE)和 Cloud Functions,以實現多種應用程序部署需求。

架設簡單的靜態網站

Step 1 建立 Google Cloud Storage Bucket

首先我們先到 Cloud Storage 的介面

接著建立我們後續要使用的 Bucket

在設定 Bucket 中也分為多個步驟,第一步就是為我們的 Bucket 命名

第二步則是根據我們的需要,去選擇 Bucket 實際存儲的位置

根據需求,可以設置多區域、雙區域以及單區域,在這裡單純做一個簡單的測試,所以我們選擇單區域。

第三步,我們要選擇資料存儲的級別,這些級別是根據資料進出的頻率來做分類的,在這裡我們選擇 Standard 的級別

第四步我們要來選擇 Bucket 內物件的存取權限,主要分為統一與精細,一般來說沒有特別的需求都會使用統一的模式

最後是針對物件的加密,因為本次分享是簡單的 Demo 所以不額外作加密

點選建立之後,會彈出以下資訊,後續等我們上傳物件到 Bucket 中之後會再重新設置權限,這裡就先選擇不公開 Bucket

建好之後我們就能在 Console 端看到我們的 Bucket 了

Step 2 設置 Bucket

接下來進到 Bucket 內,我們開始上傳物件進去,在這裡我們簡單的傳一張蓋亞的圖片

傳好後能看到物件,以及相關的資訊,包括物件的存儲層級,是否公開等等

接下來再來對 Bucket 的權限做設置

首先進到權限的介面,並將前面的限制移除掉


移除掉之後,我們才能進一步的做配置,將剛剛的圖片公開至網路上

將整個 Bucket 公開後,我們回到原本的介面,能看到原本不公開的圖片變成公開的狀態了,透過它帶有的 URL 我們就能在網頁上訪問了

到這一步已經算一個簡單且基本的靜態網頁了,如果我們需要更近一步的流量控制、過濾或是 CDN 的功能,就必須再搭配上 Load Balancer 來做使用。

Step 3 Load Balancer 架設

在這一步驟中,我們會建立一個簡單的 HTTP Load Balancer 搭配 CDN 來做使用。

首先我們先來到 Load Balancer 的介面,並點選建立

針對不同的協議有三種不同類型的 Load Balancer,這邊我們選擇使用 HTTP 類型的

接著因為我們是要對外服務的,所以選擇從網際網路傳送至 VM 的選項

進到細節設置的部分,我們先將 Load Balancer 命名,並對我們的前端做設置,前端的部分主要是協定的選擇,有分為 HTTP 與 HTTPS 兩種,透過 HTTP 的方式我們能很快得建出簡單的前端,但較不安全。

所以一般來說我們都會透過 HTTPS 的方式來建立,但 HTTPS 會需要額外的選擇 SSL 憑證來做管理,憑證方面可以選擇 Google 代管或自行上傳,在這裡我們就先直接用我們公司內部的憑證。

接下來就是對後端的設置,先選擇建立後端值區

為後端命名,並選擇我們剛剛建立好的 Bucket 作為目標,最後 CDN 的部分可以直接在這裡做設置,也可以後續在外面建立並連接,這邊直接在這裡做設置,設置的內容主要是調整 Cache 保存的時間,以及 Cache 的物件種類

完成設定後可以來到最後的介面能看到所有相關的設定

建立完成,透過 Console 就能看到 Load Balancer

我們還能透過旁邊的 Cloud CDN 看到剛剛一起建立的 CDN

最後進到 Load Balancer 的介面查看一下 IP

透過 IP 來訪問一下網站

或是透過我們剛剛使用的憑證申請的域名(這部分需要自行操作)

多訪問幾次就能看到 CDN 開始有運作了