Apakah Bermanfaat Menggunakan Server MySQL Terpisah?

8

Pertanyaan serupa berubah menjadi sup pendapat di sini : Jadi mungkin tidak ada jawaban 'benar' untuk ini, tapi saya ingin memeriksa dengan masyarakat.

Klien saya akan meluncurkan iklan TV. Mereka mengharapkan lalu lintas di departemen 7 digit selama bulan mendatang. Tugas saya adalah memastikan server tidak jatuh.

Pertanyaan saya: apakah ada baiknya membagi database MySQL ke server terpisah, yang hanya melayani database. Saya kemudian ingin memiliki beberapa server yang berisi basis kode dan melayani apache, berinteraksi dengan kotak database. Semua akan menjadi wadah virtual.

Saya TIDAK (pikir) saya ingin menggunakan beberapa server DB - sepertinya ini akan memperkenalkan kompleksitas yang tidak perlu dan potensi kesalahan / hambatan.

Apakah aku salah? Akan menyambut beberapa pengalaman pendapat tentang ini. Terima kasih.

Jongosi
sumber

Jawaban:

16

Kami telah menggunakan server MySQL terpisah dalam beberapa keadaan di mana toko-toko menghadapi lalu lintas tinggi. Ada beberapa keuntungan untuk itu

  1. Server database khusus dapat disesuaikan dengan kebutuhan spesifik MySQL yang berbeda dari server web
  2. Sangat mudah untuk menambahkan server database kedua (memuat seimbang) ke cluster ketika diperlukan
  3. Ketika database Anda turun, itu tidak crash frontend sehingga Anda dapat menampilkan halaman peringatan atau kesalahan yang layak.

Ketika Magento di-cache dengan benar dengan Varnish atau ekstensi FPC lainnya, hambatan utama akan menjadi basis data dari apa yang saya alami. Kekuatan nyata akan diperlukan untuk database Anda. Dengan cara ini Anda bisa mulai dengan server web yang relatif kecil dan berinvestasi lebih banyak di server database.

Sander Mangel
sumber
13

Keamanan:

Selain jawaban Sander, saya ingin menambahkan bahwa pada tingkat kepatuhan PCI tertentu ini merupakan persyaratan :

Server Web dan Database Terpisah CHD disimpan secara massal di dalam basis data, menjadikannya target bernilai tinggi bagi penyerang. Server database terpisah berarti bahwa akses dapat dikontrol secara ketat (paparan terbatas). Diperlukan oleh Bagian 1 dari PCI DSS.

Sumber: http://www.focusonpci.com/site/index.php/PCI-101/technical-requirements.html

Dengan memisahkan tugas web dan basis data, Anda membatasi eksposur. Biasanya db Anda berada di segmen pribadi jaringan Anda, dan tidak dapat diakses secara publik.

Koneksi VPN statis juga disarankan, dalam PCI, antara web / db Anda dan deteksi intrusi sangat disarankan pada peralatan jaringan Anda. Dalam hal terjadi kompromi, db akan diisolasi dan koneksi VPN diakhiri sehingga, meskipun aplikasi Anda dan kunci enkripsi Anda sekarang dikompromikan, akses ke penyimpanan data telah dikunci dan tidak dapat diakses.

Ketersediaan Tinggi / Pemulihan Bencana:

Sander ada di sini. Pilih dia. Saya akan menambahkan bahwa jika ada tugas pemeliharaan kecil seperti mengambil cadangan sistem file atau dump database Anda, paling banter, akan terbatas pada hanya-baca untuk beberapa waktu. Dalam kasus yang ekstrem, saya telah melihat waktu tunggu tunggu kunci dan proses antrian mengisi bahwa semua koneksi yang tersedia ada dalam antrian atau jatuh. Situs "turun", secara efektif.

Anda dapat mengurangi ini dengan memisahkan db Anda dan menjadwalkan server web Anda untuk menempatkan situs ke dalam mode pemeliharaan selama jendela cadangan ini tanpa konsekuensi apa pun pada sistem file server web.

Philwinkle
sumber
1
Keamanan membuat ini no-brainer, PCI-DSS atau tidak. Seperti halnya data sensitif, harus ada firewall antara sistem yang menghadap ke depan dan basis data.
Nic
0

Saya ingin menambahkan 1 sen, Ketika Lingkungan Produksi dirancang, pertimbangkan untuk memiliki aplikasi dan database di server yang berbeda sebagai aturan praktis. Ini akan memberikan manfaat berikut secara langsung atau langsung:

  • Kinerja keseluruhan lebih baik (Aplikasi Anda memiliki lebih banyak sumber daya)
  • Sistem yang lebih andal (Menghancurkan atau mencekik satu mungkin tidak mempengaruhi yang lain. Tentu saja aplikasi mungkin tidak berfungsi sesuai kebutuhan, tetapi satu komponen)
  • Sumber Daya Khusus sesuai kebutuhan (Anda dapat mengalokasikan CPU / RAM / Penyimpanan ke setiap server sesuai kebutuhan)
  • Keamanan yang lebih baik (hanya dengan pengecualian bahwa Anda mengizinkan koneksi Database di luar mesin Anda, tetapi ini dapat dikurangi dengan pembatasan firewall berbasis alamat IP atau pendekatan serupa)
  • Harus persyaratan untuk mencapai Sangat Tersedia (HA)
  • Sistem Mudah menangani kebutuhan Pemulihan Bencana (DR)
  • Menurut pendapat saya, hanya kerugiannya lebih banyak biaya dan lebih banyak server untuk dikelola.

Terima kasih dan Reagrd, Imran Javed Zia

Imran Javed
sumber