Kali ini saya akan share sedikit mengenai hosting wordpress dengan Amazon Web Service. Seperti kita ketahui amazon memiliki layanan public cloud terkenal dengan nama Amazon Web Service atau yang lebih dikenal dengan nama AWS. Layanan AWS sendiri terdiri dari banyak sekali yang masing-masing dibuat untuk kebutuhan specific.
Selain layanannya yang banyak jumlah datacenternya juga cukup banyak dan masing-masing saling terisolasi sehingga memberikan redudancy dan availability yang lebih tinggi. AWS menyediakan layanan Free Tier 1 tahun untuk mencoba servicesnya, tentunya ada beberapa limitasi yang diberikan.
Silahkan mengikuti panduan mendapatkan free tier AWS yang artikelnya sudah banyak beredar. Kamu perlu memiliki kartu kredit atau bisa juga menggunakan virtual credit card yang diberikan dari beberapa bank seperti CIMB dan BTPN Jenius.
Lanjut ke pembahasan hosting wordpress menggunakan AWS. Di sini kita akan install wordpress menggunakan layanan AWS Elastic Compute 2 atau EC2 dan menggunakan AWS Relational Database Services. Kedua Services ini bisa kita gunakan free selama satu 1 tahun selama tidak melebihi limit yang diberikan AWS. untuk EC2 maksimal hanya bisa 750jam atau 1 instance saja jika akan digunakan 24/7.
Berikut Gambaran Architecturenya
Di sini kita menggunakan 1 EC2 atau VM dan 1 AWS Manage Remote Database. Kemudian menggunakan 1 buah Elastic IP untuk IP Publicnya. Saya menggunakan region singapore karena region ini yang paling dekat dengan indonesia. Secara general langkah-langkahnya sebagai berikut:
Pembuatan EC2
Pada saat pembuatan EC2 pastikan memilih type Instance Free tier. Pada step ini kamu bisa memilih template instance wordpress yang sudah jadi seperti template dari Bitnami. Kelebihan menggunakan template ini kita tidak perlu melakukan installasi dan configurasi web server (apache, Nginx, Openlitespeed), dan PHP. Tetapi jika kamu ingin konfigurasi sendiri bisa memilih image dengan OS linux kosongan, misalnya ubuntu os. Lalu melakukan installasi web server dan PHP sendiri.
Pada step ini saya memilih menggunakan image wordpress dari Bitnami. Jika kamu memilih meinstall sendiri pastikan untuk setting security groupnya agar allow port 80 dan 443 agar nantinya website bisa diakses dari public internet.
Pembuatan RDS
Masuk ke menu services RDS. Pada saat pembuatan RDS pilih opsi free tier, kamu bisa menggunakan Mysql atau MariaDB. Di sini saya menggunakan mariaDB dengan versi yang sama dari Image Bitnami. RDS memerlukan minimal 2 availability zone jadi pastikan kamu buat dulu subnet di VPC untuk zone kedua. Beri nama databasenya, tentukan admin user dan passwordnya. Atur security group untuk dapat terkoneksi dengan EC2 yang kita buat. Kamu bisa pilih inbound type RDS kemudian sourcenya ke EC2.
Koneksi EC2 dengan RDS
Setelah EC2 dan RDS selesai dibuat. Kita perlu cek komunikasi antara EC2 dan RDS.
- Masuk ke EC2 console dengan SSH dan Private key
- Lakukan telnet dari EC2 console ke alamat DNS RDS menggunakan perintah telnet url RDS 3306, jika bisa terkoneksi maka EC2 sudah bisa berkomunikasi dengan RDS
Konfigurasi Database WordPress
Setelah EC2 dan RDS sudah bisa terkoneksi kita perlu mengganti setting aplikasi wordpress agar menggunakan database RDS yang kita buat.
- Matikan service Mysql Server di EC2 dan hapus package Mysql server. tujuannya agar resource EC2 tidak digunakan untuk database Mysql
- Rubah file Wp-config, pada bagian database ganti alamat database host dengan alamat DNS RDS, isi admin user dan passwordnya
Installasi WordPress
Setelah RDS dikonfigurasi selanjutkan kita buka Public IP address EC2. Akan muncul wizard untuk installasi wordpress. Silahkan dilanjutkan installasinya mengikut wizard-nya.
Pengaturan Domain
Setelah wordpress bisa diakses dengan Public IP EC2, selanjutkan arahkan A record Domain ke IP Public EC2. Jangan lupa untuk update URL pada setting WordPress dengan domain yang diinginkan.
Sekarang kita sudah punya wordpress yang running di cloud AWS amazon secara gratis dan bisa digunakan selama 1 tahun. Kelebihan configurasi ini proses web aplikasi dijalankan oleh EC2 dan proses database dijalan menggunakan RDS sehingga EC2 tidak terbebani oleh pemrosesan database Mysql.