0

Membuat Instance MySQL di service RDS (Relational Database Service)

Cara membuat MySQL di RDS.


RDS atau Relational Database Service support berbagai macam relational database, salah satunya MySQL. Ditutorial kali ini kita akan membuat instance/server MySQL pada service RDS. Hasil akhirnya adalah kita bisa connect ke database MySQL RDS menggunakan MySQL GUI tools (HeidiSQL).

Cara membuat MySQL di RDS

Kita akan buat database MySQL di region singapore (region code: ap-southeast-1). Bisa dilihat regionnya pada kanan atas dashboard AWS

  • Masuk ke dashboard RDS dengan men-search keyword: RDS pada kolom Search pada gambar diatas.
  • Pada dashboard RDS, jika kita belum punya instance maka akan tertulis DB instance (0/40) seperti gambar dibawah. Klik link tersebut untuk membuat instance DB baru.
buat mysql di RDS
  • Pada gambar dibawah ini, statusnya masih No instances found / belum ada instance, Klik tombol Create database untuk membuat instance baru.
Cara buat MySQL di RDS
  • Akan ada 2 metode pembuatan database, kita pilih yang standard create dan engine options pilih MySQL.
    • standard create = semua konfigurasi database kita atur sendiri
    • easy create = konfigurasi diatur oleh AWS
buat mysql pada service rds
  • Lalu pilih Engine versionnya (MySQL 8.0.35) dan templates yang digunakan (Production).
    • Engine version Versi MySQL yang digunakan. Tersedia versi 8.0.x (Tidak disarankan memilih versi 5.7.x (jika masih ada) karena sudah masuk EOL dan akan kena charge besar dari AWS)
    • Templates Environment database. Ada production, Dev/Test dan Free tier. Kita pilih yang production.
      • Production: Dijalankan di env. production / live
      • Dev/Test: Dijalankan di env. dev/test sebelum naik ke production
      • Free tier: Buat coba-coba (gratis) selama 750 jam / per bulan untuk setahun. *Syarat dan ketentuan berlaku. Bisa dibaca disini AWS RDS free.
Cara buat MySQL di RDS

Availability and durability

  • Pada Deployment options gambar dibawah ini, ada beberapa opsi. Kita pilih yang Single DB Instance
    • Single DB instance 1 instance DB (primary/master) akan dibuat di satu AZ (Availability Zone) saja.
    • Multi-AZ DB instance 2 instance DB akan dibuat di AZ yang berbeda. Misal, 1 instance sebagai primary (master) ditempatkan di AZ ap-southeast-1a dan 1 instance standby ditempatkan di AZ ap-southeast-1b. Instance standby tidak bisa digunakan untuk read (SELECT * FROM) hanya bisa replicate dari master, kecuali jika sudah dipromote jadi primary/master ketika failover.
    • Multi-AZ DB Cluster 3 instance DB akan dibuat di AZ yang berbeda. 1 instance sebagai primary master dan 2 instance standby yang bisa digunakan untuk read workload (SELECT * FROM). Instance standby juga bisa dipromote menjadi primary/master ketika failover.
  • Pada DB instance identifier, masukkan nama instancenya misal my-prod-db
  • Master username, merupakan username MySQL yang digunakan untuk login ke databasenya. Contoh disini kita buat user dengan nama admin
  • Credentials management, pilih yang Self managed karena kita mau set sendiri credential passwordnya. Masukkan password untuk user admin

Instance configuration

  • Kemudian pilih DB instance Classnya yang Standard classes, lalu tentukan instance db typenya yang db.m5.large (2vCPU, 8GiB RAM, Network: 4,750Mbps)
    • Standards classes, CPU, RAM dan Networknya seimbang.
    • Memory Optimized Classes, Fokus ke RAM yang besar. Cocok untuk engine InnoDB yang menggunakan 70-80% RAM disarankan menggunakan class ini.
    • Burstable classes, CPU bisa diburst (naik) saat load sedang tinggi-tingginya. CPU dapat dinaikkan/burst dengan memanfaatkan CPU credit yang didapat. Saat load sedang kecil, maka akan dapat credit, ketika load besar credit tersebut dipakai untuk menaikkan CPU.

