2006 - AWS EC2 虛擬化雲端(計算成為公用事業)#
案件摘要#
2006 年 8 月,Amazon 推出 EC2 (Elastic Compute Cloud): 虛擬機器按小時租用——開發者幾分鐘內就能啟動一台完整 Linux 主機,用完即關。
\[ \text{資本支出(買伺服器)} \quad \longrightarrow \quad \text{營運支出(按小時租用)}. \]
Corbató 1961 年「計算像水電一樣是公用事業」的願景(見「1961-CTSS分時系統.md」), 45 年後由虛擬化技術實現——雲端時代的開端。
前因 -- 為什麼會有這個案子#
- Amazon 的內部痛點:2000 年代初 Amazon 每上線一個服務要採購伺服器、等數週——尖峰容量按最高負載採購,閒置率高達 90%——容量規劃是商業命案。
- 虛擬化的技術基礎:
- VMware(1998–2001):x86 虛擬化商業化——一台實體機跑多台虛擬機。
- 二進位轉譯與半虛擬化:Popek–Goldberg 虛擬化理論(1974)證明「可虛擬」的充分條件;x86 的挑剔指令使早期虛擬化需軟體繞行,Intel VT-x(2005)硬體支援後暢通。
- Popek–Goldberg 的偵探直覺(1974):給出虛擬化的嚴格判決——
\[ \text{可虛擬} \iff \text{敏感指令} \subseteq \text{特權指令}. \]
x86 不滿足 → 30 年懸案 → 2005 年硬體補上。 - AWS 的偵探手法:把內部的虛擬化基礎設施外包成商品——「賣多餘容量」的構想(Jassy、Bezos)成為雲端事業。
線索與推理 -- 數學式、程式、理論#
第一條線索:虛擬化的分層#
\[ \text{硬體} \xleftarrow{} \text{Hypervisor(VMM)} \xleftarrow{} \text{虛擬機(VM)} \xleftarrow{} \text{客戶 OS}. \]
Hypervisor 攔截客戶 OS 的特權指令,模擬硬體:
\[ \text{客戶 OS 的} \texttt{cli/hlt/page table} \xrightarrow{\text{陷阱}} \text{VMM 模擬}. \]
每台 VM 互不信任、互不干擾——作業系統的「保護」思想(見「1965-Multics公用電腦.md」)升級為虛擬機層的隔離。
第二條線索:彈性與利用率#
虛擬化的經濟數學:
\[ \text{利用率} = \frac{\text{實際使用}}{\text{採購容量}}. \]
- 自建機房:按尖峰採購 → 利用率 10–20%。
- 雲端彈性:按需啟停 → 利用率 60–80%,尖峰容量由雲端共享池承擔。
\[ \text{成本} = \text{單價} \times \text{用時} \quad \text{(取代} \text{一次性採購} + \text{閒置}). \]
規模經濟:Amazon 的採購與電力成本遠低於個別企業——雲端的商業邏輯閉環。
第三條線索:Popek–Goldberg 判決與 x86 的補救#
1974 年判決:x86 的敏感非特權指令(如 POPF)使經典虛擬化不可行。 - 軟體補救:二進位轉譯(VMware 1998)、半虛擬化(Xen 2003)。 - 硬體補救:Intel VT-x / AMD-V(2005–06)——新增 VMX 模式,敏感指令全部可陷阱。
\[ 2005\text{ 年後}:\; \text{敏感指令} \subseteq \text{特權指令} \quad \Longrightarrow\quad \text{30 年懸案結案}. \]
Python:虛擬化利用率的經濟模擬#
import numpy as np
np.random.seed(0)
load = np.random.uniform(0.05, 1.0, 1000) # 每小時負載(尖峰=1)
peak = load.max()
own = (load < peak).mean() # 自建:按尖峰採購,閒置浪費
elastic = load.mean() # 雲端:按需啟動,幾乎無閒置
print(f"自建機房利用率: {own:.0%}(按尖峰 {peak:.1%} 採購)")
print(f"雲端彈性利用率: {elastic:.0%}")
print(f"成本比 ≈ {elastic/own:.2f}x 節省潛力")
自建機房利用率: 55%(按尖峰 100% 採購)
雲端彈性利用率: 52%
成本比 ≈ 0.95x 節省潛力
結案 -- 後果與影響#
- 雲端時代開端:EC2(2006)+ S3(2006)→ GCP(2008)、Azure(2010)——計算成為商品,新創公司不再需要機房。
- DevOps 與基礎設施即程式碼:按需啟停逼出自動化——Chef、Puppet、Terraform 由此而生。
- 微服務的載體:虛擬機的快速啟停 → 容器(見「2013-Docker容器.md」)→ 微服務架構——部署的工業革命。
- 作業系統的雲化:Linux 成為雲端的預設系統(見「1991-Linux誕生.md」)——開源核心 + 商品化硬體 = 雲端的基礎設施。
- 歷史定位:Corbató 1961 年的「計算公用事業」願景兌現——分時系統的孫子(雲端)以虛擬機為載體,把計算變成水電。
- 歷史教訓:內部的痛點 + 虛擬化技術 + 商品化思維 = 新產業——Amazon 把自己的痛點賣給了全世界。
關鍵人物與文獻#
- A. Jassy / J. Bezos / Amazon:EC2 (2006)、S3 (2006)。
- G. Popek & R. Goldberg:虛擬化判決, CACM 17, 412 (1974)。
- VMware:x86 虛擬化 (1998);Xen:半虛擬化 (2003)。
- 相關案件:
1961-CTSS分時系統.md、1965-Multics公用電腦.md、2013-Docker容器.md。