AWS EFS vs EBS vs S3 (perbedaan & kapan harus digunakan?)

315

Sesuai judul pertanyaan ini, apa perbedaan praktis antara AWS EFS, EBS dan S3?

Pemahaman saya masing-masing:

  • S3 adalah fasilitas penyimpanan yang dapat diakses di mana saja
  • EBS adalah perangkat yang dapat Anda pasang ke EC2
  • EFS adalah sistem file yang dapat Anda pasang ke EC2

Jadi mengapa saya menggunakan EBS dibandingkan EFS? Sepertinya mereka memiliki kasus penggunaan yang sama tetapi perbedaan semantik kecil? Meskipun EFS direplikasi di AZs dimana EBS hanyalah perangkat yang dipasang. Saya kira pemahaman saya tentang EBS kurang maka saya tidak dapat membedakan.

Mengapa memilih S3 daripada EFS? Keduanya menyimpan file, skala dan direplikasi. Saya kira dengan S3 Anda harus menggunakan SDK di mana dengan EFS sebagai sistem file, Anda dapat menggunakan metode I / O standar dari bahasa pemrograman pilihan untuk membuat file. Tetapi apakah itu satu-satunya perbedaan nyata?

Integralis
sumber
2
EFS seperti NFS. EBS pada dasarnya adalah SAN. S3 agak seperti WebDav. Gletser mungkin adalah DVD blueray storagemojo.com/2014/04/25/amazons-glacier-secret-bdxl
Neil McGuigan

Jawaban:

466

Satu kata jawaban: UANG: D

1 GB untuk disimpan di AS-Timur-1: (Diperbarui pada 2016.dec.20)

  • Gletser: $ 0,004 / Bulan (Catatan: Pemotongan harga utama 2016)
  • S3: $ 0,023 / Bulan
  • S3-IA (diumumkan pada 2015.09): $ 0,0125 / Bulan (+ $ 0,01 / biaya pengambilan manggung)
  • EBS: $ 0,045-0.1 / Bulan (tergantung pada kecepatan - SSD atau tidak) + biaya IOPS
  • EFS: $ 0,3 / Bulan

Opsi penyimpanan lebih lanjut, yang dapat digunakan untuk menyimpan data sementara saat / sebelum memprosesnya:

  • SNS
  • SQS
  • Aliran Kinesis
  • DynamoDB, SimpleDB

Biaya di atas hanyalah sampel. Mungkin ada perbedaan berdasarkan wilayah, dan itu bisa berubah kapan saja. Juga ada biaya tambahan untuk transfer data (ke internet). Namun mereka menunjukkan rasio antara harga layanan .

Ada jauh lebih banyak perbedaan antara layanan ini:

EFS adalah:

  • Tersedia secara umum (di luar pratinjau), tetapi mungkin belum tersedia di wilayah Anda
  • Sistem file jaringan (itu berarti mungkin memiliki latensi yang lebih besar tetapi dapat dibagikan melalui beberapa kejadian; bahkan antar wilayah)
  • Itu mahal dibandingkan dengan EBS (~ 10x lebih banyak) tetapi memberikan fitur tambahan.
  • Ini adalah layanan yang sangat tersedia.
  • Ini layanan terkelola
  • Anda dapat melampirkan penyimpanan EFS ke Mesin Virtual EC2
  • Dapat diakses oleh beberapa instance EC2 secara bersamaan
  • Sejak 2016.dec.20 dimungkinkan untuk melampirkan penyimpanan EFS Anda secara langsung ke server di lokasi melalui Direct Connect. ()

EBS adalah:

  • Penyimpanan blok (jadi Anda perlu memformatnya). Ini berarti Anda dapat memilih jenis sistem file yang Anda inginkan.
  • Karena ini adalah penyimpanan blok, Anda dapat menggunakan Raid 1 (atau 0 atau 10) dengan beberapa penyimpanan blok
  • Ini sangat cepat
  • Itu relatif murah
  • Dengan pengumuman baru dari Amazon, Anda dapat menyimpan hingga 16TB data per penyimpanan pada SSD-s.
  • Anda dapat memotret EBS (saat masih berjalan) karena alasan cadangan
  • Tapi itu hanya ada di wilayah tertentu. Meskipun Anda dapat memigrasikannya ke wilayah lain, Anda tidak bisa hanya mengaksesnya di seluruh wilayah (hanya jika Anda membaginya melalui EC2; tetapi itu berarti Anda memiliki server file)
  • Anda membutuhkan instance EC2 untuk dilampirkan
  • Fitur baru (2017.Feb.15): Sekarang Anda dapat meningkatkan ukuran volume, menyesuaikan kinerja, atau mengubah jenis volume saat volume sedang digunakan. Anda dapat terus menggunakan aplikasi Anda saat perubahan mulai berlaku.

