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 就不是內網無法直接溝通,需再多做其他設定才能連線到彼此。
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 都蠻類似的,等等都會介紹和比較一下。
Compute Engine 是託管在 Google 雲端上基礎架構即服務 (IaaS) 產品,其他的稱呼還有 compute engine instance 、 virtual machine instance 、 VM 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 也有提供相應的服務來面對災難發生時的處理。
曾經在使用 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除了以上講解,這兩個還有什麼不同呢 ? 接下來再多做一些探討。
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 主要使用的地方。
ECS 很常拿來與 Kubernetes 比較,而 2017 aws 又進一步宣佈了 Amazon Elastic Container Service for Kubernetes(EKS),使 aws 平台可以託管 k8s 服務。EKS 服務可以省去安裝以及操作自己的 Kubernetes 叢集的時間,輕鬆的在 AWS 上執行 Kubernetes;進一步地,可使用 Fargate 模式在 EKS 上,可連 node 機器都不用管理。