MySQL yang dikelola sendiri vs Cloud SQL untuk MySQL

MySQL adalah salah satu database relasional open source paling populer di dunia. Salah satu alasan popularitasnya adalah kemampuan untuk menghosting dan mengelola database dengan banyak cara yang sesuai dengan persyaratan workload pengguna. Pengguna dapat memilih antara menyiapkan database untuk dikelola sendiri secara lokal, dikelola sendiri dalam virtual machine di cloud, atau menggunakan penawaran yang terkelola sepenuhnya dari penyedia cloud. Artikel ini berfokus pada opsi MySQL yang dikelola sendiri dan solusi terkelola sepenuhnya, Cloud SQL untuk MySQL, yang disediakan oleh Google Cloud. Kelebihan dan kekurangan setiap opsi akan dibahas.

MySQL yang dikelola sendiri

Opsi MySQL yang dikelola sendiri berarti bahwa pengguna, dalam banyak kasus administrator database, bertanggung jawab atas sebagian besar aktivitas yang tercakup dalam penyiapan, penginstalan, konfigurasi dan pemeliharaan database, sistem operasi (OS), jaringan, penyimpanan, instance virtual machine (VM), dan hardware, yang menghosting server dan instance database. Beberapa tugas ini, seperti tugas hardware, instance VM, penyimpanan, jaringan, dan sistem operasi, dapat lebih mudah diselesaikan dengan memanfaatkan penyedia layanan cloud seperti Google Cloud. Terlepas dari apakah pengguna mengelola sendiri database secara lokal atau mengelola sendiri di cloud, mereka bertanggung jawab atas beberapa tugas pengelolaan database utama yang diperlukan agar sistem berjalan dengan lancar. Tugas-tugas tersebut tercantum di bawah ini.

  • Ketersediaan: Komponen hardware dan software pasti akan gagal. Namun, tanggung jawab untuk merancang sistem sedemikian rupa sehingga toleran terhadap kegagalan hardware dan software serta memastikan ketersediaan database, server, dan aplikasi yang berkelanjutan ada di tangan pengguna.  
  • Pemeliharaan database: Dalam opsi MySQL yang dikelola sendiri, pengguna harus terus memperbarui berbagai lapisan stack aplikasi dengan versi software terbaru, membuat keputusan tentang dukungan akhir siklus proses, juga hardware, sistem operasi, dan software lainnya dengan versi lama atau tidak didukung. Selain itu, pengguna perlu menginstal patch software, OS, dan MySQL secara rutin sambil menjaga database tetap aktif dan berjalan tanpa gangguan besar.
  • Skalabilitas: Seiring meningkatnya penggunaan aplikasi dari waktu ke waktu, kebutuhan akan performa database yang lebih baik juga meningkat. Demikian pula, untuk mendukung workload atau basis pelanggan yang besar, skala resource hardware perlu ditingkatkan atau disebarkan. Untuk MySQL yang dikelola sendiri, tanggung jawab ini ada pada pengguna. Penskalaan resource hardware di lingkungan lokal merupakan aktivitas yang sangat memakan waktu dan kompleks, yang terkadang menyebabkan periode nonaktif sistem.
  • Keamanan: Akhir-akhir ini, keamanan telah menjadi aspek terpenting yang mencakup berbagai lapisan sistem database, dari mengamankan hardware secara fisik hingga mengonfigurasi firewall jaringan, mengamankan koneksi database, dan lainnya. Untuk kasus penyiapan yang dikelola sendiri, semua itu adalah aktivitas kompleks yang memerlukan upaya signifikan dan keahlian khusus.
  • Pemantauan: Selain penyiapan, penginstalan, dan konfigurasi MySQL, pengguna juga harus mengkhawatirkan pemantauan berbagai komponen di semua lapisan stack, seperti pemantauan di tingkat hardware, OS, MySQL, dan mengambil tindakan korektif jika terjadi kegagalan.

Diagram di bawah menunjukkan tanggung jawab pengguna saat memilih penyiapan yang dikelola sendiri. Meskipun pengelolaan mandiri di Google Cloud mengurangi beberapa tugas terkait hardware, komputasi, jaringan, dan penyimpanan, pengguna tetap bertanggung jawab atas pengelolaan lapisan stack yang tersisa. Administrator database dan developer aplikasi masih harus menghabiskan waktu, energi, dan resource yang cukup untuk mengelola MySQL.

Gambar yang menampilkan semua tanggung jawab administrator database adalah hosting database yang dikelola sendiri

Apa itu Cloud SQL untuk MySQL?

