Experience GCP
昨天去參加 Google 第一次在台灣辦的活動 Google Cloud onBoard,看到很多讓人興奮的東西。
花一點時間玩了 GCP 的 Compute, Storage, Networking 部分,順便跟 AWS 比較。
VM - Compute
- Instance Type 可以自訂,最小有 一個共用 vCPU + 0.6GB
- 配上 10GB 的空間,每月約 $6.57 USD,持續使用會自動打折變成 $5.00
- 相當於 AWS EC2 的 t2.nano
- 也有類似 AWS 的 C, R, M, I 系列的 Instance Type,
- 最高等級有 32 core, 240G
詳細跟 AWS 的比較:Google Cloud Platform for AWS Professionals: Compute
VM - Storage
- VM Storage 有 SSD 和 Standard 兩種
- VM Storage 最大可以到 65,536 GB = 64 TB
- SSD Type:
- 64TB IOPS R/W: 15,000 / 15,000
- 持續總處理能力上限 (MB/秒): 240 / 240
- Storage 的大小只要到 500 GB, IOPS 就會到頂了: 15000
- Standard Type:
- 64TB IOPS R/W: 3000 / 15,000
- 持續總處理能力上限 (MB/秒): 180 / 120
- Storage 的 IOPS 會隨著空間大小而自動調整,沒有 AWS io1 那種 provisioned IOPS 的概念
- 可以加密
- 最大可以到 64TB, AWS EBS 最大到 16TB
Networking
- 一個
Project
就有自己的 Networking,預設就會在每個 Region 都建立一個對應的 CIRD Range.- 每個 Region 的 Networking 叫做
Subnetworks
,有點像是 AWS 的 VPC Subnetworks
CIDR 可以更改,但只能變大。AWS VPC Subnet 是無法更改的。
- 每個 Region 的 Networking 叫做
Project
之間的 Networking 預設是不通的,需要打通要透過 XPN, Cross-Project Networking 串通。- 沒有看到類似 AWS VPC 中 Network ACL 概念的設計
- 預設 Region 之間是互通的!也就是不用串 Site to Site VPN!也不用管 Network Topologies!
- AWS 這篇文章: From One to Many - Evolving VPC Design 提到的,很多都不用做了 …. Network Engineer 要失業了 XD
更多和 Network 相關的筆記,請參閱: Study Notes - VPC in GCP
Load Balancer
- Scaling pattern: GCP 是 real-time, 不用 pre-warm
- Global 的, 不是 Regional
- 支援 Static IP!!
Cloud Storage
- 類似 AWS S3, 依照成本、存取頻率分成
Multi-Regional
,Regional
,Nearline
,Coldline
- bucket name 跟 S3 一樣是 global level
- bucket 可以個別設定存取權限, 也可以直接將 object 設定為公開
- 可以直接刪除整個 bucket
- S3 則一定要把 bucket 清空才能刪除 bucket, 而且清空 bucket 要透過 cli 的
recursive
參數才行 - S3 在 AWS Console 無法直接刪除 bucket 裡面的資料
- S3 則一定要把 bucket 清空才能刪除 bucket, 而且清空 bucket 要透過 cli 的
- 移轉: GCP Storage 可以直接移轉其他資料源,像是 S3,指定 s3 path, credential 就可以移轉。
- Storage 的儲存方式可以調整,像是:
Multi-Regional
可以改成Coldline
orNearline
, 但不能改成Regional
Regional
可以改成Nearline
orColdline
, 但不能改成Multi-Regional
Nearline
可以改成Coldline
orMulti-Regional
, 但不能改成Regional
Coldline
可以改成Nearline
orMulti-Regional
, 但不能改成Regional
- 上面有三個都不能轉換成
Regional
, 可能可以透過其他方式
- GCP Storage 在 Console 上操作反應很快,S3 比較沒那麼順
Cloud SDK, Rest, Cloud Shell
這三個算是 GCP 的三大神器!很吸引開發者!
特別是在 Console 上可以在異動資源的時候,同時提供 REST
or CLI
,下次就可以很快速的程式化。我曾經在 AWS Feedback 也送類似的建議,不過都沒下文 XD
這樣的設計不是啥很新的想法,但卻很方便。以前在用 phpmyadmin 時就有類似的功能,直接把 SQL 轉成 PHP 語法。
專案 Project
GCP 的資源管理是以 Project
為單位,用 Networking
來看,每個 Project
有點像是一個獨立的 AWS Account。所以在規劃上要很清楚對於公司來講,什麼叫做一個 Project
,在 GCP 上要怎麼管理那些資源,如果真的切很多個 Project
,然後資源又要共享,互通,那麼就相當於 AWS 上很多個 VPC 要串接,那 可能
就會遇到非常複雜的 Routing 問題。
底下是官方建議,利用 Project
把 Prod, Test, Dev 環境切開來的使用方式:
GCP 的學習資源
習慣 AWS 的學習資源,不管是 Documentation, YouTube, Blog, …. 滿習慣從這些地方快速吸收 AWS 的新資訊,或者更深入的研究。特別像是 AWS YouTube 尚有很清楚的等級分別 10X 代表簡介, 20X 代表 Getting Start, 30X 代表進階課程, 40X 代表專家等級。難易度從數字就很容易分辨。
另外 AWS 所有的文件都有線上版, PDF, Kindle 版,我習慣用 PDF 看,隨時可以離線閱讀。
GCP 目前看到有 Documentation, 但是沒有找到 PDF. YouTube 也有類似的 playlist:
Certifications
GCP 目前有三張 Certifications
結論
GCP 最吸引我的就是他的 Global Infrastructure
,Google 花很多錢在打造自己的網路骨幹 (Backbone),讓所謂的 Cross Region
這件事本來非常困難,而且高成本的事情,變得像是 LAN 一樣的輕鬆。
GCP 另外讓人興奮的就是 Global 的分散式資料庫 Spanner
,這是讓所有 Developer 期待的!Container / K8S 是內建 GCP,Google 的 Load Balancer 也是 Global Level 的設計,AI / ML 更是 Google 的強項!
GCP 文件有一篇給熟悉 AWS 的文章:Google Cloud Platform for AWS Professionals, 除了基本的比較,也有細分的部分:
- Google Cloud Platform for AWS Professionals: Compute
- Google Cloud Platform for AWS Professionals: Networking
- Google Cloud Platform for AWS Professionals: Storage
- Google Cloud Platform for AWS Professionals: Management
- Google Cloud Platform for AWS Professionals: Application Services
- Google Cloud Platform for AWS Professionals: Big Data
在 Public Cloud 領域,如果說 AWS 是出社會工作已久的資深前輩,那麼 GCP 應該就是年輕且有著絕佳天資的明日資星!
另外一家 A 開頭的我就先忽略,常看到社群三天兩頭有人在抱怨不穩定 XDD
延伸閱讀
- Study Notes - VPC in GCP
- AWS Study Roadmap
- From One to Many - Evolving VPC Design
- Service Using Single IP in Global
參考資料
- Reimagining virtual private clouds
- Google Cloud Platform for AWS Professionals
- Google 全球級分散式資料庫 Spanner 原理