Blog AWS Indonesia

Membangun Situs WordPress Dengan Ketersediaan Tinggi di Amazon Lightsail, Bagian 4: Meningkatkan Kinerja dan Skalabilitas dengan Penyeimbang Beban Lightsail

Ini adalah tulisan terakhir dalam rangkaian tulisan tentang cara mendapatkan situs WordPress ketersediaan tinggi di atas Amazon Lightsail. Untuk referensi, tulisan blog lainnya adalah:

  1. Implementasi Basis Data Lightsail Untuk WordPress
  2. Menggunakan Amazon S3 dengan WordPress Untuk Mengantarkan Berkas Media Secara Aman
  3. Meningkatkan Keamanan dan Kinerja Menggunakan Amazon CloudFront

Dalam tulisan ini, Anda akan belajar bagaimana untuk mengaktifkan penyeimbang beban Lightsail (Lightsail load balancer), membuat salinan dari server situs WordPress Anda, membuat instan baru dari salinan tersebut, dan menempatkan instan-instan tersebut di belakang penyimbang beban (load balancer) Anda.

Sebuah load balancer menerima lalu lintas web yang masuk dan meneruskannya ke satu atau lebih server situs. Memiliki beberapa server situs memungkinkan Anda untuk menskalakan jumlah permintaan yang dapat ditangani oleh situs Anda, serta memungkinkan situs Anda untuk tetap responsif jika ada 1 server situs yang bermasalah. Diagram berikut menunjukkan arsitektur solusi, yang menampilkan beberapa ujung depan (front-end) server situs WordPress di belakang load balancer Lightsail, basis data Lightsail dengan ketersediaan tinggi dan menggunakan S3 di samping CloudFront untuk mengirimkan konten media Anda dengan aman.

Prasyarat

Tulisan ini mengasumsikan Anda membangun situs WordPress Anda dengan mengikuti tulisan-tulisan sebelumnya dalam seri ini.

Proses konfigurasi SSL mengharuskan Anda memiliki nama domain terdaftar dan izin yang memadai untuk membuat data tambahan di DNS untuk domain tersebut.

Anda tidak memerlukan AWS atau Lightsail untuk mengelola domain, tetapi contoh dalam tulisan ini menggunakan manajemen DNS Lightsail. Untuk informasi lebih lanjut, lihat tulisan Membuat Zona DNS Untuk Mengelola Data DNS Domain Anda di Amazon Lightsail.

Menyiapkan Penyeimbang Beban (Load Balancer) dan Mengkonfigurasi SSL

Untuk menggunakan peyeimbang beban Lightsail dan mengkonfigurasinya untuk mendukung SSL, lengkapi langkah-langkah berikut:

  1. Buka konsol Lightsail.
  2. Dari menu, pilih Networking.
  3. Pilih Create Load Balancer.
  4. Untuk Identify your load balancer, masukkan nama untuk load balancer Anda.
    Pada tulisan ini nama penyeimbang bebannya adalah wp-lb.
  5. Pilih Create Load Balancer.
    Halaman rincian untuk load balancer baru akan terbuka. Dari sini, tambahkan server situs WordPress Anda yang sudah ada ke dalam peyeimbang beban dan konfigurasikan SSL.
  6. Untuk Target instances, pilih server situs WordPress Anda.
    Tangkapan layar berikut menunjukkan bahwa tulisan ini memilih server situs WordPress-1.
  7. Pilih Attach.
    Butuh beberapa detik untuk instan Anda tersambung dengan load balancer dan sampai Health Check untuk melaporkan status Passed. Lihat tangkapan layar berikut yang menunjukkan status Health Check.
  8. Dari menu, pilih Inbound traffic.
  9. Di bawah Certificates, pilih Create certificate.
  10. Untuk PRIMARY DOMAIN masukkan nama domain yang ingin Anda gunakan untuk mencapai situs WordPress Anda.
    Anda dapat menerima nama sertifikat bawaan Lightsail atau mengubahnya menjadi sesuatu yang Anda inginkan. Tulisan ini menggunakan www.mikegcoleman.com.
  11. Pilih Create.
    Tangkapan layar berikut menunjukkan Create a certificate.

Membuat data CNAME