Cloud SQL adalah layanan database terkelola sepenuhnya yang menawarkan kemudahan penggunaan untuk konfigurasi penyiapan, pemeliharaan, pengelolaan, dan administrasi database MySQL, PostgreSQL, dan SQL Server di Google Cloud. Cloud SQL mengelola semua aspek hardware, jaringan, OS, keamanan, pemantauan, pemeliharaan, ketersediaan, dan penskalaan database MySQL. Semua tanggung jawab ini disamarkan dari pengguna, sehingga mereka dapat berfokus pada pengembangan aplikasi dan memberikan nilai kepada pelanggan mereka.

Diagram di bawah ini mirip dengan diagram di atas yang menunjukkan beberapa tugas yang tercakup ketika mengelola berbagai lapisan database MySQL, dengan satu-satunya perbedaan adalah bahwa semua tugas yang dikelola Cloud SQL atas nama pengguna diilustrasikan dengan warna biru.

Gambar untuk hosting database yang terkelola sepenuhnya

Selain mengelola banyak tugas yang diilustrasikan di atas, Cloud SQL menawarkan berbagai fitur dan solusi yang tidak tersedia secara native di lingkungan yang dikelola sendiri. Beberapa fitur utama yang ditawarkan Cloud SQL tercantum di bawah ini.

Keandalan: Pencadangan dan pemulihan adalah aktivitas paling penting dalam pengelolaan database. Cloud SQL menawarkan pencadangan otomatis dan pencadangan on-demand yang dapat digunakan untuk memulihkan database ke titik waktu jika terjadi kerusakan, bencana, atau perubahan data yang tidak diinginkan. 

Ketersediaan: Cloud SQL memberikan ketersediaan tinggi dengan membuat instance beberapa server yang menghosting database di beberapa zona dengan kemampuan failover otomatis untuk memberikan ketersediaan tinggi jika terjadi kegagalan VM atau pusat data. Cloud SQL menjamin lebih dari 99,95% ketersediaan di mana saja di seluruh dunia.

Selain fitur ketersediaan tinggi, Cloud SQL juga menawarkan tim Site Reliability Engineering (SRE) 24x7 yang bertanggung jawab memastikan keandalan instance database Cloud SQL untuk MySQL di Google Cloud.

Replika baca lintas region adalah fitur lain yang dapat digunakan sebagai mekanisme pemulihan dari bencana jika terjadi kegagalan. Dengan begitu, pengguna dapat dengan cepat memunculkan database yang terkena dampak di situs (region) lain tanpa gangguan yang berarti bagi bisnis. 

Skalabilitas: Cloud SQL menawarkan pembuatan replika baca MySQL, seperti instance MySQL hanya baca tambahan, di region yang sama atau di region terpencil yang memungkinkan layanan permintaan dari replika, serta instance utama, sehingga memberikan performa baca yang lebih baik. Replika baca juga dapat digunakan untuk tujuan pelaporan dan dapat dihancurkan setelah kebutuhan bisnis terpenuhi.

Cloud SQL dapat meningkatkan skala resource (CPU, memori, dan penyimpanan) serta memperkecil skala resource pada instance MySQL dengan periode nonaktif yang sangat minimal. Sedangkan dalam kasus penyiapan yang dikelola sendiri, aktivitas rumit ini memerlukan upaya, keahlian, dan perencanaan yang signifikan. 

Keamanan: Server database Cloud SQL untuk MySQL berada di pusat data yang diamankan oleh Google Cloud dan memastikan tingkat keamanan tertinggi. Selain itu, Google Cloud menawarkan konektivitas pribadi dengan Virtual Private Cloud dan akses jaringan yang dikontrol pengguna dengan perlindungan firewall, yang memastikan server database pengguna berada di luar jangkauan pihak yang berniat jahat.

Aspek keamanan lainnya adalah kepatuhan terhadap peraturan keamanan. Cloud SQL mematuhi banyak peraturan yang diakui, seperti SSAE 16, ISO 27001, PCI DSS, dan HIPAA. 

Cloud SQL menawarkan kemampuan untuk mengelola pengguna dan akses mereka ke database melalui integrasi IAM. Integrasi ini mengelola otorisasi dan autentikasi untuk pengguna Google Cloud serta memberikan akses terperinci ke resource Google Cloud tertentu, sehingga mencegah akses tanpa izin ke database. Selain itu, Cloud SQL memudahkan kontrol akses dan identitas dengan menyediakan peran standar yang dirancang untuk mengontrol akses ke resource Cloud SQL Anda

Fitur keamanan Cloud SQL lainnya adalah enkripsi data dalam penyimpanan maupun dalam pengiriman, yang memastikan tidak ada pengguna tanpa izin yang dapat mengakses data pengguna.

Cloud SQL menawarkan fitur validasi sandi untuk pengguna database, yang memungkinkan pelanggan menentukan kebijakan sandi untuk kompleksitas sandi, panjang sandi minimum, interval perubahan sandi, dan penggunaan nama pengguna pada sandi di tingkat instance. Pelanggan juga dapat menentukan kebijakan untuk hari habis masa berlaku sandi, jumlah upaya login yang gagal, dan persyaratan perubahan sandi lama di tingkat pengguna perorangan. Fitur-fitur di Cloud SQL ini memberikan praktik terbaik kepatuhan keamanan dan mengurangi risiko akses tanpa izin ke data penting.