S3 adalah:

  • Toko objek (bukan sistem file).
  • Anda dapat menyimpan file dan "folder" tetapi tidak dapat memiliki kunci, izin dll seperti yang Anda lakukan dengan sistem file tradisional
  • Ini berarti, secara default Anda tidak bisa hanya memasang S3 dan menggunakannya sebagai server web Anda
  • Tapi itu sempurna untuk menyimpan gambar dan video Anda untuk situs web Anda
  • Sangat bagus untuk pengarsipan jangka pendek (misalnya beberapa minggu). Ini juga baik untuk pengarsipan jangka panjang, tetapi Glacier lebih hemat biaya.
  • Sangat bagus untuk menyimpan log
  • Anda dapat mengakses data dari setiap wilayah (biaya tambahan mungkin berlaku)
  • Sangat Tersedia, Redundan. Pada dasarnya kehilangan data tidak dimungkinkan (daya tahan 99,999999999%, waktu aktif 99,9)
  • Jauh lebih murah daripada EBS.
  • Anda dapat menyajikan konten secara langsung ke internet, Anda bahkan dapat memiliki situs web (statis) penuh yang bekerja langsung dari S3, tanpa instance EC2

Gletser adalah:

  • Penyimpanan arsip jangka panjang
  • Sangat murah untuk menyimpan
  • Berpotensi sangat mahal untuk diambil
  • Butuh waktu hingga 4 jam untuk "membaca kembali" data Anda (jadi hanya simpan item yang Anda tahu tidak perlu diambil untuk waktu yang lama)

Seperti yang disebutkan dalam komentar JDL, ada beberapa aspek menarik dalam hal harga. Misalnya Glacier, S3, EFS mengalokasikan penyimpanan untuk Anda berdasarkan penggunaan Anda, sedangkan di EBS Anda harus menentukan terlebih dahulu penyimpanan yang dialokasikan. Yang berarti, Anda perlu memperkirakan lebih. (Namun mudah untuk menambahkan lebih banyak penyimpanan ke volume EBS Anda, itu membutuhkan beberapa rekayasa, yang berarti Anda selalu "membayar lebih" penyimpanan EBS Anda, yang membuatnya bahkan lebih mahal.)

Sumber: Pembaruan Penyimpanan AWS - Opsi Penyimpanan S3 dengan Biaya Lebih Rendah & Penurunan Harga Gletser

Adam Ocsvari
sumber
8
Gletser sangat mahal jika data perlu dipulihkan dengan cepat liangzan.net/aws-glacier-calculator
Anatoly
6
Tidak setuju bahwa S3lebih murah daripada EBS. Dengan S3Anda hanya dapat memiliki 2000 PUT dan 20 000 DAPATKAN gratis. Dengan EBSAnda memiliki 2 000 000 operasi I / O secara gratis. Inilah QA stackoverflow.com/questions/34048866/…
Green
2
2 000 000 S3 biaya baca ~ 0,4 $, 2 000 000 biaya tulis ~ $ 5 ... Tapi intinya adalah, Anda harus memilih penyimpanan yang tepat untuk tugas tersebut. S3 adalah (kebanyakan) untuk file besar, tidak terlalu sering berubah tetapi banyak diakses yang terbaik. (dengan banyak pengecualian: D)
Adam Ocsvari
2
Perbandingan yang bagus Tetapi satu perbedaan utama lainnya antara EBS dan EFS, adalah EBS adalah jumlah penyimpanan yang tetap. Jadi ya, perbandingan 1 GB berbeda, tetapi mengapa Anda membuat partisi EBS 1GB? Minimal, jika Anda akan membuat partisi 10 GB, maka Anda melihat $ 0,5-1,0 untuk data 1GB yang sama yang disimpan pada data 10GB. Bergantung pada seberapa cepat kebutuhan Anda untuk menyimpan data akan tumbuh dan berapa banyak ruang yang tidak terpakai yang ingin Anda bayar, EFS mungkin merupakan pilihan yang lebih baik.
JDL
3
Juga patut dicatat: EFS saat ini hanya berfungsi dengan Linux, bukan Windows.
Andrew Clark
110

