我們的目標,就是花最少的時間,學到最多的東西:-)

在AWS中,可以選擇的存儲服務很多,紛繁複雜,新手根本弄不清楚選擇哪個。因為做為一個雲架構師,你並不是讓你的產品能用就夠了,而是要考慮到Resilient,Performance, Secure, Cost optimized,最後要做到operational excellent的系統。這也是AWS SA associate考試的幾個核心要點。

這一篇著重講一下AWS的三個存儲服務。

AWS S3 (simple storage service)

S3是一個object storage的服務,可以存任何東西,文件,視頻,圖片,都會被存儲在一個Bucket裏,這是一個沒有層級的存儲方式,你可以想像一下數據之間並沒有關係,是一個扁平的結構。每一個文件呢,在被創建的時候都會有一個Header和0-5TB大小的存儲內容。然後這每一個文件都會有一個唯一的ID與其綁定。這個ID將可以被任何web應用對這個文件進行訪問。比如在你的AWS一個VM虛擬機就可以調用存儲在S3裏的文件。所以它適合存儲哪些那些需要經常被訪問的文件

S3還有個非常實用的功能,就是它能host 靜態網站(就是不需要後臺資料庫登陸和各種操作的那種純展示型網站)具體我們以後再介紹。

S3是一個scalable,存儲量可以擴大減小,根據使用的實際數量來進行付費。S3因為它的11個9和易用性而出名。他的穩定性達到可怕的99.999999999%,所以基本上你的數據在S3中是不太可能丟失的。

一句話總結:AWS S3是一個特別可靠的,存儲量可擴展的,容易被外界訪問的數據存儲服務。存你要經常用的文件,用S3!

EBS (elastic block storage)

EBS也是一個存儲服務專門用來讓你跑你的虛擬機的。就像你裝一個windows操作系統,裝在C盤,或者在D盤裝一個虛擬機一樣。所有你在AWS用的EC2 都會跑在EBS上。但是要主意它裡面的HDD存儲是不能當作操作系統存儲的

既然是跑系統的存儲,那肯定要求訪問速度了對吧。所以對於EBS,主要要記住下面幾條:

  • EBS不能做為一個獨立存儲,它總是和EC2同時被創建的。
  • EBS在創建時定的大小不能在之後改,畢竟裝了個系統嘛 (但是可以通過創建一個新的EBS,然後attach到EC2的方式增加容量)EC2需要暫停去更新EBS。
  • EBS有三種存儲方式,主要涉及到performance和價格了。
    • General purpose SSD存儲

這個就是最主要的選擇方式了,具體要看參數和你的需求,通常能夠滿足所有普通的系統實用需求。

    • IOPS優化SSD存儲

這個IOPS(input/output operation per second),就是讀寫優化的SSD存儲,如果你的系統需要大量讀寫操作,這個將是你的選擇。具體看參數和你的需求。

    • 磁碟(magnetic)存儲,其實就是HDD

最後一個就是比較便宜的HDD磁碟存儲了,價格便宜,比較適合存儲那些序列數據(squential data),比如log數據啦, 大數據什麼的,很划算。它的I/O讀寫速度也有500MB/s還是不錯的。它也分兩種,一個是st1,讀寫速度快,且便宜。還有個更便宜的,sc1,讀寫速度相對慢一點。

-------------幾大EBS 的對比(下圖)--------------

EBS的各種選擇

EFS (elastic file system)

EFS你別看它名字叫file system,其實它最主要是用來讓你運行一些對IO存儲要求比較高的App的。區別在哪呢,S3用來存文件,EBS主要用來運行虛擬機和存一些系統文件,或者存大數據等,需要大量IO的訪問的。好像EBS也能用來運行應用App,沒錯,你完全可以在你的系統盤裡運行一個App嘛,但是如果你的應用突然需要scale up,比如你的用戶訪問量突然從1000增加到10萬個,記得EBS是不能自動scale up的。所以App不應該跑在你的EBS裏,這就是EFS的作用。

EFS可以自動scale up或者scale down,所以你永遠不用擔心資源不夠用的問題。而且也不需要擔心資源浪費的問題。當需求變低,EFS自動scale down,你就只需要支付你使用的那部分存儲就夠啦。

一個EFS可以被多個資源同時使用,是一個shared system。所以EFS很適合去跑一些共享的server,大數據運算啊等等各種對存儲資源要求靈活scale up and down 的應用。

總結啦


推薦閱讀:
相關文章