Blog AWS Indonesia
Menyiapkan Situs WordPress dengan Ketersediaan Tinggi dengan Amazon Lightsail, Bagian 1: Implementasi Basis Data Lightsail untuk WordPress
Tulisan ini akan memandu Anda tentang beberapa hal yang harus diperhatikan dalam merancang situs web berbasis WordPress yang sangat memiliki skalabilitas dan redundansi tinggi. Kita akan membahas bagaimana WordPress menyimpan berbagai macam data seperti misalnya akun pengguna, tulisan, pengaturan, media, dan tema; dan juga bagaimana cara mengkonfigurasi WordPress untuk menggunakan basis data mandiri (standalone database).
Panduan ini menjelaskan cara instalasi situs WordPress menggunakan Amazon Lightsail. Lightsail adalah cara termudah untuk mulai menggunakan layanan AWS, dan mungkin merupakan cara termudah (dan paling murah) untuk mulai menggunakan WordPress. Anda dapat meluncurkan situs WordPress baru dalam beberapa klik saja menggunakan salah satu cetak biru (blueprints) yang tersedia; untuk beberapa dolar saja sebulan. Dengan demikian Anda dapat menggunakan satu instans Lightsail untuk menjalankan situs WordPress. WordPress sangat cocok digunakan sebagai blog pribadi yang sederhana.
Namun demikian, Anda mungkin membutuhkan situs web yang lebih tangguh yang mampu beradaptasi untuk memenuhi peningkatan permintaan dan memberikan redundansi dalam hal arsitektur. Jika Anda adalah pengguna cloud pemula, gagasan untuk membangun situs WordPress dengan ketersediaan tinggi (highly available) mungkin tampak sedikit menakutkan. Tetapi konsep tersebut tidak akan jadi menakutkan bila kita memanfaatkan Lightsail dan layanan AWS lainnya.
Tulisan berikutnya dalam seri ini mencakup cara pengelolaan berkas media, menggunakan CloudFront untuk meningkatkan keamanan dan kinerja situs web, dan mengskalakan (scaling) bagian front-end WordPress dengan menggunakan penyimbang beban (load balancer) Lightsail. Sebagai referensi, berikut adalah beberapa tulisan lanjutan mengenai topik-topik tersebut:
- Menggunakan Amazon S3 dengan WordPress untuk Mengirim Berkas Media Secara Aman
- Meningkatkan Keamanan dan Kinerja Situs Web Menggunakan Amazon CloudFront
- Meningkatkan Kinerja dan Skalabilitas dengan Load Balancer Lightsail
Apa saja yang terjadi di belakang layar?
Meskipun Anda adalah pengguna WordPress, Anda mungkin tidak pernah memikirkan bagaimana WordPress dibangun. Namun jika Anda akan mengelola situs WordPress Anda sendiri, sangat penting untuk memahami apa saja yang terjadi di belakang layar. Sebagai sebuah sistem manajemen konten (content management system – CMS), WordPress memiliki banyak sekali fungsi. Tulisan ini hanya akan berfokus pada beberapa fitur-fitur dasar yang relevan dalam konteks bagaimana cara implementasi situs web dengan ketersediaan tinggi.
WordPress mengatur banyak data yang sangat bervariasi. Ada data akun pengguna, data tulisan, berkas media (seperti gambar dan video), tema (kode yang dapat menyesuaikan tampilan dan nuansa dari situs WordPress), plugin (kode yang dipakai sebagai fungsi tambahan untuk situs Anda), dan konfigurasi lainnya.
Lokasi penyimpanan data-data tersebut bervariasi tergantung pada jenis datanya. Pada tingkat yang paling dasar, WordPress adalah aplikasi PHP yang berjalan di sebuah web server dan basis data. Web server adalah instans yang Anda buat di Lightsail. Instans tersebut sudah meliputi perangkat lunak WordPress dan basis data MySQL. Diagram berikut menunjukkan arsitektur VPC (Virtual Private Cloud) Lightsail.
Basis data menyimpan sebagian besar dari data yang dibutuhkan oleh WordPress, misalnya semua informasi akun pengguna dan tulisan blog. Di sisi lain, sistem berkas (file system) dari web server juga menyimpan sebagian data yang lain, misalnya gambar-gambar yang Anda unggah ke server WordPress Anda. Dan terakhir, untuk tema dan plugin, keduanya disimpan baik di dalam basis data dan juga di dalam sistem berkas. Sebagai contoh, basis data menyimpan informasi tentang plugin dan tema yang saat ini aktif, namun sistem berkas menyimpan kode asli dari tema dan plugin tersebut.
Untuk mengimplementasikan WordPress yang memiliki ketersediaan tinggi, Anda perlu menyediakan redundansi tidak hanya untuk basis data, tetapi juga untuk semua konten yang disimpan di dalam sistem berkas.
Prasyarat
Solusi yang dibahas pada tulisan ini membutuhkan beberapa prasyarat sebagai berikut:
- Instan WordPress baru pada Lightsail. Untuk informasi lebih lanjut, silakan membaca “Tutorial: Meluncurkan dan mengkonfigurasi instan Wodpress pada Amazon Lightail”. Anda hanya perlu melakukan 2 langkah saja.
- Basis data MySQL mandiri (standalone) dengan ketersediaan tinggi (highly available). Untuk informasi lebih lanjut silakan membaca “Membuat sebuah basis data di Amazon Lightsail”. Saat Anda sampai pada langkah 7, pilih high-availability.
Tulisan ini dan beberapa lanjutannya akan berbicara seputar konfigurasi situs WordPress yang baru saja dibuat. Jika Anda memiliki situs WordPress yang sudah berjalan, prosesnya hampir sama, akan tetapi Anda harus membaca lebih lanjut dokumentasi Lightsail dan juga WordPress. Pastikan juga Anda memiliki salinan (snapshot) basis data serta salinan dari instans WordPressnya.
Konfigurasi Basis Data
Basis data mandiri MySQL yang sudah Anda buat masih belum dapat digunakan untuk mendukung aplikasi WordPress. Anda perlu membuat basis data dan juga tabel-tabel yang dibutuhkan oleh WordPress. Cara paling mudah adalah dengan melakukan ekspor semua tabel dari basis data yang saat ini terdapat pada instans WordPress. Kemudian Anda melakukan import data ke dalam basis data tunggal yang baru kita siapkan pada bab sebelumnya.
Untuk melakukan hal tersebut, ikuti langkah berikut:
- Masuk ke instan WordPress dengan menggunakan program SSH atau program berbasis web untuk SSH yang tersedia di konsol Lightsail. Contoh tangkapan layar berikut memperlihatkan ikon yang perlu diklik:
- Dari dalam terminal yang muncul, isi 2 variabel lingkungan (environment variables) yakni
LSDB_USERNAME
danLSDB_ENDPOINT
yang berisi informasi koneksi ke basis data mandiri.
Anda bisa mendapatkan informasi tersebut pada halaman manajemen basis data yang tersedia di konsol Lightsail. Lihat tangkapan layar berikut ini yang berasal dari halaman Connection details:
- Untuk menyimpan variabel lingkungan, cantumkan isi yang sesuai dengan instans Anda pada contoh kode di bawah ini dan masukkan satu per satu baris pada terminal:
LSDB_USERNAME=UserName LSDB_ENDPOINT=Endpoint
Sebagai contoh, tampilan Anda akan terlihat mirip seperti contoh berikut:
LSDB_USERNAME=dbmasteruser LSDB_ENDPOINT=ls.rds.amazonaws.com
- Dapatkan kata sandi (password) aplikasi Bitnami untuk basis data yang saat ini berjalan di dalam instans WordPress Anda. Kata sandi tersebut disimpan pada berkas
/home/bitnami/bitnami_application_password
. - Gunakan perintah berikut pada terminal untuk membaca isi berkas tersebut:
cat /home/bitnami/bitnami_application_password
. - Salin dan tempel perintah di bawah ini ke dalam editor teks dan salin kata sandinya.
cat /home/bitnami/bitnami_application_password
.
Anda akan membutuhkan kata sandi ini pada langkah selanjutnya. - Masukkan perintah berikut ke dalam jendela terminal:
mysqldump \ -u root \ --databases bitnami_wordpress \ --single-transaction \ --order-by-primary \ -p > dump.sql
Perintah di atas akan menghasilkan sebuah berkas (dengan nama
dump.sql
) yang berisikan struktur basis data dan semua tabel yang saat ini digunakan oleh WordPress. - Saat diminta untuk memasukkan kata sandi, masukkan kata sandi aplikasi Bitnami yang sudah Anda salin sebelumnya. Jendela terminal tidak menampilkan kata sandi saat Anda memasukkannya untuk alasan keamanan. Sampai tahap ini Anda sudah punya hasil ekspor struktur basis data, kini saatnya untuk mengimpor data tersebut ke dalam basis data mandiri yang baru. Anda akan melakukannya dengan memasukkan isi berkas
dump.sql
ke dalam perintahmysql
. - Masukkan perintah berikut pada terminal:
cat dump.sql | mysql \ --user $LSDB_USERNAME \ --host $LSDB_ENDPOINT \ -p
- Ketika diminta memasukkan kata sandi, masukkan kata sandi basis data Lightsail Anda. Jendela terminal tidak akan memunculkan kata sandi saat Anda mengetikkannya untuk alasan keamanan.
- Masukkan perintah MySQL berikut ini ke dalam terminal
echo 'use bitnami_wordpress; show tables' | \ mysql \ --user $LSDB_USERNAME \ --host $LSDB_ENDPOINT \ -p
Perintah di atas akan menampilkan struktur basis data WordPress, dan juga memverifikasi bahwa Anda sudah sukses membuat sebuah basis data baru pada Lightsail Anda.
- Ketika diminta memasukkan kata sandi, masukkan kata sandi basis data mandiri (standalone) Anda. Anda akan mendapat keluaran seperti contoh berikut:
Tables_in_bitnami_wordpress wp_commentmeta wp_comments wp_links wp_options wp_postmeta wp_posts wp_term_relationships wp_term_taxonomy wp_termmeta wp_terms wp_usermeta wp_users
Tes ini mengkonfirmasi bahwa basis data mandiri yang baru sudah siap digunakan oleh instans WordPress Anda.
Konfigurasi WordPress
Pada tahap ini Anda sudah memiliki basis data mandiri yang telah terkonfigurasi, sekarang saatnya memodifikasi berkas konfigurasi WordPress (wp-config.php
). Konfigurasi ini berguna untuk mengarahkan instans WordPress agar menggunakan basis data mandiri baru dan tidak lagi menggunakan basis data yang sebelumnya sudah ada di dalam instans WordPress.
Langkah pertama yang perlu Anda lakukan adalah membuat salinan dari berkas konfigurasi. Jika nanti muncul masalah, Anda cukup menyalin berkas wp-config.php.bak
menjadi wp-config.php
untuk mengulang semua perubahan yang terjadi.
- Masukkan perintah berikut ini
cp /home/bitnami/apps/wordpress/htdocs/wp-config.php \ /home/bitnami/apps/wordpress/htdocs/wp-config.php.bak
Anda akan menggunakan perintah
wp-cli
untuk memodifikasi berkaswp-config
. - Ganti nilai dari parameter-parameter berikut ini menggunakan nilai yang Anda dapat dari basis data Lightsail.
wp config set DB_USER UserName wp config set DB_PASSWORD Password wp config set DB_HOST Endpoint
Tangkapan layar berikut adalah contoh nilai dari basis data Lightsail:
Contohnya sebagai berikut:
wp config set DB_USER dbmasteruser wp config set DB_PASSWORD ‘MySecurePassword!2019’ wp config set DB_HOST ls.rds.amazonaws.com
Untuk menghindari masalah dengan karakter khusus yang bisa saja ada di dalam kata sandi, pastikan untuk membungkus kata sandinya menggunakan tanda petik tunggal (’).
- Masukkan perintah berikut ini:
wp config list
Data keluarannya akan sama dengan data yang kita lihat pada halaman manajemen basis data di konsol Lightsail. Hal ini berarti bahwa perubahannya sudah berhasil.
- Mulai ulang WordPress dengan menggunakan perintah di bawah ini:
sudo /opt/bitnami/ctlscript.sh restart
Kesimpulan
Tulisan ini membahas banyak hal terkait WordPress. Mudah-mudahan artikel ini dapat menambah wawasan dan juga mengilhami Anda untuk mendaftar akun AWS gratis dan mulai membangun sebuah situs WordPress yang tangguh. Tulisan berikutnya dalam seri ini menunjukkan bagaimana cara menangani media yang Anda unggah dan mengskalakan bagian front-end dari situs dengan penyeimbang beban (load balancer) Lightsail.
Pastikan untuk membaca juga bagian dua dalam seri ini, Menggunakan Amazon S3 dengan WordPress untuk Mengirim Media Berkas Secara Aman.
Tulisan ini berasal dari artikel Deploying a highly available WordPress site on Amazon Lightsail, Part 1: Implementing a highly available Lightsail database with WordPress yang ditulis oleh Mike Coleman dan diterjemahkan oleh Tedy Tirtawidjaja