Cloud Load Balancing 是 GCP 透過平均分發流量到多個 server ,以防止單一伺服器的過載從而減少系統故障的風險的產品,對應其他的雲端服務是 :

  • Amazon Web Services (AWS) : Elastic Load Balancing
  • Microsoft Azure : Azure Load Balancer

因為只需透過配置單個對外 IP 地址和憑證,就可讓負載平衡器的內部的管理的所有 VM 被外網存取,故從購買 External IP 的角度來說 Load Balancing 也可算是一種降低維運成本的方式。

目前從 GCP console 上由流量類型劃分成了「 HTTP(S) 」和 「 TCP/UDP 」兩大類 Load Balancing ,然後在依照細部應用場景還有分成 「Global/Regional」 和 「Internal/External」 等等各種組合,總體設定蠻精細的,可以對應不同的場合需求。

Continue reading

Cloud 是最能展現自動伸縮擴展服務好處的平台,而 GCP 的 Autoscaling Groups of Instances 代表產品是 Managed Instance Groups (簡稱 MIGs) ,雖然名稱有一點點不太直覺。 GCP 會根據自訂義的 Autoscaling Policy 來自動添加或刪除 VMs ,這些自動縮放而產生的 VMs 會有一個群組來管體,就是 MIG。對應其他的雲端服務是 :

  • Amazon Web Services (AWS) : Auto Scaling groups
  • Microsoft Azure : Virtual Machine Scale Set

MIGs 的 Autoscaling Policy 再詳細說一些,是能夠基於 Application 的 CPU/Memory 使用率、網路流量等等設定,自動增加或減少 VM,可根據業務需求或突發流量的場景,靈活調整資源數量從而保證高性能成本彈性

Continue reading

通常在我們在 GCP 提到的防火牆,都是指最常用的 Firewall-Rules 防火牆規則 ,只能應用在給定的 Project 和指定的 VPC 上,其可以讓資源管理者保護其 VPC 內服務的資料,不會收到未經授權的訪問或者意外流出資料,從而提高安全性和隱私性。對應其他的雲端服務是 :

  • Amazon Web Services (AWS) : Security Groups
  • Microsoft Azure : Network security groups

GCP 防火牆其實是一個蠻大的類別,產品全稱是 Cloud Next Generation Firewall 簡稱 Cloud NGFW,而 Firewall-Rules 隸屬於其中的 Cloud NGFW Essentials 。如果想要把 Firewall-Rules 應用到 Organization 下的其他 Project 或者其他 VPC,則要使用 Firewall-Policies,本篇重點介紹 Firewall-Rules。

Continue reading

Network Tag 在 GCP 中,只是一個簡單的字符串標示並不會建立出雲端資源,會簡稱為 Tag 並可選擇附加到如 VM 或 Instance template 上,其設計想法上是可以由這個標示,更有效地控制和管理 VM 的網路防火牆安全設定。 Network Tag 算是 GCP 比較特別的設計,其他雲端似乎沒有比較類似的對應,由於不是一個獨立的 cloud resource ,所以是無法單獨建立 Tag 的,但對於其關聯的 GCP Firewall Rules ,對應其他的雲端服務是 :

  • Amazon Web Services (AWS) : Security Groups
  • Microsoft Azure : Network security groups

特別要注意的事情是在 GCP 中,Tag 和 Label 是不一樣的東西。通常 GCP 提到 tag 都是指 network tag 這個網路安全相關防火牆設定 ; 而 Label 是拿來作預算及資源管理使用。

Continue reading

GCP IP Address 經常是分配給 GCP VM Instance、GCP Load-Balancer、Cloud NAT 使用,讓他們可以和 GCP 其他雲端資源,或者是外部公共網路上的系統通訊。IP Address 種類劃分也蠻多的,會使用以下種類來描述不同的類型:

  • Internal IP Address <=> External IP Address
  • Private IP Address <=> Public IP Address
  • Ephemeral IP Address <=> Static IP Address
  • Regional IP Address <=> Global IP Address

在使用 IP Address 也常發生一些使用上的疏忽,例如一直 reserve IP 卻沒有使用它,因為 IP 算是稀有資源,如果有保留固定 IP ,就算沒有使用還是會持續計費的,而且會更貴!

