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:

  1. Menggunakan Amazon S3 dengan WordPress untuk Mengirim Berkas Media Secara Aman
  2. Meningkatkan Keamanan dan Kinerja Situs Web Menggunakan Amazon CloudFront
  3. 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:

  1. 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.
  2. 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:

  1. 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:
  2. Dari dalam terminal yang muncul, isi 2 variabel lingkungan (environment variables) yakni LSDB_USERNAME dan LSDB_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:

  3. 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
  4. 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.
  5. Gunakan perintah berikut pada terminal untuk membaca isi berkas tersebut:
    cat /home/bitnami/bitnami_application_password.
  6. 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.
  7. 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.

  8. 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 perintah mysql.
  9. Masukkan perintah berikut pada terminal:
    cat dump.sql | mysql \
    --user $LSDB_USERNAME \
    --host $LSDB_ENDPOINT \
    -p
  10. 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.
  11. 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.

  12. 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.

  1. 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 berkas wp-config.

  2. 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 (’).

  3. 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.

  4. 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

Petra Barus

Petra Barus

Petra Novandi Barus is Developer Advocate at Amazon Web Services based in Jakarta. He is passionate in helping startups and developers in Indonesia to reinvent on behalf their customers. Prior to AWS, Petra co-founded UrbanIndo.com as CTO. The startup became the largest real-estate portal in Indonesia and then was acquired by 99.co. During that time Petra had been a happy AWS customer for 8 years. Petra is also very active in local tech communities