Saya bertanya-tanya mengapa orang tidak menyoroti alasan paling menarik yang mendukung EFS. EFS dapat dipasang pada lebih dari satu instance EC2 secara bersamaan, memungkinkan akses ke file pada EFS pada saat yang sama.

(Edit 2020 Mei, EBS juga mendukung pemasangan ke beberapa EC2 pada saat yang sama, lihat: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html )

Kabeer
sumber
Saya juga. Orang yang mengajukan pertanyaan atau memilih pertanyaan (bukan jawaban) tidak tahu apa perbedaan antara sistem UFS dan NFS.
BMW
5
Demikian pula, ini adalah perbedaan antara menggunakan S3 dan EBS - S3 dan EFS bekerja dengan baik untuk data yang dibagikan di beberapa server, sedangkan EBS tidak.
Geoffrey Wiseman
juga EFS tidak dapat digunakan sebagai asal untuk CDN, S3 lebih baik untuk peran ini. Jika Anda memiliki banyak aset yang perlu ditingkatkan untuk CDN, lebih baik gunakan S3
Moses Liao GZ
71

Memperbaiki perbandingan:

  • S3 adalah fasilitas penyimpanan yang dapat diakses di mana saja
  • EBS adalah perangkat yang dapat Anda pasang ke EC2
  • EFS adalah sistem file yang dapat Anda pasang ke beberapa instance EC2 secara bersamaan

Pada titik ini agak terlalu dini untuk membandingkan EFS dan EBS - kinerja EFS tidak diketahui, juga keandalannya tidak diketahui.

Mengapa Anda menggunakan S3?

  • Anda tidak perlu memiliki file menjadi 'lokal' untuk satu atau lebih instance EC2.
  • (efektif) kapasitas tak terbatas
  • penyajian web bawaan, otentikasi
tedder42
sumber
2
Saya baru-baru ini mengatur volume EFS karena sekarang tersedia di Barat-2. Sepertinya saya mengalami masalah menulis dengan file besar. Misalnya membuat wadah buruh pelabuhan gagal dengan "file terlalu besar" dan membuat sqlite db juga gagal. Tidak memiliki masalah ini pada volume EBS yang saya gunakan. Jadi ya EFS mungkin memiliki masalah kegunaan / keandalan yang perlu "diperbaiki" saat ini.
DKebler
7

Untuk menambah perbandingan: (burst) kinerja baca / tulis pada EFS tergantung pada kredit yang dikumpulkan. Pengumpulan kredit tergantung pada jumlah data yang Anda simpan di sana. Lebih banyak tanggal -> lebih banyak kredit. Itu berarti bahwa ketika Anda hanya membutuhkan beberapa GB penyimpanan yang sering dibaca atau ditulis, Anda akan segera kehabisan kredit dan biaya transfer turun menjadi sekitar 50 kb / dtk. Satu-satunya cara untuk memperbaikinya (dalam kasus saya) adalah dengan menambahkan file dummy besar untuk meningkatkan tingkat kredit yang didapat. Namun lebih banyak penyimpanan -> lebih banyak biaya.

pengguna1677120
sumber
2
Itu gila lambat. Pada awalnya saya pikir ini adalah kesalahan OP, tetapi setelah memeriksa dokumentasi itu benar (pada 2017)
Jakobovski
7

Terlepas dari harga dan fitur, throughput juga sangat bervariasi (seperti yang disebutkan oleh pengguna1677120):

EBS

Diambil dari dokumen EBS :

| EBS volume | Throughput |           Throughput          |
|    type    |   MiB/s    |         dependent on..        |
|------------|------------|-------------------------------|
| gp2 (SSD)  | 128-160    | volume size                   |
| io1 (SSD)  | 0.25-500   | IOPS (256Kib/s per IOPS)      |
| st1 (HDD)  | 20-500     | volume size (40Mib/s per TiB) |
| sc1 (HDD)  | 6-250      | volume size (12Mib/s per TiB) |

