Sharing pengalaman menggunakan RDS mysql di AWS. semoga bermanfaat.
![Sharing pengalaman menggunakan RDS mysql di AWS](https://www.latcoding.com/wp-content/uploads/2023/07/Screenshot-from-2023-07-04-23-01-53.png)
RDS, merupakan layanan database relasional (RDBMS) yang ada di AWS. Terdapat beberapa jenis RDBMS di RDS, diantaranya: postgresql, oracle, sql server, mysql.
Saya menggunakan RDS mysql dari tahun 2019, setelah migrasi dari cloud Indonesia ke cloud AWS dan menggunakan RDS. Saya memilih RDS mysql karena layanan full managed dari AWS. Artinya semua pengelolannya sudah dihandle sama AWS, mulai dari instalasi mysqlnya, konfigurasi, tunning, patching, backup, recovery, replication dan lainnya semua sudah dikelola oleh AWS, kita tinggal pakai saja cukup klik klik sedikit, jadi. Beda jika kita setup mysql sendiri, kita harus siapkan servernya, install menggunakan apt-get (jika menggunakan ubuntu), belum lagi setting mysql.conf nya. Cukup memakan waktu.
RDS Instance Type
Ketika membuat RDS MySQL, kita harus tentukan dulu speknya mau seperti apa? (istilahnya RDS instance type). Contoh saya pernah menggunakan RDS instance type: memory optimized yang ukuran RAMnya besar (karena saya menggunakan engine innoDB di mysql, jadi butuh buffer yang besar di RAM). Contoh dari RDS instance type adalah db.r6g.large dengan vCPU sebesar 2 dan RAM sebesar 16GB.
Backup, Rollback, Replica
Selain itu, RDS mysql bisa melakukan otomatis backup (snapshot). File backup ini bisa digunakan untuk rollback jika database terjadi kendala atau bisa juga untuk replikasi database (istilahnya read replica). Untuk membuat read replica sangat mudah, tinggal klik tombol create read replica, tunggu beberapa saat, maka jadi. Kita tidak perlu manual-manual lagi setting binlog, catat posisi binlognya, change master to
. Memakan waktu.
Multi AZ (Avalibility Zone)
RDS mysql juga support Multi AZ (Availibility Zone). Artinya ada beberapa database (1 DB utama dan beberapa lainnya sebagai DB cadangan) dimasing-masing AZ. DB utama akan mereplikasi data ke DB cadangan. Jika DB utama down maka bisa diswitch ke DB cadangan (istilahnya fail over).
Storage
Untuk storage, RDS mysql menggunakan tipe io1, gp2, gp3. Kita bisa set IOPS nya (Input Output Per Second) sesuai kebutuhan. Selain itu kita bisa set juga storage treshold (batas atas), artinya misal storage RDSnya kita set 20GB dan tresholdnya 50GB, maka ketika size DBnya sudah mencapai lebih dari 20GB, otomatis storage RDSnya akan melar maksimal sampai 50GB.
Monitoring
Untuk monitoringnya, RDS mysql menyediakan menu Performance Insight. Disana kita bisa melihat grafik terkait database load dan bisa melihat query mana yang lemot, yang response timenya tinggi.
Harga
Ada beberapa komponen yang akan dikenakan charge, seperti storage, rds instance type, backup, proxy dan performance insight. Tapi saya hanya menggunakan 3 komponen saja sejauh ini yaitu storage, backup dan instance type.
Kekurangan
Kekurangan dari RDS mysql adalah (menurut saya), tidak bisa melakukan command bawaan dari mysqlnya, yaitu KILL <mysql Process ID>
untuk menghentikan query yang lemot. Biasanya ini saya lakukan ketika aplikasi nge-hang gara-gara query lemot (jangan ditiru). Sebagai gantinya saya harus menggunakan command bawaan dari RDS, yaitu mysql.rds_kill
. Terkait kelebihan dan kekurangan RDS mysql bisa baca lengkapnya disini issues and limitations for Amazon RDS for MySQL.
Sekian sharing dari saya. Kesimpulannya sejauh ini saya lumayan puas menggunakan layanan RDS MySQL.