Cloud SQL juga menyediakan cara untuk mengaudit tindakan dan operasi di database MySQL menggunakan plugin log audit. Log audit memberikan data tentang siapa yang melakukan, tindakan apa, di objek mana, dan kapan. Pengauditan database memungkinkan Anda melacak tindakan pengguna tertentu dalam database, seperti update tabel, kueri yang telah dibaca, pemberian hak istimewa pengguna, dan lainnya. 

Kemampuan observasi: Cloud SQL menawarkan berbagai solusi pemantauan dan memiliki daftar metrik siap pakai yang terus bertambah, yang memberikan insight tentang status database. Pengguna dapat menggunakan metrik untuk membuat pemberitahuan agar administrator tetap mengetahui kondisi database. 

Cloud SQL juga menyediakan fitur seperti Query Insights dan pemberi rekomendasi, sehingga pengguna dapat memecahkan masalah dan mengidentifikasi bottleneck performa kueri atau workload. Fitur-fitur ini sulit untuk ditiru di lingkungan MySQL yang dikelola sendiri.

Integrasi: Cloud SQL menawarkan konektivitas dan integrasi jaringan yang mudah dengan layanan lain dalam Google Cloud seperti Google Kubernetes Engine, Compute Engine, dan Cloud Run yang memudahkan pengembangan solusi yang terintegrasi secara mendalam. Cloud SQL juga menawarkan integrasi native dengan BigQuery dan Looker yang dapat digunakan untuk pemrosesan analisis data yang ada di Cloud SQL.

Patching: Sebagai layanan terkelola, Cloud SQL otomatis mengupdate instance untuk memastikan hardware dan sistem operasi yang mendasarinya dapat diandalkan, berperforma tinggi, aman, dan selalu diupdate. Sebagian besar update ini dilakukan saat instance Cloud SQL aktif dan berjalan. Namun, update sistem tertentu mungkin menimbulkan gangguan layanan singkat, sehingga pengguna dapat menentukan masa pemeliharaan untuk aktivitas upgrade. 

Upgrade versi: Cloud SQL juga menyediakan proses otomatis untuk mengupgrade versi database (MySQL). Pengguna juga dapat mengupgrade versi utama dengan memigrasikan data ke instance dengan versi yang lebih tinggi.  

Bagaimana cara membuat instance database MySQL di Cloud SQL untuk MySQL?

Kelebihan dan kekurangan MySQL yang dikelola sendiri

Kelebihan

  1. Kemampuan untuk menggunakan fork MySQL apa pun dari ekosistem MySQL seperti MariaDB atau Percona untuk menyiapkan MySQL.
  2. Fleksibilitas dalam konfigurasi dan penyiapan MySQL karena pengguna memiliki kontrol penuh atas instance, resource, dan sistem operasi. Selain itu, pengguna dapat menggunakan OS pilihan mereka, mengonfigurasi OS sesuka hati, dan mengonfigurasi MySQL sesuai kebutuhan, tanpa batasan apa pun.
  3. Pengguna tidak dibatasi oleh batasan Cloud SQL, misalnya ukuran penyimpanan maksimum 64 TB. Pengguna dapat melebihi batas penyimpanan 64 TB dan menggunakan infrastruktur komputasi yang jauh lebih tinggi untuk menghosting MySQL.
  4. Pengguna memiliki akses penuh ke instance MySQL, termasuk hak istimewa SUPER, dan akses lengkap ke sistem operasi, termasuk izin sudo.
  5. Pengguna dapat menyiapkan topologi replikasi dan ketersediaan tinggi sesuai dengan kebutuhan mereka, meskipun tidak didukung di Cloud SQL.  

