Bagaimana cara kerja cadangan / snapshot Amazon RDS?

94

Saya adalah pelanggan Amazon RDS dan mengalami lonjakan latensi tulis Amazon RDS harian, yang secara kasar berhubungan dengan jendela cadangan. Saya juga akan melihat lonjakan di akhir snapshot (contoh kasus: menjalankan snapshot membutuhkan waktu appx 1 jam, dan dalam 5 menit terakhir, tulis lonjakan latensi). Saya menjalankan penerapan multi-AZ m1.large.

Apakah ada orang di Stack yang bisa menjelaskan bagaimana Amazon RDS cadangan sebenarnya bekerja? Saya telah membaca dokumen Amazon RDS, dan sejauh yang saya tahu, Amazon RDS tidak berperilaku sesuai dengan spesifikasi. Secara khusus, operasi pencadangan / snapshot ini harus mengenai replika saya, dan oleh karena itu tidak menyebabkan downtime / kinerja apa pun, atau begitulah yang saya kira.

Saya dapat menyaring masalah saya menjadi enam pertanyaan:

  • Apa yang secara teknis terjadi selama snapshot dan backup, dan apa perbedaannya? (Jika Anda menjawab pertanyaan ini, tolong beri tahu saya jika Anda dapat mengkonfirmasi jawaban Anda secara empiris, atau hanya mengutip dokumentasi saya).
  • Apakah lonjakan latensi tulis akan terjadi selama jendela pencadangan pada penerapan multi-AZ?
  • Apakah lonjakan latensi tulis diharapkan terjadi di akhir snapshot pada penerapan multi-AZ?
  • Apakah lonjakan latensi tulis saya akan lebih tinggi jika saya bukan multi-AZ?
  • Secara arsitektural, apakah saya dapat menghindari lonjakan latensi tulis ini jika saya meluncurkan database saya sendiri yang berjalan pada dua instans EC2 m1.large?
  • Apakah ada konfigurasi yang dapat saya gunakan yang akan menghindari lonjakan latensi tulis ini saat masih menghosting DB saya dengan RDS, atau apakah saya secara efektif bergantung pada belas kasihan Amazon?

Pertanyaan Bonus: di mana dan bagaimana Anda meng-host database mysql Anda?

Saya dapat mengatakan bahwa saya secara umum senang dengan RDS kecuali untuk masalah latensi tulis harian ini. Saya suka pemantauan database bawaan dan cukup mudah untuk disiapkan dan dijalankan.

Terima kasih!

latensi tulis amazon RDS

esilver
sumber

Jawaban:

78

Kami juga menjalankan beberapa instance RDS, selain MySQL di beberapa mesin yang kami kelola sendiri. Saya tidak dapat berkomentar secara khusus, karena saya bukan insinyur Amazon, tetapi beberapa hal yang telah saya pelajari yang mungkin menjelaskan apa yang Anda lihat:

  • Meskipun Amazon tidak membagikan detail backend 100%, kami sangat curiga bahwa mereka menggunakan sistem EBS mereka untuk mendukung database RDS.

  • Artikel ini membantu menjelaskan batasan EBS dan fungsionalitas snapshot http://blog.rightscale.com/2008/08/20/amazon-ebs-explained/ Sekali lagi, meskipun tidak eksplisit, masuk akal bagi Amazon untuk menggunakan infrastruktur ini untuk menyediakan layanan RDS.

  • Biasanya, cadangan MySQL, berbeda dengan snapshot, melibatkan penggunaan alat seperti mysqldump untuk membuat file pernyataan SQL yang kemudian akan mereproduksi database. Database tidak perlu dibekukan untuk melakukan ini. Dengan backend EBS, praktik terbaiknya adalah membekukan database (menghentikan sementara semua transaksi) saat Anda melakukan snapshot untuk menghindari kerusakan data.

  • Paku yang Anda lihat di ujung jendela cadangan. Jika replikasi dihentikan sementara oleh Amazon selama snapshot replika Anda, replika tersebut kemudian perlu "mengejar" transaksi ketika snapshot selesai. Ini akan menyebabkan lonjakan latensi.

  • Replikasi di seluruh penerapan multi-AZ secara inheren lebih lambat daripada penerapan AZ tunggal. Harga yang Anda bayarkan untuk redundansi yang lebih baik.

Joshua
sumber
7
Saya dapat mengonfirmasi bahwa Amazon RDS menggunakan EBS sebagai penyimpanan dukungan untuk database RDS-nya. Grafik Read Latency dan Write Latency di RDS Cloudwatch secara efektif menggambarkan sebuah instance EBS. Terima kasih atas jawaban ini, masuk akal.
esilver
1
Amazon membagikan lebih banyak detail dalam mayat mayat mati mereka di
Joshua
@Joshua apakah Anda memiliki pendapat tentang topik (agak terkait) ini? stackoverflow.com/questions/6799371/… Terima kasih!
esilver
jika menggunakan replika baca, apakah hal itu akan memengaruhi replika master?
Matej
1
Dokumentasi AWS sekarang menyatakan bahwa "Pembekuan I / O singkat, biasanya berlangsung beberapa detik, terjadi selama pencadangan otomatis dan operasi snapshot DB pada instans DB Single-AZ". docs.aws.amazon.com/AmazonRDS/latest/UserGuide/…
baxang