Seperti yang Anda lakukan saat menangani CloudFront, Anda perlu membuat data CNAME sebagai cara untuk memvalidasi bahwa Anda memiliki kepemilikan domain yang akan Anda buat sertifikatnya.

  1. Salin karakter acak dan subdomain dari atribut nama.
    Tangkapan layar berikut menunjukkan contoh catatan informasi.
  2. Buka lagi konsol Lightsail di tab atau jendela lain.
  3. Pilih Networking.
  4. Pilih nama domain Anda.
  5. Pilih Add record.
  6. Dari menu tarik-turun (drop-down), pilih CNAME record.
    Tangkapan layar berikut menunjukkan pilihan menu tarik-turun.
  7. Untuk Subdomain, masukkan karakter acak dan subdomain yang disalin dari halaman penyeimbang beban (load balancer).
  8. Kembali ke halaman penyeimbang beban (load balancer).
  9. Salin seluruh isi Value
  10. Kembali ke halaman DNS.
  11. Untuk Maps to, masukkan isi teks.
  12. Pilih kotak centang hijau.
    Tangkapan layar berikut menunjukkan rincian catatan CNAME.
  13. Kembali ke halaman penyeimbang beban (load balancer) dan tunggu beberapa menit sebelum menyegarkan halaman.
    Anda akan melihat pemberitahuan bahwa sertifikat diverifikasi dan siap digunakan. Proses ini dapat memakan waktu beberapa menit; terus menyegarkan halaman setiap beberapa menit sampai statusnya berubah. Tangkapan layar berikut menunjukkan pesan pemberitahuan.
  14. Dalam kotak HTTPS, pilih sertifikat Anda dari menu tarik-turun (drop-down). Tangkapan layar berikut menunjukkan kotak HTTPS.
  15. Salin DNS name untuk penyeimbang beban (load balancer) Anda.
    Tangkapan layar berikut menunjukkan contoh nama DNS.
  16. Kembali ke konsol Lightsail DNS dan ikuti langkah 2 hingga 12 sebagai panduan dalam membuat data CNAME yang memetakan alamat situs web Anda ke nama DNS penyeimbang beban.

Gunakan subdomain yang Anda pilih untuk server situs WordPress Anda (di tulisan ini, itu adalah www) dan nama DNS yang Anda salin untuk isian kolom Maps to.
Tangkapan layar berikut menunjukkan rincian catatan CNAME.

Memperbarui Berkas wp-config