Perhatikan, bahwa untuk io1, st1 dan sc1 Anda dapat memecah traffic throughput hingga setidaknya 125Mib / s, tetapi ke 500Mib / s, tergantung pada ukuran volume.

Anda selanjutnya dapat meningkatkan throughput dengan mis. Menggunakan volume EBS sebagai RAID0

EFS

Diambil dari dokumen EFS

| Filesystem |    Base    |   Burst    |
|    Size    | Throughput | Throughput |
|    GiB     |   MiB/s    |   MiB/s    |
|------------|------------|------------|
|         10 |        0.5 |        100 |
|        256 |       12.5 |        100 |
|        512 |       25.0 |        100 |
|       1024 |       50.0 |        100 |
|       1536 |       75.0 |        150 |
|       2048 |      100.0 |        200 |
|       3072 |      150.0 |        300 |
|       4096 |      200.0 |        400 |

Throughput dasar dijamin, throughput meledak menggunakan kredit yang Anda kumpulkan saat berada di bawah throughput dasar (sehingga Anda hanya akan memiliki ini untuk waktu yang terbatas, lihat di sini untuk rincian lebih lanjut.

S3

S3 adalah hal yang sangat berbeda, sehingga tidak dapat dibandingkan dengan EBS dan EFS. Plus: Tidak ada metrik throughput yang dipublikasikan untuk S3. Anda dapat meningkatkan throughput dengan mengunduh secara paralel (saya di suatu tempat membaca AWS menyatakan pada dasarnya Anda akan memiliki throughput tidak terbatas seperti ini), atau menambahkan CloudFront ke dalam campuran

hansaplast
sumber
2

Dengan kata-kata sederhana

Amazon EBS menyediakan penyimpanan tingkat blok.

Amazon EFS menyediakan penyimpanan file bersama yang dilampirkan jaringan.

Amazon S3 menyediakan penyimpanan objek.

Mandrek
sumber
1

EBS adalah penyimpanan level-blok sederhana yang dapat dilampirkan ke instance dari AZ yang sama, dan dapat bertahan terlepas dari instance instance.

Namun, perbedaan yang menarik adalah antara EFS dan S3, dan untuk mengidentifikasi kasus penggunaan yang tepat untuk itu.

Biaya: EFS kira-kira 10 kali lebih mahal dari S3.

Usecases:

  • Setiap kali kami memiliki ribuan contoh yang perlu memproses file secara bersamaan, EFS direkomendasikan lebih dari S3.
  • Perhatikan juga bahwa S3 adalah penyimpanan berbasis objek sedangkan EFS berbasis file, ini menyiratkan bahwa setiap kali kita memiliki persyaratan bahwa file diperbarui terus menerus (di-refresh) kita harus menggunakan EFS.
  • S3 pada akhirnya konsisten sedangkan EFS konsisten kuat. Jika Anda tidak mampu mendapatkan konsistensi akhirnya, Anda harus menggunakan EFS
Tejas
sumber
0

Amazon EBS menyediakan penyimpanan tingkat blok - Digunakan untuk membuat sistem file di atasnya dan menyimpan file. Amazon EFS - sistem penyimpanan bersama yang mirip dengan NAS / SAN. Anda harus memasangnya ke unix server dan menggunakannya. Amazon S3 - Ini adalah penyimpanan berbasis objek di mana setiap item disimpan dengan URL http.

Salah satu perbedaannya adalah - EBS dapat dilampirkan ke 1 instance pada satu waktu dan EFS dapat dilampirkan ke beberapa instance yang mengapa penyimpanan bersama. Penyimpanan objek biasa S2 tidak dapat dipasang.

Suresh Chandra Joshi
sumber
0

EFS & S3 memiliki tujuan yang sama, Anda dapat menyimpan segala jenis objek atau file.

Tetapi bagi saya satu-satunya perbedaan adalah EFS memungkinkan Anda untuk memiliki sistem file tradisional di cloud VM (EC2) dengan lebih banyak fleksibilitas seperti Anda dapat melampirkan ke beberapa instance.

S3, di sisi lain, adalah server fleksibel dan elastis terpisah untuk objek Anda. Dapat digunakan untuk file statis, gambar, video atau bahkan hosting aplikasi statis (js).

EBS jelas untuk penyimpanan blok di mana Anda dapat menginstal OS atau apa pun yang terkait dengan OS Anda.

Marjun
sumber