EFS是為Amazon EC2環境提供的檔案系統儲存服務,就像是在雲端上使用NAS服務一樣,能夠進行檔案共享

  • 依據使用者需求自動調整儲存空間,並按照實際使用容量傳輸量收費
  • 可隨需彈性地擴展且不會中斷應用程式
  • 隨著您新增和移除檔案自動擴展和縮減
  • 它的設計旨在提供數千個 Amazon EC2 執行個體的大量平行共享存取
  • 讓應用程式達到高標準的彙總輸送量和 IOPS
  • 地區性服務,其設計目的是提供高可用性和耐久性,以冗餘方式跨多個可用區域存放資料

EFS 基本實作範例

動手實作感受一下EFS建立流程 :
建立網路檔案系統

AWS S3 EBS和EFS的比較差異

AMAZON S3 AMAZON EBS AMAZON EFS
Can be publicly accessible Accessible only via the given EC2 Machine Accessible via several EC2 machines and AWS services
Web interface File System interface Web and file system interface
Object Storage Block Storage Object storage
Scalable Hardly scalable Scalable
Slower than EBS and EFS Faster than S3 and EFS Faster than S3, slower than EBS
Low Price Normal Price Expensive
Good for storing backups It meant to be EC2 drive Good for shareable applications and workloads

網路上找的一些EFS應用的架構圖



看完一些架構圖後應該會有些不一樣的想法
AWS在儲存解決方案上提供很多工具 :
S3, EBS, EFS, Glacier, Snowball, Storage Gateway
一般來說常遇到的應該是前四個
如何正確選用AWS儲存工具 取決於你的架構
一個良好的架構可以替企業省下不少維運管理費
『好的架構可以從每個月帳單費用看得出來』

回歸正題,如何應用EFS到你的系統?
就我的觀察
多個EC2之間可以大量平行存取 -> 這是最重要的
當系統架構有使用Auto Scaling, ELB時
每個EC2裡的應用程式所產生的log不可能都放在自己local EBS storage
這時就可以透過掛載EFS
讓所有EC2所產生的log 統一丟到EFS
EC2 -> EFS的速度比 EC2 -> S3快
所以存取log很適合應用在這個場景
透過這個方式

  • EC2單純只留下應用程式功能
  • EFS負責Log
  • S3負責Assets(images, files)

再進階一點的話
若您的Log資料量很大
我們還可以透過Data Pipeline, Lambda工具
定期將EFS上的log打包送到S3
進而降低我們的儲存費用
這取決於你的系統業務邏輯
將比較常存取的log和不常存取的log做個區分

Reference