Langkah terakhir untuk mengkonfigurasi SSL adalah memperbarui berkas wp-config untuk mengkonfigurasi WordPress agar mengirimkan konten melalui SSL.

  1. Mulai sesi SSH dengan server situs WordPress Anda.
  2. Salin dan tempel kode berikut ke jendela terminal untuk membuat berkas sementara yang berisi teks konfigurasi yang akan ditambahkan ke dalam berkas konfigurasi WordPress.
    cat <<EOT >> ssl_config.txt 
    if (\$_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') \$_SERVER['HTTPS']='on'; 
    EOT
  3. Salin dan tempel perintah sed berikut ke jendela terminal Anda untuk menambahkan baris SSL ke dalam berkas konfigurasi.
    sed -i "/define ('WP_DEBUG', false); /r ssl_config.txt"\
    /home/bitnami/apps/wordpress/htdocs/wp-config.php
  4. Perintah sed mengubah izin pada berkas konfigurasi, jadi Anda harus mengatur ulang izin tersebut. Lihat kode berikut:
    sudo chown bitnami:daemon /home/bitnami/apps/wordpress/htdocs/wp-config.php

    Anda juga perlu memperbarui dua variabel yang digunakan WordPress untuk mengidentifikasi alamat mana yang digunakan untuk mengakses situs Anda.

  5. Memperbarui variabel WP_SITEURL (pastikan untuk menggunakan https) dengan menjalankan perintah berikut di jendela terminal:
    wp config set WP_SITEURL https://<your wordpress site domain name>

    Sebagai contoh, tulisan ini menggunakan kode berikut:

    wp config set WP_SITEURL https://www.mikegcoleman.com

    Anda akan mendapatkan respon bahwa variabel telah berhasil diperbarui.

  6. Perbaharui variabel WP_HOME (pastikan untuk menggunakan https) dengan menjalankan perintah berikut di jendela terminal:
    wp config set WP_HOME https://<your wordpress site domain name>

    Sebagai contoh, tulisan ini menggunakan kode berikut:

    wp config set WP_HOME https://www.mikegcoleman.com

    Anda akan mendapatkan respon bahwa variabel telah berhasil diperbarui.

  7. Mulai ulang (restart) peladen situs WordPress untuk membaca konfigurasi baru dengan menggunakan kode berikut:
    sudo /opt/bitnami/ctlscript.sh restart

Setelah server situs dimulai ulang, kunjungi nama DNS untuk situs WordPress Anda. Situs Anda akan dimuat dan perambah web Anda seharusnya sudah melaporkan koneksi aman.

Anda sekarang dapat menyelesaikan kustomisasi situs WordPress Anda, seperti menambahkan plugin tambahan, menyetel nama blog, atau mengubah tema.

Menskalakan Server Situs WordPress Anda

Dengan server situs WordPress Anda telah terkonfigurasi sepenuhnya, langkah terakhir adalah membuat instan peladen tambahan dan menempatkannya di belakang penyeimbang beban sehingga jika salah satu server situs WordPress Anda gagal, situs Anda masih dapat dijangkau. Manfaat tambahan adalah bahwa situs Anda memiliki skalabilitas yang lebih baik karena ada server situs tambahan untuk menangani permintaan yang masuk.

Selesaikan langkah-langkah berikut:

  1. Pada konsol Lightsail, pilih nama server situs WordPress anda.
  2. Pilih Snapshots.
  3. Untuk Create instance snapshot, masukkan nama snapshot Anda.
    Tulisan ini menggunakan nama WordPress-Version-1. Lihat tangkapan layar berikut rincian snapshot Anda.
  4. Pilih Create snapshot.
    Proses pembuatan snapshot ini membutuhkan beberapa menit sampai selesai.
  5. Klik ikon menu tiga titik di sebelah kanan nama snapshot Anda dan pilih Create new instance.
    Tangkapan layar berikut menunjukkan bagian Recent snapshots.

    Untuk memberikan tingkat redundansi tertinggi, luncurkan peladen situs WordPress Anda ke Availability Zone yang berbeda dalam Region yang sama. Tanpa konfigurasi tambahan, server situs pertama ditempatkan di zona A; tempatkan peladen situs berikutnya dalam dua zona yang berbeda (B dan C akan menjadi pilihan yang baik). Untuk informasi lebih lanjut, lihat Regions and Availability Zones.
  6. Untuk Instance location, pilih Change AWS Region and Availability Zone.
  7. Pilih Change your Availability Zone.
  8. Pilih Availability Zone yang belum pernah Anda gunakan sebelumnya.
    Tangkapan layar berikut menunjukkan pilihan Availability Zone yang tersedia.
  9. Berikan nama untuk instans baru Anda tersebut.
    Tulisan ini menamai instans baru sebagai WordPress-2.
  10. Pilih Create Instance.

Anda sebaiknya memiliki paling tidak dua instans server situs WordPress untuk memberikan tingkat redundansi minimum. Untuk meningkatkan tingkat redundansi, luncurkan instans tambahan lainnya dengan mengikuti langkah-langkah 1-10.

Kembali ke beranda konsol Lightsail, dan tunggu hingga instans Anda kembali berstatus Running.

Menambahkan Instan Anda ke Penyeimbang Beban (Load Balancer)

Sekarang setelah Anda memiliki instan WordPress tambahan, tambahkan instan tersebut ke dalam penyeimbang beban (load balancer). Prosesnya sama dengan yang Anda sudah jalankan sebelumnya saat menambahkan instan pertama:

  1. Pada konsol Lightsail, pilih Networking.
  2. Pilih penyeimbang beban yang telah Anda buat sebelumnya.
  3. Pilih Attach another.
  4. Dari menu tarik-turun (drop-down), pilih nama instan baru Anda.
    Tangkapan layar berikut menunjukkan contoh yang tersedia pada menu tarik-turun (drop-down).
  5. Pilih Attach.
  6. Ulangi langkah 3—5 untuk setiap instans tambahan.

Ketika instans sudah kembali berstatus Passed, situs Anda sepenuhnya siap dan telah beroperasi.

Kesimpulan

Anda telah mengkonfigurasi situs Anda untuk memberikan tingkat redundansi dan kinerja yang baik, sambil memberikan konten Anda melalui koneksi yang aman. S3 dan CloudFront memungkinkan situs Anda mengirimkan konten statis melalui koneksi yang aman, sementara lightsail Lightsail dan basis data memastikan situs Anda dapat terus melayani pelanggan Anda jika terjadi kegagalan.

Tulisan ini berasal dari artikel Deploying a highly available WordPress site on Amazon Lightsail, Part 4: Increasing performance and scalability with a Lightsail load balancer 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