Cara membuat AWS RDS Instans dan Konfigurasi WordPress Database

JudisWeb – Tutorial Cara membuat AWS RDS Instans dan Konfigurasi WordPress Database – Manajemen database merupakan salah satu hal yang penting dalam mengelola website yang dinamis. Apalagi dengan bertambahnya jumlah konten/artikel dan pengunjung setiap harinya. Yang menyebabkan server bekerja ekstra, dan mungkin akan mengalami penurunan performa sehingga saat kita membuka web, loading halaman sedikit lebih lama.

Banyak sekali Content Management System atau CMS tidak hanya digunakan sebagai aplikasi pembuat web dinamis dan statis tetapi dengan segudang fitur/plugin/komponen pendukung dari developer (pengembang, baik dari luar maupun official) memberikan fungsi lebih, salah satunya e-commerce website. Tentunya dengan tipe web yang dinamis makan semakin banyak konten dalam bentuk artikel maupun deskripsi produk.

Dalam tutorial kali ini, kita akan mempelajari Setup Database CMS pada AWS RDS. Yang saya gunakan adalah CMS WordPress, bisa menggunakan CMS lain seperti Joomla, Drupal, dsb.

AWS RDS (Relational Database Service)

Pada tulisan saya sebelumnya Tutorial Install WordPress, kita belajar bagaimana cara kita menginstall WordPress atau CMS di virtual server, dari tutorial tersebut saya jelaskan instalasi database dalam EC2. Ibaratnya sebuah server menjalankan Apache2+PHP+MySQL/MariaDB. Tentunya kinerja database ini menggunakan resource EC2.

AWS RDS merupakan solusi paling tepat untuk manajemen database dan untuk menjadwalkan auto backup database tanpa cron pada EC2. Gampangnya: kita punya 2 server, 1 khusus untuk aplikasi web, 1 lagi khusus untuk database yang bekerja untuk webserver kita, dan cron job atau tugas penjadwalan backup tanpa menggunakan resource EC2.

Tentunya resource EC2 bekerja lebih ringan lagi karena pemrosesan dan penyimpanan database menggunakan instans tersendiri yaitu RDS.

RDS vs No RDS
Without RDS vs EC2 + RDS

AWS RDS Free Tier Spesifikasi: 1 vCPU, 1 GiB RAM, 20 GB storage khusus untuk database, 20 GB storage untuk backup

Karena AWS Free Tier memberikan kita penawaran uji coba selama 1 tahun, seperti halnya dalam membuat instance pada AWS EC2, kita juga dapat membuat instance AWS RDS dan memanfaatkan resource tersebut untuk webserver kita.

AWS RDS Free Tier Usage
AWS RDS Free Tier usage

Dari gambar yang saya capture dari AWS Billing bahwa kita diperbolehkan menggunakan 750 jam untuk penggunaan AWS RDS db.t2.micro instans. Jika menggunakan 2 instans yang berjalan 24/7 jam, maka dalam waktu 14 hari saja 750 jam penggunaan free tersebut mendekati limit. Jadi disini kita menggunakan 1 instans yang bisa berjalan selama 30 hari penuh.

Apa saja yang dibutuhkan untuk membuat AWS RDS?

Tentunya sebelum beranjak pada tutorial kita perlu tahu apa saja yang dibutuhkan:

Membuat Database dengan AWS RDS

Seperti yang saya jelaskan sebelumnya, kita disini juga membuat instance RDS, bukan untuk web aplikasi tapi instance yang dikhususkan untuk pengelolaan database.

Pastikan di region mana kita akan Setup Database AWS RDS sama dengan region EC2 yang kita buat sebelumnya, jangan sampai kita membuat instance EC2 di Singapore, tapi database RDS berada di Eropa.

Step 1: Login AWS Management Console

Setelah login AWS Management Console dashboard, search “RDS” atau click ServicesAll ServicesDatabaseRDS. Setelah masuk dalam dashboard RDS, click Create database.

rds step1

Step 2: Memilih Database dan Engine

Setelah masuk menu Create database:

  • Creation method: Standart create
  • Engine type: MySQL/MariaDB
  • Template: Free tier
  • Version: Pilih versi terbaru

rds step2

Pastikan memilih Free tier pada template, karena template Production, Dev/Test versi berbayar dengan spesifikasi instance tersendiri.

Step 3: Setting User, Instance Class, Storage

Step berikutnya adalah mengatur user, instance class, dan storage. DB instance identifier merupakan nama instance DB dari RDS, isi menggunakan huruf kecil misal: mydbinstance, myrdsdb, mywpdbinstance.

rds step3

Secara default Master username untuk akses login ke database adalah admin, atau menggunakan username baru yang kita buat. Kemudian isi Master password dan verifikasi Master password untuk akses database.

DB instance class pilih db.t2.micro (free tier)

rds step4

Kemudian pada bagian Connectivity, tambahan security group dari EC2. Jika menggunakan remote database bisa kita aktifkan pada Public access menjadi Yes, tentunya jika Public access dijinkan maka RDS kita bisa diakses secara remote dari sumber eksternal. Misal menggunakan MySQL Workbench dari laptop/desktop atau koneksi lain dari akses publik.

