Saya menyadari beberapa perbedaan mendasar antara keduanya, yaitu
EC2 akan menjadi lebih murah
RDS saya tidak perlu melakukan perawatan
Selain kedua, apakah ada keuntungan untuk menjalankan database saya dari RDS sebagai lawan dari server EC2 terpisah yang bertindak sebagai server MySQL. Dengan asumsi ukuran instance yang serupa, apakah keduanya akan mengalami keterbatasan yang sama dalam hal dapat menangani beban?
Untuk memberi Anda sedikit lebih banyak info tentang penggunaan saya, saya punya database, tidak ada yang terlalu besar atau apa pun (tabel terbesar 1 juta baris), volume SELECT tinggi.
mysql
amazon-ec2
amazon-rds
Macgyver
sumber
sumber
Jawaban:
Ini adalah pertanyaan sederhana dengan jawaban yang sangat rumit!
Singkatnya: EC2 akan memberikan kinerja maksimum jika Anda menggunakan RAID0 EBS. Melakukan RAID0 EBS memerlukan biaya overhead perawatan yang cukup signifikan, misalnya:
http://alestic.com/2009/06/ec2-ebs-raid
http://alestic.com/2009/09/ec2-consistent-snapshot
EC2 tanpa RAID0 EBS akan memberikan kinerja I / O jelek, sehingga bahkan bukan pilihan.
RDS akan memberikan kinerja yang sangat baik (meskipun tidak maksimal) di luar kotak. Konsol manajemen fantastis dan mudah untuk memutakhirkan instance. Ketersediaan tinggi dan hanya budak yang dibaca hanya dengan sekali klik. Ini SANGAT mengagumkan.
Jawaban singkat: Gunakan RDS. Masih di pagar? Pergilah dengan RDS !!! jika Anda menikmati sakit kepala dan menyetel setiap bit terakhir untuk kinerja maksimum, maka Anda dapat mempertimbangkan EC2 + EBS RAID 0. Vanilla EC2 adalah opsi yang mengerikan untuk hosting MySQL.
sumber
Dalam posting ini ada patokan yang sangat baik antara:
Benchmark ini sangat bagus karena tidak fokus hanya dalam kondisi ideal (hanya satu utas) tetapi juga dalam skenario yang lebih realistis, dengan 50 utas menghantam basis data.
sumber
RDS sebenarnya bukan sistem ketersediaan tinggi. Baca cetakan kecil di faq RDS. Selama acara failover, butuh waktu hingga 3 menit untuk failover. Amazon tambahan akan memutuskan perlu "memutakhirkan" instance rds Anda dan melakukan failover pada saat itu yang akan menurunkan basis data Anda selama "hingga 3 menit" (pengalaman kami adalah bahwa hal itu bisa memakan waktu lebih lama dari itu).
Ketersediaan tinggi RDS sangat berbeda dari replikasi master - master atau master - slave dan jauh lebih lambat. Mereka tidak menggunakan replikasi mysql tetapi menggunakan semacam replikasi ebs. Jadi dalam situasi failover itu akan me-mount ebs pada mesin cadangan, mulai mysql, tunggu mysql untuk melakukan kegagalan memulihkan (mudah-mudahan tidak ada yang rusak terlalu buruk), kemudian lakukan dns switch.
Saya harap ini membantu Anda dengan evaluasi Anda.
sumber
Kami memilih untuk menggunakan instance MySQL EC2 karena kami memiliki volume baca yang tinggi dan perlu replikasi master-slave. Tentu saja, Anda dapat memutar beberapa instance RDS dan mengatur replikasi MySQL di antara mereka sendiri, tetapi kami menggunakan Scalr.net, yang mengelola itu untuk Anda menggunakan instance EC2.
Pada dasarnya, kami hanya memberi tahu Scalr berapa banyak contoh MySQL yang kami inginkan untuk mempertahankannya, mengotomatiskan pengaturan replikasi, menangani kegagalan otomatis dari promosi budak untuk dikuasai jika master dihentikan, dll. Ia melakukan backup cadangan SQL dan snapshot volume EBS dari tuan. Jadi, ketika perlu membuat budak baru, secara otomatis untuk sementara memasang volume EBS dari snapshot master terakhir untuk menginisialisasi DB budak, kemudian mulai replikasi dari titik yang sesuai. Semua point dan klik :) (dan tidak, saya tidak bekerja untuk Scalr atau apa pun. Scalr tersedia sebagai Open Source jika Anda tidak ingin menggunakan layanan mereka)
sumber
Mengenai pertanyaan jendela pemeliharaan. Jika Anda menggunakan Multi-AZ maka RDS akan membuat replika siaga di zona ketersediaan lain sehingga tidak ada waktu henti untuk pemeliharaan dan Anda melindungi diri terhadap kegagalan zona.
Itulah yang saya rencanakan untuk dilakukan pada minggu depan atau lebih. Tentu saja itu akan dikenakan biaya lebih banyak tetapi saya belum mengusahakannya.
sumber
MySQL pada EC2 vs RDS MySQL
Keuntungan MySQL di EC2 Amazon EC2 Antar Wilayah Replikasi
Salin Foto di seluruh wilayah Amazon EC2
RAID 0 dengan EBS Striping di MySQL EC2
Lebih dari 3TB ruang Disk (Anda tidak perlu ini untuk ukuran Anda) dapat dilampirkan di MySQL pada EC2.
Kerugian MySQL pada EC2
Konfigurasi, Pemantauan dan Pemeliharaan dibandingkan dengan RDS
Arahkan cadangan waktu yang tersedia dalam RDS
IOPS lebih rendah dari RDS MySQL (bahkan setelah RAID 0) saat ini, 10800 dengan 6 disk untuk MySQL pada EC2 sedangkan 12500 IOPS 16KB pada RDS MySQL
sumber
Saya telah mencoba RDS selama beberapa bulan dan berikut adalah beberapa masalah yang saya miliki:
Menggunakan SQL profiler itu rumit. Karena Anda tidak dapat menghubungkan profiler secara langsung ke server, Anda harus menjalankan beberapa prosedur tersimpan untuk membuat file log yang dapat Anda analisis. Meskipun mereka menawarkan beberapa saran tentang bagaimana hal itu dilakukan, itu jauh dari ramah pengguna. Saya hanya akan merekomendasikan bahwa Anda memiliki profesional SQL bersertifikat melakukan pekerjaan semacam ini.
sementara Amazon mencadangkan instance Anda, Anda tidak dapat memulihkan basis data individual. Saya memiliki aplikasi web dengan beberapa database khusus pelanggan yang terpisah dan solusi saya adalah meluncurkan instance EC2 dengan SQL yang berjalan di atasnya untuk melampirkan ke database RDB produksi dan mengimpor data dan kemudian mencadangkannya pada instance EC2. Solusi lain adalah dengan menggunakan alat pihak ke-3 yang membuat skrip SQL besar-besaran (di server aplikasi) yang akan menciptakan kembali skema dan mengisi data kembali ke titik pemulihan.
sumber
Saya memiliki pertanyaan yang sama akhir pekan ini. Ada jendela downtime 4 jam per minggu untuk RDS tempat mereka melakukan pemeliharaan. RDS tampak lebih mahal jika Anda bisa lolos dengan mikro instance EC2. (Ini berlaku untuk instance uji yang memiliki lalu lintas minimum) Saya juga tidak dapat mengubah zona waktu instance RDS karena saya tidak memiliki izin.
Saya sekarang benar-benar melihat http://xeround.com/ yang merupakan mysql di EC2 oleh perusahaan lain. Mereka tidak menggunakan InnoDB, tetapi mereka memiliki mesin sendiri yang disebut IDG. Saya baru saja mulai menyelidiki itu tetapi mereka berada di BETA dan akan memberikan ruang 500MB.
sumber