# AWS EC2 運算資源 (觀念講解篇) ###### tags: `概論介紹` ## EC2 重點架構 EC2 Instance (EC2 虛擬機) 由許多重要元件組成,我們分成三大部分介紹。 ### ◆ AMI 在一個 EC2 Instance 裡,有一個重要元件叫做 ==**AMI** (Amazon Machine Image)==。 什麼是 AMI: - 最主要的功用為++決定我們的 OS (Operating System) 作業系統++。 - AMI 如同一個模板,當每次在建立 EC2 Instance 時,就要選擇使用何種 AMI。 - 包含許多細部設定,之後會再來討論,這裡先用 TBD (To Be Defined) 標記起來。  ### ◆ Instance Metadata 當我們啟動一台 Instance 時,會有一些 Instance 層面的資料,裡面包含:Instance ID、Hostname 等。  ### ◆ Instance Type 在 Instance Type 中,我們會去決定 Instance 本身要使用多少資源,包含我們要使用 vCPU、記憶體、儲存空間的多寡。 :::danger Instance Storage 是一個本地的儲存空間,會隨著 EC2 Instance 的更動而改變。 換句話說,若 EC2 Instance 消失,Instance Storage 就會不見,因此不適合放置永久資訊。 ::: 不過 Instance Storage 的好處是: - 它就在 EC2 Instance 上,所以能讓我們進行非常高效率的 I/O 工作。 - 可以決定 Network speed,Network speed 能決定 EC2 Instance 能負荷多少網路流量。 EC2 中還有許多細部設定,一樣先標 TBD。  ### ◆ EC2 連接的子服務 當我們在 AWS Consol 建立一台 EC2 時,我們會連接許多子服務。 - **Network 網路** 我們會配給 EC2 一個或多個虛擬網卡 (ENI),而 EC2 Instance 在 AWS 網路架構中的角色是由 ENI 來決定。 如下圖,我們必須看 ENI 在哪個 SG (Security Group) 、哪個 Subnet,以及被哪個 NACL 所管控。 > [NACL 及 SC 相關介紹](https://hackmd.io/ZP5kM8BgSr-se5JNBp1UtQ#%E2%97%86-NACL-vs-SG-%E7%9A%84%E5%AE%89%E5%85%A8%E8%A8%AD%E5%AE%9A%E4%BB%8B%E7%B4%B9)  - **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 的消失而不見,因此適合放置永久資料。  :::info <h2>小結</h2> EC2 主體實際上只有下圖紅框圈起來的部分,右側都是可以連結的子系統們。 EC2 必須透過與這些服務的連結才能建出一個完整的虛擬機功能。 :::  --- ## EC2 儲存資源 Instance Store vs Elastic Block Storage (EBS) ### ◆ EC2 Instance 與 EBS Volume 的關係介紹 在 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 三者的關係如下圖:  ### ◆ EBS 與 Instance Storage 的優缺點比較 - Instance Storage - 優點: - High I/O 由於 Instance Storage 跟 EC2 Instance 在同一個 Host 中,因此具有很好的 I/O 處理能力。 - 缺點: - Ephemeral,短暫存在 當 EC2 Instance 被刪除時,Instance Storage 的資料也會全部消失。 - No Backup 當主機儲存硬碟故障時,資料因為沒有備份,所以也會跟著消失。 換句話說,它的耐久性非常低,不適合存放長久資料。 - EBS - 優點 - Persistent EBS Volume 的生命週期與 EC2 的出現消失無關,即使 EC2 被砍掉,EBS Volume 的資料也不會消失 - Backup 當創造 EBS Volume 時,在背後的 AZ 中,AWS 會幫忙建立多台儲存設備,簡稱 ==Nodes==,來組成 EBS Volume,就算一個硬碟故障,資料仍完整保存,提供較高的耐久性。 另外,還有 EBS Snapshot 來保護資料,就算 AZ 所有資料中心都無法使用,資料仍會保存在同一個 Region 下的 EBS Snapshot。 - 缺點 - Lower I/O 由於 EBS 和 EC2 之間連通內部網路會造成時間消耗,因此 I/O 處理能力較低 Instance Storage 與 EBS 優缺點比較圖:  :::info <h2>小結</h2> 相較於 Instance Storage,更常使用 EBS 儲存,因為 EBS 提供較高的 Durability。 雖然 EBS 存在 lower I/O 的問題,但 AWS 提供我們許多不同的 EBS Type 來解決這個問題,之後會再詳細說明。 ::: ## EC2 儲存資源 EBS Types 方案比較 AWS 提供以下四種 EBS Types,讓我們根據 I/O 需求來做選擇,改善 lower I/O 的問題: 1. io1 2. gp2 3. st1 4. sc1 ### ◆ SSD 與 HDD 與四種 EBS Types  - SSD 下含有 io1 與 gp2 兩種類別 - HDD 下含有 st1 與 sc1 兩種類別 各類別的數據比較:  - Max Storage:最大容量都是 16TB - I/O:Input / Output 的簡寫,用來評量檔案讀寫的速度效能 - IOPS:I/O Per Second,每秒可處理的 I/O 請求次數 - IO Packet Size:指的是每次處理一個 I/O 請求時,一個 Package 的大小。 - Throughput:「*每秒可以處理的 I/O 資料總量*」,Throughput = IOPS * I/O Packet Size - Cost:這邊以相對的數值來建立數字級距的概念,以處理一單位資料的花費,以 $ 當作比較符號 > 關於 IO Packet Size: > > SSD 底下兩個 Type 的 Packet Size 只有 16 KB,HDD 底下兩個 Type 的則有 1MB > > 主要是因為在 SSD 底下,是針對「*次數高但量小的使用情境*」 > 而 HDD 則是處理「*次數少但量大的狀況*」 ### ◆ 比較數值意義 <h3>HDD</h3> 最重要的數值是 Throughput,st1 處理 500MB/s,sc1 處理 250MB/s,勝過 gp2。 雖然 io1 可以達到 1000MB/s,但是花費成本也是最高的,因此並非最佳選擇。 sc1 的花費最低,又可以達到 250MB/s,算是較經濟實惠的選擇。 gp2 需花 4 倍的花費才能達到 sc1 的 Throughput,因此也不划算。 :::success 因此當我們要使用 HDD 底下的 Type 時,必須特別注意 Throughput 和 Cost 兩個數值。 :::  <h3>SSD</h3> 底下兩個 Type 都是以 IOPS 為主要數值,雖然比 HDD 貴很多,但是相對它的 IOPS 也高出非常多。 :::success 所以當我們使用 SSD 底下的 Type 時,就是願意花大錢買很高的 IOPS。 ::: <h3>四個 Type 適用情境</h3> - ==io1== - 建議使用於 EC2 上有建立「***資料庫***」的情況,因為在資料庫處理中的 CRUD,可能都是資料小但請求次數多的狀況。 - ==gp2== - 建議使用於「***開機硬碟***」,AWS 建議大家使用的預設硬碟選擇,可使開機速度快,費用也不像 io1 那麼貴。 - ==st1== - 建議使用於「***影音串流***」,影音串流的請求頻率不高,但每次都是幾 GB 的容量。 - ==sc1== - 建議使用於「***資料封存***」的情況,因為使用資料的頻率非常低,保存成本也不高。  <h3>EBS 效能</h3> SSD 最強的效能是 IOPS,HDD 則是 Throughput。 決定最後 EBS 可以得到的效能是由兩種要件組成的: 1. EBS Type 之間不同的效能 2. EBS Volume 被 attach 到一台 EC2 Instance 上時,那台 Instance 的 EC2 Type 也會影響最後 EBS Volume 的效能 參考下圖,儘管左邊 EBS type 效能高,但終究還是會被右邊 EC2 Type 最高效能給拉下來,最後取得兩者的交集。  :::info <h2>小結</h2> 1. HDD 底下的 st1 和 sc1 是「**便宜大流量**」 2. SSD 底下的 io1 和 gp2 是「**高貴快手速**」 :::  > 參考網站: > [Day 9 運算寶石:EC2 重點架構](https://ithelp.ithome.com.tw/articles/10263305) > [Day 10 運算寶石:EC2 儲存資源 Instance Store vs Elastic Block Storage (EBS)](https://ithelp.ithome.com.tw/articles/10264261) > [Day 11 運算寶石:EC2 儲存資源 EBS Types 方案比較](https://ithelp.ithome.com.tw/articles/10264904)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up