Storage type

  • Storage type, Kita pilih yang General Purpose SSD (gp2), lalu masukkan allocated storagenya 20 GiB
    • General Purpose SSD (gp2), Menggunakan SSD, dan IOPS (Input Output Per Second) / kecepatan baca tulis ke SSD mengikuti size dari storagenya. Semakin besar size storagenya semakin besar IOPSnya. Max IOPS = 16000 dengan max size storage 16TB.
    • General Purpose SSD (gp3), bisa diset IOPSnya jika size storagenya diatas 400GB
    • io1, io2, bisa diset sendiri IOPSnya tidak ada limit min. storage yang harus diset dulu (seperti gp3). Bisa diset juga throughputnya (besaran file yang bisa di baca tulis ke SSD)
  • Storage autoscaling, Kita set ke 100GB. Artinya storage bisa discale / naikkan secara otomatis sampai 100GB. Misal, tadi allocated storage kita set 20GB. Jika data sudah melebihi 20GB maka akan bisa scale sendiri storagenya sampai 100GB.
pilih instance DB MySQL di RDS

Connectivity

  • Compute resource pilih yang Don’t connect to an EC2 compute resource
  • Virtual private cloud (VPC), Disini saya menggunakan VPC default, yang bisa diakses dari internet (public subnet). Silahkan sesuaikan dengan VPC kalian.
  • DB subnet group, saya menggunakan subnet group default dari RDS
  • Public access, untuk database prod seharusnya kita set No, tapi karena kita ingin test connect ke database langsung dari internet, kita set Yes.
  • VPC security group, saya menggunakan yang default
  • Availability Zone, kita tarus instance/server MySQL nya di AZ ap-southeast-1a
setup RDS
  • Lalu untuk Database authentication options pilih Password authentication, agar nanti kita connect ke database menggunakan username dan password
  • Untuk monitoring kita matikan saja (performance insight). Jika mau dinyalakan silahkan, ini untuk mengetahui performa database, mana query yang slow nanti kelihatan. Nanti juga akan ada grafiknya dalam bentuk underlying database (cocok buat DBA).
  • DB parameter group, untuk mengeset parameter database. Disini saya menggunakan default.mysql.8.0. Namun jika kalian ingin mengcustom parameter seperti innodb_buffer_pool_* maka bisa dibuat sendiri paremeter groupnya. Note: mengubah parameter group kemungkinan membutuhkan restart database, hati-hati jika ini database production.
  • Backup retention period, 7 days artinya dibackup 7 hari terakhir, jika hari ke 8 maka data lamanya akan terdelete. Backup ini berfungsi juga sebagai binary log untuk replikasi database.
  • Aktifkan Deletion protection untuk mencegah delete database dari hal yang tidak disengaja.
  • Klik Create database untuk membuat instance/server MySQL
  • Tunggu beberapa menit sampai terbuat database my-prod-db
  • Jika sudah selesai terbuat maka statusnya akan available
  • Kita bisa cek host databasenya dengan mengklik DB identifier: my-prod-db -> Connectivity and Security > Endpoint & Port

Test Koneksi ke Database

Disini saya menggunakan HeidiSQL, kalian bisa menggunakan yang lain seperti Navicat, MySQL Workbench, dll.

  • Buka HeidiSQL
  • Masukkan Hostname database RDS
  • Masukkan username dan password beserta port
  • Klik Open
  • Jika berhasil, maka akan connect ke database
Cara buat MySQL di RDS

Kendala

Jika kalian menemukan kendala tidak bisa connect ke database, pastikan hal berikut:

  • Public access diset Yes
  • Port 3306 terdaftar di Inboud rule pada security group
  • Cek port 3306 sudah terbuka, menggunakan telnet <nama host RDS> 3306

Jika sudah reply (Connected to ..), maka database bisa diakses dari internet.

Namun jika belum bisa connect juga, pastikan username dan password sudah benar.

Ambar Hasbiyatmoko

Hello, I'm web developer. Passionate about programming, web server, and networking.

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.