Kekurangan

  1. Pengguna bertanggung jawab mengelola infrastruktur hardware, jaringan, dan operasi pusat data yang kompleks di lingkungan lokal. Bahkan saat mengelola sendiri MySQL di cloud, pengguna perlu menangani kompleksitas penyiapan, konfigurasi instance dan disk persistensi, serta berurusan dengan desain dan pengelolaan cluster ketersediaan tinggi, keamanan, pemulihan dari bencana (disaster recovery), dan skalabilitas.
  2. Selalu mengupdate versi database, versi sistem operasi, dan sistem hardware dengan patch terbaru untuk menghindari bug dan kerentanan keamanan dapat menimbulkan biaya, resource, kompleksitas, dan periode nonaktif yang signifikan.
  3. Seiring penyiapan database, pengguna harus mengonfigurasi dan mengelola keamanan di semua lapisan, bukan hanya database itu sendiri. Misalnya, memastikan koneksi dienkripsi saat dalam pengiriman menggunakan SSL dan menjaga agar sertifikat tetap terbaru, mengenkripsi data dalam penyimpanan, serta mengelola akses login bagi pengguna dan akun layanan ke database.
  4. Untuk memastikan ketersediaan instance, berbagai lapisan sistem database harus dipantau untuk mendeteksi kegagalan. Pengguna harus menghabiskan resource tambahan untuk menyiapkan dan mengonfigurasi alat pemantauan. Peringatan harus ditentukan untuk memberi tahu jika terjadi error, dan tindakan korektif perlu diambil untuk memperbaiki kegagalan.
  5. Pengguna perlu menghabiskan waktu, resource, dan upaya yang signifikan untuk menyiapkan dan mengelola database, bukan berfokus pada pengembangan aplikasi.

Kelebihan dan kekurangan Cloud SQL untuk MySQL

Kelebihan

  1. Cloud SQL untuk MySQL menyediakan antarmuka yang mudah digunakan guna membuat, mengelola, mengakses, dan memantau database MySQL bagi developer dan engineer, bahkan bagi developer dan engineer, bahkan bagi mereka yang tidak memiliki keahlian database. Untuk memulai dengan cepat, Cloud SQL juga menawarkan cara mudah untuk memigrasikan database MySQL yang ada dari infrastruktur lokal atau cloud lainnya ke Cloud SQL untuk MySQL Google Cloud.
  2. Cloud SQL untuk MySQL menawarkan serangkaian fitur lengkap yang diperlukan untuk menghosting database MySQL bagi beragam aplikasi, dari database untuk situs mikro hingga aplikasi perusahaan yang sangat penting dan sangat besar, aplikasi game, serta data untuk kasus penggunaan analisis. Dengan menggunakan fitur yang kaya ini, pengguna dapat membangun aplikasi yang sangat andal dan skalabel.
  3. Cloud SQL berbagi tanggung jawab keamanan dengan pengguna. Cloud SQL memastikan keamanan di tingkat infrastruktur dan jaringan yang lebih rendah, sehingga pengguna dapat berfokus pada konfigurasi dan pengembangan aplikasi di tingkat yang lebih tinggi. 
  4. Cloud SQL menyediakan berbagai fitur keamanan seperti plugin validasi sandi dan logging audit yang tidak tersedia di versi komunitas dan sulit diterapkan di lingkungan yang dikelola sendiri. Cloud SQL menyederhanakan dan membuat fitur ini tersedia bagi pengguna.
  5. Cloud SQL menawarkan berbagai cara untuk berinteraksi dengan database. Pengguna dapat menggunakan GUI, CLI, dan API untuk menyesuaikan operasi menurut kebutuhan mereka dengan sangat mudah.
  6. Cloud SQL menyediakan integrasi yang mudah dengan solusi dan produk lain, seperti BigQuery, sehingga memudahkan pengembangan solusi analisis.
  7. Cloud SQL mengambil alih tanggung jawab atas keandalan instance database dengan infrastrukturnya yang sangat tersedia, solusi pemulihan mandiri, dan yang terpenting, tim SRE 24X7.
  8. Pengguna menghabiskan lebih sedikit waktu dan upaya pada tugas-tugas operasional database sehingga dapat berfokus pada pengembangan aplikasi sehingga meningkatkan kemampuan untuk memberikan solusi yang memenuhi kebutuhan bisnis mereka secara lebih efisien.
  9. Selain membantu mengelola database, Cloud SQL juga memberikan tips dan rekomendasi untuk meningkatkan performa database menggunakan fitur seperti Query Insights dan rekomendasi. Fitur-fitur ini menjadikan hosting dan pengelolaan database di cloud menjadi sederhana, aman, dan hemat biaya.
  10. Cloud SQL menawarkan layanan pelanggan untuk menyederhanakan dan mengefisienkan dukungan yang diperlukan untuk masalah atau permintaan apa pun terkait dengan database.

Kekurangan

  1. Fork MySQL dari ekosistem MySQL seperti MariaDB dan Percona tidak didukung di Cloud SQL. 
  2. Beberapa fitur MySQL tidak didukung. Pelajari lebih lanjut tentang fitur yang tidak didukung
  3. Jenis mesin dengan RAM hingga 624 GB dan 96 CPU didukung di Cloud SQL. Penyimpanan hingga 64 TB didukung. Jika database membutuhkan kapasitas yang lebih tinggi, opsi yang dikelola sendiri akan menjadi satu-satunya pilihan saat ini.

Langkah selanjutnya

Mulailah membangun solusi di Google Cloud dengan kredit gratis senilai $300 dan lebih dari 20 produk yang selalu gratis.

Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
Konsol
Google Cloud