# Google GCP GCE 怎麼選擇 VM 配置
[TOC]
## CPU & 記憶體
### 分類
#### 1. 一般用途 (性價比較高)

* Cost Optimized (成本最佳化)
* 特點
* 成本低
* 比 N1 系列便宜 31%
* 系列
* E2
* 適合情境
* Web Server
* 企業內的軟體應用系統(Steady-State Line of Business Application)
* 小或中型資料庫
* Balanced (均衡)
* 特點
* 較客製化
* 支援較多功能
* 系列
* N2
* N2D
* 適合情境
* Web Server
* 企業系統
* 中型資料庫
* Scale-out Optimized (擴張最佳化)
* 特點
* 性價比高
* 適合水平擴張
* 系列
* T2D
* 適合情境
* Web Server
* 容器化微服務
#### 2. 工作負載最佳化

* Compute Optimized (運算最佳化)
* 特點
* 核心運算能力最高
* 適合處理複雜的運算工作
* NUMA (Non-uniform memory access)
* 系列
* C2
* C2D
* 適合情境
* 科學運算
* 大型遊戲
* Memory Optimized (記憶體最佳化)
* 特點
* 適合需要大量記憶體空間的運算工作
* 每 GB 記憶體的價格最低
* 系列
* M1
* M2
* 適合情境
* 大型記憶體資料庫
* Accelerator Optimized
* 特點
* 最高 GPU 性能
* 適合 AI 和機器學習的運算工作
* 系列
* A2
* 適合情境
* 機器學習
### 名稱拆解
* n2d-highcpu-64
* n2d
表示 CPU 是 N2D 系列
:::info
有 D 表示 CPU 是 AMD 平台
* N2 (Intel)
* N2D (AMD)
:::
* highcpu
表示 CPU 種類是運算最佳化
:::info
CPU 種類名稱 & CPU 和記憶體的比例(大約)
* standard (標準 1:4)
* highcpu (運算最佳化 1:1)
* highmem (記憶體最佳化 1:8)
* megamem (記憶體最佳化 - 更高 1:15)
* ultramem (記憶體最佳化 - 最高 1:30)
:::
* 64
* vCPU (虛擬 CPU) 數量有 64 個
* m1-megamem-96
* m1 系列
* 記憶體最佳化
* 96 個 vCPU
### 選擇方式
* 不要選過高的性能,會浪費錢
* 需要多少的 CPU 和記憶體
* 有沒有 CPU 和記憶體是不需要的
* 使用建議配置
* VM 建好後在建議(Recommendation) 欄位會有調整配置的建議

* 自訂配置
* 選完 CPU 系列後,機器類型選自訂(Custom)
* 自訂 CPU 核心數量、記憶體大小

## DISK
### 磁碟類型
* [網路磁碟](https://cloud.google.com/compute/docs/disks/performance?hl=zh-cn#regional-persistent-disks_1)

* 透過網路連接 VM 和磁碟,延遲時間較長
* 分為四種類型
* 標準 HDD(最慢)
* 平衡 SSD (一般)
* 性能 SSD (更快)
* 極端 SSD (最快)
* 讀 (IOPS 15000~120000)
* 寫 (IOPS 15000~120000)
::: info
IOPS (Input/Output Operations Per Second)
磁碟每秒讀寫次數
:::
* 本地磁碟 (Local SSD)
* 磁碟直接連接 VM,延遲較短且讀寫速度最快
* 使用 SSD
* 只有 N1, N2, N2D, C2, C2D, M3 有支援
* 分為兩種介面
* SCSI
* 讀 (IOPS 100000~900000)
* 寫 (IOPS 70000~800000)
* NVMe (性能最佳化)
* 讀 (IOPS 170000~2400000)
* 寫 (IOPS 90000~1200000)
### 選擇方式
* 磁碟空間
* 讀寫速度
* 選擇的 CPU 類型是否支援選擇的磁碟類型
* ex : E2 和 T2D 不支援 Local SSD
## 選擇範例
* requirement
1. 16 vCPU
2. 本地 SSD
3. 較低記憶體

* 篩選步驟
1. Local SSD 只有 N1, N2, N2D, C2, C2D, M3 有支援
2. 找出符合 16 vCPU 的方案
3. Less Memory 所以選 highcpu (CPU:記憶體 = 1:1)
4. 剩下 N1, N2, N2D
5. 其他比較 (ex : 比價、額外功能...)
* [比價 (USD)](https://cloud.google.com/compute/all-pricing?_ga=2.31543486.-1039018011.1677690330&_gac=1.20703818.1686495840.CjwKCAjw4ZWkBhA4EiwAVJXwqdXkXLjpTq9fLHVauAtMb7xbUeHFDSZsbTZjvTi_Tao0x41BTOSXwBoC82IQAvD_BwE&hl=zh-tw)
* 一般
|類型|按時數計費|按月計費|
|----|----|----|
|N1|0.5672|289.84|
|N2|0.5736|334.98|
|N2D|0.4990|291.42|
* [搶占式](https://cloud.google.com/compute/docs/instances/preemptible?hl=zh-cn) (較便宜,最多折 75%,但可用性較低)
|類型|按時數計費|按月計費|
|----|----|----|
|N1|0.1200|87.60|
|N2|0.1388|101.32|
|N2D|0.1208|88.18|
* [估價工具](https://cloud.google.com/products/calculator?hl=zh-tw)
## reference
* https://www.youtube.com/watch?v=OJ7exygl87s&ab_channel=GoogleCloudTech
* https://www.highercloud.com.tw/architect-gcp-gce?%2Farchitect-gcp-gce
* https://hackmd.io/@xsggt/BJ2vVPEkv