Architecting on AWS 筆記:運算資源 (Compute Service)
23 May 2022Compute Service (運算資源) 的種類
AWS 的運算資源有:EC2、EC2 Auto Scaling、EC2 Spot Instance、EBS 和 Lambda。
Shared Tenancy vs Dedicated Tenancy
當建立 EC2 instance 時,會決定要共享 (shared) 或獨享 (dedicated) 硬體設施,預設是 shared tenancy。
Instance Type
從 instance type 命名來了解規格。
- instance family:類型,c 表示 CPU。
- instance generation:類型的第幾代。
- attribute:特殊需求,n 表示網路 (network) 有特殊優化。
- instance size:對應到某一台 CPU、某一台 RAM 等的大小,示意如下圖。
圖片來源:The unconventional guide to AWS EC2 instance types.
EC2 生命週期
利用 AMI 建立 EC2 -> Launch -> Pending -> Running <-> Rebooting -> Stopping -> Stopped -> Pending or Terminated -> Shutting down -> Terminated
Note:Amazon Machine Image (AMI):提供 launch 一個 instance 的所有所需資訊 (disk volume),類似開機光碟。利用 AMI 元件作為樣版建立相同環境的 EC2,省時省力。
EC2 購買方案/策略
- 長期合約,1~3 年
- Reserved Instances:綁定型號,彈性小,適合產品穩定不變。
- Saving Plans
- 綁定資源用量,例如 100 CPU 而非 CPU 型號,彈性稍寬。
- 超過預定用量的部分會以 on-demand 計價, 適合產品的差異大、需求有不同變化。
- 短期合約
- Spot Instances:最便宜的 EC2 計費方法,但是隨時會被收回,適合做備份、cron job、收 log 的功能。
- On-Demand:預設方案。
EBS
- EBS 是需要網路連線的硬碟。
- 可利用 snapshot 備份 EBS。
- EBS 的種類有:固態硬碟 SSD、傳統的 HDD、gpX general purpose 一般適用、io 輸入輸出優化有特別要求、sc (cold) 冷錢包冷資料、st (throughput) 講究吞吐量但不要求 iops。
EC2 Instance Store Volume
- instance store volume (實體儲存空間):主要用途為作為快取 or buffer、儲存暫時的 log,待完成工作後再 dump 到 EBS。
- 不用像 EBS 要使用網路連線,但缺點是無法永久儲存,一但 EC2 關機或故障,instance store volumn 的資料會被清空。
Placement Groups
placement groups 是指怎麼擺放 EC2,會牽涉到溝通的 latency 的問題。
如下圖範例,partition (圖上) vs cluster (圖下)
- partition:擺得近,但分散在不同機櫃上,這樣就能靠近又安全。
- cluster:擺得近、在同一個機櫃最快。
Lambda
- Lambda 是個 function,將程式碼放到 Lambda Event Trigger 觸發 Lamda 之後就會跑這個程式碼並可回傳結果,用於做短時間內可跑完小動作 (例如:上傳檔案、初始化),注意有限制執行時間為 15 分鐘。
範例
- Hello Lambda Function:如何撰寫一個 Lambda Function 並且能讓外部來叫用呢?
- AWS 學習筆記 — 無伺服器 Serverless 的 Lambda by 我的好同事 Sean Chou
- 用 Lambda 做拉霸機。