Selain menggunakan metode tradisional, yaitu LAMP (Linux, Apache, MySQL, PHP) atau LEMP (Linux, Nginx, MySQL, PHP). Kita juga dapat menggunakan metode lain, yaitu menjadikan server MySQL sebagai database remote.
Konsep konfigurasi ini yaitu menyiapkan dua server yang akan digunakan untuk web server dan database. Ada beberapa kelebihan dan kekurangan menggunakan konsep konfigurasi ini.
Beberapa kelebihannya yaitu:
- Performa website lebih meningkat karena server web server dan database terpisah, sehingga beban server terbagi dua dan dijalankan secara mandiri.
- Meminimalisir terjadinya kerusakan di sisi server ketika ada serangan siber seperti DDoS atau flood server.
- Bebas menentukan konfigurasi yang berbeda untuk web server dan database server, misalnya kita menggunakan spesifikasi server AWS t4.micro untuk web server, sedangkan untuk database server kita menggunakan t3.nano. Sehingga kita dapat menentukan spesifikasi yang tepat untuk server kita.
- Beban server menjadi berkurang karena server database hanya menangani olah data sedangkan web server hanya menangani lalu lintas web, sehingga menjadikan website kita berjalan cepat dan ringan.
Sedangkan beberapa kekurangan dari konsep ini yaitu:
- Biaya operasional menjadi besar apabila tidak dipersiapkan dengan baik, karena harus menyiapkan dua server. Sehingga biaya tagihan membengkak.
- Perlu keahlian teknis untuk melakukan konfigurasi pada dua server, serta memiliki pengetahuan yang cukup dalam dunia komputer. Hal ini sangat berguna untuk menentukan spesifikasi server yang akan digunakan sehingga dapat menekan biaya operasional.
- Metode ini menjadi tidak berguna apabila administrator tidak memiliki keahlian dalam menyiapkan dan mengelola server dengan baik.
Dibalik kelebihan dan kekurangan diatas, tentunya metode ini masih sangat relevan dengan perkembangan teknologi saat ini, terutama untuk mendapatkan website yang ringan dan cepat (walapun ada beberapa faktor lain seperti penggunaan tema dan jumlah plugin, namun hosting dan metode penyiapan server menjadi salah satu faktornya). Hal ini dapat dilihat dari artikel yang diterbitkan oleh GraviteDesign yang menyebutkan bahwa server mempengaruhi kecepatan website.
Uji Coba
Setelah kita mengetahui kelebihan dan kekurangan konsep WordPress dengan remote database, kita akan mengujinya di AWS dengan menggunakan dua instance di region Australia. Anda dapat mencobanya menggunakan penyedia layanan lain seperti Google Cloud, OVH, Linode dan lainnya.
Sebelum Memulai
- Tutorial ini menggunakan dua server AWS di region yang sama (Sydney/ap-southeast-2), penggunaan region berbeda mungkin saja dilakukan, namun kami tidak menjamin performanya karena jarak kedua server tersebut.
- Tutorial ini akan menggunakan stack LAMP (Linux, Apache, MariaDB, PHP).
- Kedua server menggunakan sistem operasi yang sama (Ubuntu 22.04 LTS).
- Semua paket pada kedua server telah diperbarui.
Variabel Yang Digunakan
- database-server: Server yang digunakan untuk database.
- web-server: Server yang digunakan untuk WordPress.
- example.com: Nama domain yang sepenuhnya memenuhi syarat (FQDN) atau alamat IP statis web-server yang telah disiapkan sebelumnya.
wpdb
: Nama database.- wpuser: Nama pengguna untuk database wordpress.
- password: Kata sandi untuk MariaDB dan database wordpress.
- 172.31.20.219: IP private web.
- 172.31.25.83: IP private database.
- ubuntu: Pengguna sudo non-root lokal.
- 13.236.250.97: FQDN atau IP server web.
Langkah Penyiapan
Pertama-tama, kita akan menyiapkan dua instance dengan spesifikasi t4.micro untuk web server dan t3.nano untuk server database.
Setelah membuat dua server seperti pada gambar diatas, langkah selanjutnya yaitu membuat IP statis (AWS menyebutnya elastic IP, namun fungsinya sama saja dengan IP statis).
IP statis memungkinkan instance tetap menggunakan IP yang sama ketika instance di muat ulang atau di stop.
Untuk web-server, kita akan gunakan IP statis 13.236.250.97
, sedangkan untuk database-server yaitu IP 3.24.175.76
.
Setelah menyetel IP statis untuk kedua server, langkah selanjutnya menyiapkan web server dan database server.
Jangan lupa membuka port 3306 pada masing-masing Security Group agar MySQL dapat diakses secara remote.
Instalasi Web Server
Karena kita menggunakan metode LAMP, kita akan menyiapkan Apache, PHP dan phpMyAdmin untuk mengelola dabatase pada server kita yang nantinya akan berperan sebagai web server.
phpMyAdmin dipasang di web server sebagai antarmuka untuk mengelola database, sedangkan semua data yang ada pada database tetap berada di database-server.
Instalasi Apache
Untuk menginstal Apache, lakukan perintah sudo apt install apache2
dan tunggu sampai selesai.
Setelah instalasi Apache selesai, cek apakah servis Apache sudah berjalan atau belum dengan cara membuka IP server di browser.
Apabila browser menampilkan halaman seperti diatas, artinya Apache sudah terpasang dan berjalan dengan baik.
Instalasi PHP
Setelah instalasi Apache, selanjutnya kita akan menginstal PHP versi 7.4, karena merupakan versi yang tersedia di Ubuntu tanpa harus menggunakan repositori tambahan.
Lakukan perintah sudo apt install php
dan modul-modul yang diperlukan seperti php-bcmath php-curl php-imagick php-intl php-json php-mbstring php-mysql php-xml php-zip
. Jadi perintah lengkapnya seperti ini:
sudo apt install php php-bcmath php-curl php-imagick php-intl php-json php-mbstring php-mysql php-xml php-zip
Instalasi Database Server
Setelah menginstal kedua software diatas, langkah selanjutnya kita akan menginstal MariaDB pada server database.
- Instalasi MariaDB
Gunakan perintahsudo apt install mariadb-server
untuk mulai instalasi, tunggu sampai instalasi selesai. - Selesaikan instalasi menggunakan perintah
sudo
mysql_secure_installation
untuk menetapkan password root dan menghapus service yang tidak digunakan. Ikuti perintah yang muncul di layar. - Terima koneksi remote
Ubah bagianbind-address
pada file50-server.cnf
dan tambahkan IP private web-server agar MariaDB dapat menerima koneksi remote:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
|bind-address =
172.31.25.83
- Restart service MariaDB dan
izinkan koneksi ke port 3306 melalui firewalllanjutkan ke langkah berikutnya. Konfigurasi melalui Firewall (misalnya ufw) tidak berlaku ketika menggunakan layanan AWS, karena kita dapat membuka dan menutup port pada Security Group.
sudo systemctl restart mysql
- Masuk ke MariaDB sebagai root, buat database dan pengguna remote dan berikan akses ke database. Jangan lupa untuk mengubah IP
dengan IP private web-server Anda.172.31.20.219
sudo mysql -u root -p
CREATE DATABASE wpdb;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ONwpdb
.* TO 'wpuser'@'localhost';
CREATE USER 'wpuser'@'172.31.20.219' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ONwpdb
.* TO 'wpuser'@'172.31.20.219
';
FLUSH PRIVILEGES;
exit
Mengakses Remote Database dari Web Server
Setelah melakukan penyiapan baik server, konfigurasi port maupun software, langkah selanjutnya yaitu menguji coba koneksi remote database yang telah dibuat sebelumnya.
Untuk melakukan koneksi remote database, lakukan langkah-langkah dibawah ini:
- Pasang modul PHP-MySQL sebagai jembatan antara web-server dan database-server, sehingga keduanya saling terhubung.
sudo apt update && sudo apt install mariadb-client php-mysql
- Uji coba remote login menggunakan username dan password yang telah dibuat tadi, gunakan IP private database-server
172.31.25.83
.
mysql -u wpuser -h 172.31.25.83 -p
- Apabila telah berhasil masuk, sistem akan menampilkan konsol MySQL seperti gambar dibawah ini:
- Untuk mengetahui status koneksi yang sedang terhubung, ketik
status
dan akan tampil informasi seperti dibawah ini:
Apabila empat langkah diatas telah berhasil dilakukan, artinya remote database telah berhasil dibuat dan terhubung dengan baik, langkah selanjutnya yaitu menginstal WordPress di web-server.
Instalasi WordPress
- Unduh WordPress terbaru menggunakan perintah
wget https://wordpress.org/latest.zip
. - Kemudian ekstrak file
latest.zip
dengan perintahunzip latest.zip
. - Salin ke direktori
html
menggunakan perintahsudo cp -R wordpress/* /var/www/html/
. - Ubah kepemilikan direktori
www
dariroot
kewww-data
(apache) dengan perintahsudo chown -R www-data:www-data html
. - Ubah permission untuk file dan direktori yang ada di dalam direktori html:
find . -type d -exec chmod 755 {} \;
#Mengubah permission direktori ke rwxr-xr-x
find . -type f -exec chmod 644 {} \;
#Mengubah permission file ke rw-r–r– - Edit file wp-config.php dan isi seperti dibawah ini:
/** The name of the database for WordPress */
/** MySQL database username */define('DB_NAME','wpdb');
define(‘DB_USER’, ‘wpuser’);
/** MySQL database password */
define(‘DB_PASSWORD’, ‘password’);
/** MySQL hostname */
define(‘DB_HOST’, ‘172.31.25.83’); - Buka IP publik web-server
13.236.250.97
di browser.
Instalasi phpMyAdmin
Untuk mengelola database, kita dapat menggunakan phpMyAdmin yang konfigurasinya sedikit di modifikasi agar dapat mengelola remote database. Sebelumnya, pasang terlebih dahulu phpMyAdmin, gunakan perintah sudo apt install phpmyadmin
dan tunggu sampai instalasi selesai. Ikuti petunjuk yang ada di layar, pilih server Apache2 pada pemilihan server seperti gambar dibawah ini karena kita menggunakan web server Apache.
Apabila sistem meminta password root MySQL, masukkan kata sandi yang digunakan di database-server.
Setelah instalasi selesai, ubah konfigurasi phpMyAdmin dengan menambahkan baris dibawah ini pada file /etc/phpmyadmin/config.inc.php
:
$cfg[‘Servers’][$i][‘verbose’] = ‘Server DB Jakarta’; // Ubah nama Server sesuai keinginan.
$cfg[‘Servers’][$i][‘host’] = ‘172.663.896’; // Ubah alamat server.
$cfg[‘Servers’][$i][‘port’] = ‘3306’;
$cfg[‘Servers’][$i][‘connect_type’] = ‘tcp’;
$cfg[‘Servers’][$i][‘compress’] = FALSE;
$cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’;
$i++;
Simpan, dan coba buka phpMyAdmin di browser.
Masuk menggunakan username dan password yang telah dibuat di konsol MariaDB, kemudian login ke phpMyAdmin.
phpMyAdmin berhasil mengakses remote database dan berjalan dengan baik.
Penutup
Dengan menggunakan dua server yang berbeda, kita dapat menyesuaikan spesifikasi untuk masing-masing server, serta kedua server memiliki beban kerja masing-masing dan tentunya tidak saling mengganggu satu sama lain. Ini karena kedua server tadi bekerja secara terpisah, sehingga pengelolaan database dan web server dilakukan terpisah.
Tertarik mencoba remote database untuk proyek Anda selanjutnya?
Artikel Terkait
Membuat formulir registrasi calon Kepala desa (Kades) menggunakan Multi-Step Formidable Forms
June 10, 2021
Membuat Form Survey Kepuasan Kinerja Petugas Desa Menggunakan WPForms + Addons Survey & Polls
June 15, 2021
Tutorial menghapus Trojan Win32/Floxif.E & Virus Win32/Floxif.H
May 30, 2023
Cara Mudah Membuat Hotlink Protection Di CloudPanel
April 7, 2023
Cara instalasi Homebrew di MacOS
December 2, 2022
Cara mudah menghapus Invisible.js dari WordPress
April 19, 2023
Saran artikel ini dibuat oleh Kudatuli Project
ShopBack adalah aplikasi dan situs web yang memberikan cashback dan promo kepada pengguna yang berbelanja online