rds step6

Opsional pada step ini, pada Additional configuration, initial database name isi menggunakan nama database yang akan dibuat. Ini untuk pertama kali instance dibuat, disini saya menggunakan nama database dengan mywordpressdb.

rds step5

Kemudian Create database, dan tunggu sampai instance berhasil dibuat dan status available.

rds step7

Step 4: Konfigurasi RDS dengan EC2

Setelah instance database berhasil dibuat status available dan running. Langkah selanjutnya konfigurasi RDS dengan EC2. Click pada DB Identifier (nama instance db), pilih tab Connectivity & Security, kita mendapatkan informasi Endpoint dan Port. Endpoint ini yang kita jadikan alamat host database.

rds step8

Pada bagian VPC security groups menginformasikan Security group yang dibuat saat pembuatan instance. Click Security group dan kita akan langsung menuju dashboard EC2 – Security groups.

rds step9

Pada bagian Inbound rules, click Edit inbound rules, dan Add rule atau tambahkan security group yang baru.

Untuk Type: pilih MYSQL/Aurora, Source type: pilih Custom, dan bagian Source pilih Security group dari EC2 yang kita buat. Kemudian Save rules.

  • Type: MySQL/Aurora
  • Source type: Custom
  • Source: EC2 Instans Security Group

Test Koneksi Database, Setup Konfigurasi WordPress Database

Koneksi Database

Akses ke server menggunakan SSH, kemudian check koneksi database menggunakan perintah ini:

mysql -h <alamat-endpoint-rds> -u <username-rds> -p
  • <alamat-endpoint-rds>: merupakan endpoint yang kita bisa dapatkan informasinya setelah membuat AWS RDS instans.
  • <username-rds>: adalah username pada AWS RDS
mysql -h myrdsdb.bdkshh86jd.ap-northeast-1.rds.amazonaws.com -u admin -p

Setelah memasukkan master password, kita berhasil melakukan koneksi ke RDS.

Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4442
Server version: 10.5.12-MariaDB-log Source distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Verifikasi database yang kita buat saat instance dibuat:

MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| innodb             |
| mysql              |
| performance_schema |
| mywordpressdb      |
+--------------------+
5 rows in set (0.001 sec)

Terlihat bahwa mywordpressdb atau database yang kita buat saat instance pertama kali dibuat, kemudian Verfifikasi user:

MariaDB [(none)]> SELECT user FROM mysql.user;
+-------------+
| User        |
+-------------+
| admin       |
| mariadb.sys |
| rdsadmin    |
+-------------+
3 rows in set (0.004 sec)

Master username admin memiliki akses penuh terhadap RDS, kita akan buat user khusus hanya untuk mengakses database wordpress.

MariaDB [(none)]> CREATE USER 'wpdbuser' IDENTIFIED BY 'wpdbpassword';
GRANT ALL PRIVILEGES ON mywordpressdb.* TO wpdbuser;
FLUSH PRIVILEGES;
exit

Ganti wpdbuser yang saya buat sebagai contoh dengan username lain dan wpdbpassword menggunakan password yang sulit atau bisa menggunakan password generator.

Setup Konfigurasi WordPress Database

Backup terlebih dahulu file konfigurasi wordpress wp-config.php dengan file baru wp-config.php.backup:

cp /var/www/html/wp-config.php /var/www/html/wp-config.php.backup
sudo cp /var/www/html/wp-config.php /var/www/html/wp-config.php.backup

Edit file konfigurasi WordPress menggunakan host, user, password, database RDS.

nano /var/www/html/wp-config.php
/** The name of the database for WordPress */
define( 'DB_NAME', 'mywordpressdb');

/** MySQL database username */
define( 'DB_USER', 'wpdbuser' );

/** MySQL database password */
define( 'DB_PASSWORD', 'wpdbpassword' );

/** MySQL hostname */
define( 'DB_HOST', 'endpoint-rds' );

Simpan file konfigurasi WordPress (CTRL+O) dan keluar editor (CTRL+X).

Fresh Install WordPress

Untuk fresh install WordPress kita tidak perlu melakukan backup database dari database lama ke RDS, jika database website sudah terbentuk dan sudah ada konten dan segala macam didalamnya kita tidak perlu mengawali/mengulang membuat website, tapi cukup dengan Import/Export Database WordPress dari localhost ke RDS.

Import Database local:

mysqldump -u user-mysql-local -p nama-wordpress-db-local > backup-wordpress-db.sql

Verifikasi file backup MySQL:

ls -l

Export Database ke RDS

mysqldump -u user-mysql-rds -p mywordpressdb < backup.wordpress-db.sql

Setelah melakukan import database refresh web browser dan website sudah beroperasi kembali menggunakan RDS.

Demikian Tutorial Cara membuat AWS RDS Instans dan Konfigurasi WordPress Database.

Semoga bermanfaat.

Tinggalkan komentar