「雲端」的第一塊技術地基就是虛擬化——沒有它,AWS 不可能把一台實體伺服器租給幾十個互不相識的客戶。本章從 VM 與 hypervisor 講起(EC2 的本質),再比較容器與 VM 的差異(ECS/EKS 的本質),最後把「Serverless 到底 serverless 在哪」講清楚。讀完後 AWS ch02(EC2、AMI)和 ch08(Lambda、ECS、Fargate)的定位一目瞭然。
一台實體伺服器的 CPU 和記憶體往往用不滿,而且不同客戶的程式絕不能互相干擾。虛擬化(Virtualization)解決這兩個問題:把一台實體機器切成很多台互相隔離的「虛擬機(VM,Virtual Machine)」。
容器(Container)是比 VM 更輕的隔離技術,兩者差在「隔到多深」:
把「你要自己管多少事」排成一條階梯,就懂各種運算服務的定位了:
「Serverless 不是沒有伺服器」——伺服器當然存在,只是你看不到也不用管:不用開機器、不用更新 OS、不用煩惱擴容,AWS 全包。
| 特性 | VM(虛擬機) | 容器 |
|---|---|---|
| 類比 | 獨立套房(自帶水電廚衛) | 共用公寓的上鎖房間 |
| 作業系統 | 每台 VM 一套完整 OS | 共用宿主機的 OS 核心 |
| 啟動速度 | 分鐘級(完整開機) | 秒級 |
| 資源開銷 | 重(每台都養一套 OS) | 輕(一台機器可跑上百個) |
| 隔離程度 | 徹底(hypervisor 層隔離) | 較弱(共用核心) |
| AWS 對應 | EC2(範本=AMI) | ECS/EKS 管容器、ECR 放映像 |
| 層級 | 你上傳什麼 | 你還要管什麼 | AWS 服務 |
|---|---|---|---|
| VM | 整台機器的內容 | OS 更新、擴縮容、換壞機 | EC2 |
| 容器(自管機器) | 容器映像 | 跑容器的那群 EC2 | ECS/EKS on EC2 |
| 容器(Serverless) | 容器映像 | 只管容器本身,機器 AWS 包 | ECS/EKS on Fargate |
| 函式 | 一段程式碼 | 幾乎什麼都不管,按執行付費 | Lambda |
點擊卡片翻面查看答案,共 9 張。