概論介紹
EC2 Instance (EC2 虛擬機) 由許多重要元件組成,我們分成三大部分介紹。
在一個 EC2 Instance 裡,有一個重要元件叫做 AMI (Amazon Machine Image)。
什麼是 AMI:
當我們啟動一台 Instance 時,會有一些 Instance 層面的資料,裡面包含:Instance ID、Hostname 等。
在 Instance Type 中,我們會去決定 Instance 本身要使用多少資源,包含我們要使用 vCPU、記憶體、儲存空間的多寡。
Instance Storage 是一個本地的儲存空間,會隨著 EC2 Instance 的更動而改變。
換句話說,若 EC2 Instance 消失,Instance Storage 就會不見,因此不適合放置永久資訊。
不過 Instance Storage 的好處是:
它就在 EC2 Instance 上,所以能讓我們進行非常高效率的 I/O 工作。
可以決定 Network speed,Network speed 能決定 EC2 Instance 能負荷多少網路流量。
EC2 中還有許多細部設定,一樣先標 TBD。
當我們在 AWS Consol 建立一台 EC2 時,我們會連接許多子服務。
Network 網路
我們會配給 EC2 一個或多個虛擬網卡 (ENI),而 EC2 Instance 在 AWS 網路架構中的角色是由 ENI 來決定。
如下圖,我們必須看 ENI 在哪個 SG (Security Group) 、哪個 Subnet,以及被哪個 NACL 所管控。
Permission 權限
在 AWS 中,管理權限有個重要元件 IAM Role。
IAM Role 並不能直接被 EC2 Instance 給使用,因此需要一個銜接角色來串接,也就是 Instance Profile,如下圖:
Instance Profile 會將 IAM Role 轉換為 EC2 Instance 可以使用的形式,來管控 EC2 Instance 可以使用哪種權限及 AWS 服務。
External Storage
External Storage 是一個外接的儲存空間。
服務名稱叫做 EBS Volume (Elastic Block Storage Volume)。
有別於 Instance Storage,EBS Volume 並不會隨者 EC2 Instance 的消失而不見,因此適合放置永久資料。
EC2 主體實際上只有下圖紅框圈起來的部分,右側都是可以連結的子系統們。
EC2 必須透過與這些服務的連結才能建出一個完整的虛擬機功能。
在 EC2 Instance 中,有個 Instance Storage,他們會在同一個 Host 主機上。
我們可以透過網路連結到另外的外部硬碟空間 EBS Volume (Elastic Block Storage)。
EC2 Instance 與 EBS Volume 會在同一個 AZ 中,如下圖:
EBS Volume 可以備份,而 AWS 提供的備份功能叫做 EBS Snapshot。
EBS Snapshot 有個特點,它會進行漸進式的備份 (backup),也就是說,已備份的部分不會重複備份,只會針對新的部分備份,這種漸進式的方法稱作 Incremental。
另外, EBS Snapshot 會與 EC2 Instance 在同一個 Region 中。
EC2 Instance、EBS Volume、EBS Snapshot 三者的關係如下圖:
Instance Storage
優點:
缺點:
EBS
優點
缺點
Instance Storage 與 EBS 優缺點比較圖:
相較於 Instance Storage,更常使用 EBS 儲存,因為 EBS 提供較高的 Durability。
雖然 EBS 存在 lower I/O 的問題,但 AWS 提供我們許多不同的 EBS Type 來解決這個問題,之後會再詳細說明。
AWS 提供以下四種 EBS Types,讓我們根據 I/O 需求來做選擇,改善 lower I/O 的問題:
各類別的數據比較:
關於 IO Packet Size:
SSD 底下兩個 Type 的 Packet Size 只有 16 KB,HDD 底下兩個 Type 的則有 1MB
主要是因為在 SSD 底下,是針對「次數高但量小的使用情境」
而 HDD 則是處理「次數少但量大的狀況」
最重要的數值是 Throughput,st1 處理 500MB/s,sc1 處理 250MB/s,勝過 gp2。
雖然 io1 可以達到 1000MB/s,但是花費成本也是最高的,因此並非最佳選擇。
sc1 的花費最低,又可以達到 250MB/s,算是較經濟實惠的選擇。
gp2 需花 4 倍的花費才能達到 sc1 的 Throughput,因此也不划算。
因此當我們要使用 HDD 底下的 Type 時,必須特別注意 Throughput 和 Cost 兩個數值。
底下兩個 Type 都是以 IOPS 為主要數值,雖然比 HDD 貴很多,但是相對它的 IOPS 也高出非常多。
所以當我們使用 SSD 底下的 Type 時,就是願意花大錢買很高的 IOPS。
SSD 最強的效能是 IOPS,HDD 則是 Throughput。
決定最後 EBS 可以得到的效能是由兩種要件組成的:
參考下圖,儘管左邊 EBS type 效能高,但終究還是會被右邊 EC2 Type 最高效能給拉下來,最後取得兩者的交集。
參考網站:
Day 9 運算寶石:EC2 重點架構
Day 10 運算寶石:EC2 儲存資源 Instance Store vs Elastic Block Storage (EBS)
Day 11 運算寶石:EC2 儲存資源 EBS Types 方案比較