Saya tidak jelas tentang manfaat apa yang saya dapatkan dari EBS vs. instance-store untuk mesin virtual saya di Amazon EC2. Jika ada, tampaknya EBS jauh lebih berguna (berhenti, mulai, bertahan + kecepatan yang lebih baik) dengan perbedaan biaya yang relatif kecil ...? Juga, apakah ada metrik apakah lebih banyak orang menggunakan EBS sekarang tersedia, mengingat masih relatif baru?
amazon-ec2
amazon-web-services
amazon-ebs
HelloWorldy
sumber
sumber
Jawaban:
Intinya adalah Anda harus hampir selalu menggunakan instance yang didukung EBS.
Inilah sebabnya
Saya pengguna berat Amazon dan mengalihkan semua instans saya ke penyimpanan yang didukung EBS segera setelah teknologi keluar dari beta. Saya sangat senang dengan hasilnya.
EBS masih bisa gagal - bukan peluru perak
Perlu diingat bahwa setiap bagian dari infrastruktur berbasis cloud dapat gagal kapan saja. Rencanakan infrastruktur Anda sesuai kebutuhan. Sementara instance yang didukung EBS memberikan tingkat daya tahan tertentu dibandingkan dengan instance penyimpanan sesaat, mereka dapat dan memang gagal. Miliki AMI dari mana Anda dapat meluncurkan mesin virtual baru sesuai kebutuhan di zona ketersediaan apa pun, buat cadangan data penting Anda (mis. Basis data), dan jika anggaran Anda memungkinkan, jalankan beberapa mesin virtual server untuk penyeimbangan beban dan redundansi (idealnya di berbagai zona ketersediaan) ).
Kapan Tidak
Pada beberapa titik waktu, mungkin lebih murah untuk mencapai IO yang lebih cepat di Instance Store. Ada saat ketika itu memang benar. Sekarang ada banyak pilihan untuk penyimpanan EBS, melayani banyak kebutuhan. Opsi dan harganya terus berkembang seiring perubahan teknologi. Jika Anda memiliki banyak contoh yang benar-benar sekali pakai (mereka tidak banyak mempengaruhi bisnis Anda jika mereka pergi begitu saja), lakukan perhitungan biaya dan kinerja. Mesin virtual yang didukung EBS juga bisa mati kapan saja, tetapi pengalaman praktis saya adalah bahwa EBS lebih tahan lama.
sumber
99% pengaturan AWS kami dapat didaur ulang. Jadi bagi saya itu tidak masalah jika saya menghentikan sebuah contoh - tidak ada yang hilang. Misalnya aplikasi saya secara otomatis digunakan pada instance dari SVN, log kami ditulis ke server syslog pusat.
Satu-satunya manfaat penyimpanan instan yang saya lihat adalah penghematan biaya. Jika tidak, mesin virtual yang didukung EBS akan menang. Eric menyebutkan semua kelebihannya.
[2012-07-16] Saya akan mengucapkan jawaban ini sangat berbeda hari ini.
Saya belum memiliki pengalaman yang baik dengan contoh yang didukung EBS dalam setahun terakhir ini. Downtime terakhir pada AWS cukup banyak menghancurkan EBS juga.
Saya menduga bahwa layanan seperti RDS menggunakan beberapa jenis EBS juga dan yang tampaknya berfungsi sebagian besar. Dalam hal kami mengelola diri kami sendiri, kami telah menyingkirkan EBS jika memungkinkan.
Menyingkirkan perluasan tempat kami memindahkan cluster basis data kembali ke besi (= perangkat keras nyata). Satu-satunya bagian yang tersisa di infrastruktur kami adalah server DB tempat kami membagi beberapa volume EBS ke dalam RAID perangkat lunak dan mencadangkan dua kali sehari. Apa pun yang akan hilang di antara cadangan, kita bisa hidup dengannya.
EBS adalah teknologi yang agak flakey karena pada dasarnya volume jaringan: volume yang terpasang ke server Anda dari jarak jauh. Saya tidak meniadakan pekerjaan dilakukan dengan itu - itu adalah produk yang luar biasa karena pada dasarnya terbatas gigih penyimpanan hanya sebuah API panggilan jauhnya. Tapi itu hampir tidak cocok untuk skenario di mana kinerja I / O adalah kuncinya.
Dan di samping bagaimana perilaku penyimpanan jaringan, semua jaringan dibagi pada instance EC2. Semakin kecil instance (mis. T1.micro, m1.small) semakin buruk karena antarmuka jaringan Anda pada sistem host yang sebenarnya dibagi di antara banyak VM (= instance EC2 Anda) yang berjalan di atasnya.
Semakin besar contoh yang Anda dapatkan, semakin baik tentu saja. Lebih baik di sini berarti masuk akal .
Ketika kegigihan dibutuhkan, saya akan selalu menyarankan orang untuk menggunakan sesuatu seperti S3 untuk memusatkan antara contoh. S3 adalah layanan yang sangat stabil. Kemudian, otomatiskan pengaturan instance Anda ke titik di mana Anda dapat mem-boot server baru dan siap dengan sendirinya. Maka tidak perlu memiliki penyimpanan jaringan yang hidup lebih lama dari instance.
Jadi semuanya, saya tidak melihat manfaat untuk contoh yang didukung EBS apa pun. Saya lebih suka menambahkan satu menit ke bootstrap, kemudian jalankan dengan SPOF potensial.
sumber
Kami menyukai toko contoh. Ini memaksa kita untuk membuat instance kita sepenuhnya dapat didaur ulang, dan kita dapat dengan mudah mengotomatiskan proses membangun server dari awal pada AMI yang diberikan. Ini juga berarti kita dapat dengan mudah menukar AMI. Juga, EBS masih memiliki masalah kinerja dari waktu ke waktu.
sumber
Eric cukup berhasil. Kami ( Bitnami ) adalah penyedia populer AMI gratis untuk aplikasi populer dan kerangka kerja pengembangan (PHP, Joomla, Drupal, Anda mendapatkan ide). Saya dapat memberi tahu Anda bahwa AMI yang didukung EBS secara signifikan lebih populer daripada yang didukung S3. Secara umum saya pikir contoh yang didukung s3 digunakan untuk pekerjaan terdistribusi, waktu terbatas (misalnya, pengolahan data skala besar) di mana jika satu mesin gagal, yang lain hanya berputar. AMIS yang didukung EBS cenderung digunakan untuk tugas-tugas server 'tradisional', seperti server web atau database yang menjaga keadaan secara lokal dan dengan demikian memerlukan data yang akan tersedia jika terjadi gangguan.
Satu aspek yang saya tidak lihat disebutkan adalah fakta bahwa Anda dapat mengambil snapshot dari instance yang didukung EBS saat berjalan, secara efektif memungkinkan Anda untuk memiliki cadangan infrastruktur Anda yang sangat hemat biaya (snapshot berbasis blok dan tambahan)
sumber
Saya memiliki pengalaman yang sama persis seperti Eric di posisi terakhir saya. Sekarang di pekerjaan baru saya, saya akan melalui proses yang sama yang saya lakukan di pekerjaan terakhir saya ... membangun kembali semua AMI mereka untuk instance yang didukung EBS - dan mungkin sebagai mesin 32bit (lebih murah - tetapi tidak dapat menggunakan AMI yang sama pada 32 dan 64 mesin).
Mesin virtual yang didukung EBS diluncurkan dengan cukup cepat sehingga Anda dapat mulai menggunakan Amazon AutoScaling API yang memungkinkan Anda menggunakan metrik CloudWatch untuk memicu peluncuran mesin virtual tambahan dan mendaftarkannya ke ELB (Elastic Load Balancer), dan juga untuk mematikannya saat tidak lagi dibutuhkan.
Semacam ini autoscaling dinamis adalah apa AWS adalah semua tentang - di mana penghematan nyata dalam infrastruktur TI dapat ikut bermain. Cukup mustahil untuk melakukan autoscaling langsung dengan instance yang didukung s3 "InstanceStore" lama.
sumber
Saya baru mulai menggunakan EC2 sendiri jadi bukan ahli, tetapi dokumentasi Amazon sendiri mengatakan:
Tekankan milikku.
Saya melakukan lebih banyak analisis data daripada web hosting, jadi kegigihan tidak terlalu penting bagi saya dibandingkan dengan situs web. Mengingat perbedaan yang dibuat oleh Amazon sendiri, saya tidak akan menganggap bahwa EBS tepat untuk semua orang.
Saya akan mencoba mengingat untuk menimbang lagi setelah saya menggunakan keduanya.
sumber
EBS seperti disk virtual VM:
Penyimpanan instan adalah:
Di sinilah tempat masing-masing digunakan:
sumber
Kebanyakan orang memilih untuk menggunakan instance yang didukung EBS karena statusnya stateful. Ini lebih aman karena segala sesuatu yang Anda jalankan dan instal di dalamnya, akan bertahan stop / stop atau kegagalan instance.
Instance store tidak memiliki kewarganegaraan, Anda kehilangan semua data di dalamnya jika ada situasi kegagalan misalnya. Namun, ini gratis dan lebih cepat karena volume instance terikat ke server fisik tempat VM berjalan.
sumber
Untuk seseorang yang baru dengan semua ini dan jika tidak sengaja mendarat di sini
Sampai sekarang semua AMI di bagian quickstart didukung EBS
Juga ada penjelasan yang bagus di dokumen resmi untuk perbedaan antara EBS dan toko Instance
& gambar ini meringkasnya
sumber
Jika Anda menjalankan beberapa instance dan menetapkan layanan terjadwal AWS Instance sebagai salah satu prioritas Anda untuk Menghindari Biaya Tak Terduga , saya akan merekomendasikan untuk tidak menggunakan instance-store .
Selain itu, untuk skema semacam ini juga tidak ada manfaatnya menggunakan EBS Backed pada Elastic Beanstalk karena dirancang untuk memastikan bahwa semua sumber daya yang Anda butuhkan tetap berjalan . Itu akan selalu melakukan secara otomatis meluncurkan kembali layanan yang Anda hentikan. Meninjau semua sisanya , dari total biaya penggunaan VPC , EBS , dan ELB yang ditambahkan ke EC2-Classic , EC2-VPC dengan ELB sebagian besar merupakan pilihan terbaik di mana tidak seperti pada EC2-Classic , instance yang dihentikan mempertahankan Elastic yang terkait. Alamat IPdan volume EBS disimpan secara otomatis.
Sebagai kesimpulan , ambil bagian utama dari pertanyaan Anda:
Jawabannya adalah ya tetapi jika instance Anda berbasis EBS, itu bisa dihentikan. Itu akan tetap di akun Anda , Anda tidak akan dikenakan biaya untuk itu . Anda hanya akan menagih volume tetapi EBS dibebankan per jam . Anda juga dapat mempertimbangkan bahwa di antara semua jenis yang tersedia, Anda memiliki fleksibilitas untuk Mengubah Ukuran Volume EBS .
Selain manfaat yang telah terdaftar oleh Eric , harus juga diketahui bahwa dalam hal biaya S3 mungkin atau mungkin tidak lebih murah daripada EBS . Saya setuju bahwa perbedaannya relatif kecil dalam biaya jika Anda tetap menjalankan kedua jenis instance dalam platform dan arsitektur aplikasi yang sama sepanjang waktu.
Namun jika ada skenario untuk menjalankan aplikasi pada layanan dengan biaya lebih rendah, tarik semua tugas yang tidak ditangani dan peran mereka ke VPC / EBS melalui pipa atau lambda dalam waktu singkat, katakan <1 jam sehari, yang tidak mungkin dilakukan ketika Anda menggunakan toko contoh , maka itu akan menjadi cerita yang berbeda.
sumber