Cloud NAT 全稱是 Cloud Network Address Translation,是 Google Cloud 代管的 IP 轉譯服務,可在不公開 IP 位址的情況下,讓 GCP VM 或 GKE 內的 Pod 可以高效的連接上「外部網路 Internet」,而外部資源無法直接存取 Cloud NAT gateway 後方的資源,維持獨立性與安全性。對應其他的雲端服務是 :

  • Amazon Web Services (AWS) : NAT gateways
  • Microsoft Azure : Azure NAT Gateway

Cloud NAT 是以 Software-defined Networking 服務,中間不存在 proxy instance ,故性能方面比傳統 NAT 好上不少。除了 VM、GKE 之外,也可使用在 Cloud Run、Cloud Functions、App Engine 等服務。

Continue reading

Cloud DNS 是 Google 提供的代管式的全球 Domain Name System(網域名稱系統服務),為一個分布式的分層資料庫(hierarchical distributed database) 用於存儲 IP addresses 和 Domain Name 的對應關係,還可以建立 DNS Zone 並在其下管理和創建 Record 。對應其他的雲端服務是 :

  • Amazon Web Services (AWS) : Amazon Route 53
  • Microsoft Azure : Azure DNS

Cloud DNS 是提供代管功能而不是註冊,而代管的好處是有一個「共同管理維護」的介面 ; 還能「基於地理位置」將流量轉到最接近的服務器從而提高性能與速度 ; 結合「 GCP 雲端安全服務」保護應用程式免於如 DDoS 攻擊。 最後比較特別的是 Google 的 Cloud DNS 服務號稱是 100% SLA 服務保證絕對不會中斷, Google 對其 DNS 服務設計非常的有信心。

Continue reading

CDN 全名為 Content Delivery Network,是一種透過分散在不同地區的 server,用離使用者最近的伺服器來傳送快取內容。而 Cloud CDN,就是借助 Google 分佈在全球各地的網路節點,將內容以快取(Cache)形式預先儲存,以達到最快速的內容交付。對應其他的雲端服務是 :

  • Amazon Web Services (AWS) : Amazon CloudFront
  • Microsoft Azure : Azure CDN

Cloud CDN 會需要與 GCP-Load-Balancer 搭配使用,故建議可以先熟習 GCP 負載平衡器的基本用法和觀念。

Continue reading

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

Author's picture

李昀陽 YunYang Lee

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

Software Engineer

Taiwan