Continue reading

Virtual Private Cloud 虛擬私有雲網路,簡寫為 VPC、網路、VPC Network、Network 等等都可以,是 Google 使用 Andromeda(/ænˈdrɑː.mə.də/) 網路虛擬化技術實現的一個雲端資源,提供如 GCP-VM、GKE、Serverless Workloads 或 App Engine 等等雲端服務的「網路功能」,能讓 User 高自由度的建立管理和優化網路架構。對應其他的雲端服務是 :

  • Amazon Web Services (AWS) : Amazon VPC
  • Microsoft Azure : Azure Virtual Network

GCP-VPC 和 AWS-VPC 架構上蠻不一樣的,GCP-VPC 是全球性的,只要在同一個 GCP-VPC 內,就算不同 Region 也能使用 Internal IP ; 但如果是不同的 GCP-VPC 就算在同一個 Region 下也不能互相通訊。而 AWS-VPC 是針對 Region 來設計的,故 AWS-VPC 只要跨 Region 就不是內網無法直接溝通,需再多做其他設定才能連線到彼此。

Continue reading

Instance Template 是一個用於定義 GCP VM 配置的模板,其中包括如 machine type、bootdisk、startup script 等等 VM 的屬性,經常和 Managed Instance Groups 結合使用來自動創建 VM 。對應其他的雲端服務是 :

  • Amazon Web Services (AWS) : Launch Template
  • Microsoft Azure : 沒有直接類似的,在 Virtual Machine Scale Sets 內直接設定 VM 所需參數

概念上就是做好 VM 的模板,讓 VM 啟動完成後直接就可以達到我們想要的狀態,從這個方向出發的話 Instance Template 其實和 Startup Script、Custom Image 都蠻類似的,等等都會介紹和比較一下。

Continue reading

Compute Engine 是託管在 Google 雲端上基礎架構即服務 (IaaS) 產品,其他的稱呼還有 compute engine instancevirtual machine instanceVM instance。 對應其他的雲端服務是 :

  • Amazon Web Services (AWS) : EC2
  • Microsoft Azure : Virtual Machine

啟動前可以訂製自己需要的 Machine Type ,例如 CPU、memory、disk 等等;再來 Boot disk OS 也可自行選擇 Linux 、 Windows 等等操作系統;針對容器虛擬化,可能使用專門優化來運行容器的 Container-Optimized OS (COS) image 在虛擬機上啟動容器服務。最後關於備份資料,GCP 也有提供相應的服務來面對災難發生時的處理。

Continue reading

曾經在使用 gcloud CLI 時,有遇到自己錯誤理解的部分,是關於 gcloud 管理的兩組 credentials :

  • gcloud auth application-default login: 是用於應用程式的 credential ,此 command 會管理 GCP Client Libraries 等套件會用到的 credential 稱為 Application Default Credentials (簡稱ADC)
  • gcloud auth login: 此 command 只會授權 gcloud CLI 工具權限,讓它可以使用 user credential 訪問 GCP 雲端資源,同時把當前的 account activate

除了以上講解,這兩個還有什麼不同呢 ? 接下來再多做一些探討。

Continue reading

gcloud CLI 全稱是 Google Cloud Command Line Interface ,是創建和管理 GCP 雲端資源的「命令行」 工具,還捆綁了專用的子工具例如 BigQuery(bq CLI)、 Kubernetes 集群(kubectl CLI) 可配合使用,是隸屬在 Cloud SDK 內的。對應其他的雲端服務是 :

  • Amazon Web Services (AWS) : AWS CLI
  • Microsoft Azure : Azure CLI

雖然可以使用 gcloud 來撰寫 script 自動化執行許多常見的任務,但實務上更多是會用例如 Terraform 等 IaC 工具來部屬和管理雲端資源, gcloud 現在基本上用最多是在初始化帳戶如 :管理身份驗證(manage authentication),或是自定義本地配置(customize local configuration),這些如權限管理、Project 設定、Billing 有關的功能會是 gcloud CLI 主要使用的地方。

Continue reading

Author's picture

李昀陽 YunYang Lee

Welcome to my Tech Note. You can read some of the chapters below.

Software Engineer

Taiwan