Cara membuat Amazon ElastiCache (Free Tier) Untuk Mempercepat WordPress

Cara membuat Amazon ElastiCache Instans (AWS Free Tier) – Amazon ElastiCache merupakan salah satu llayanan/services dari Amazon Web Services, dimana penyimpanan data dalam memori terkelola penuh, kompatibel dengan Redis, atau Memcached. Mendayai aplikasi waktu nyata dengan latensi di bawah milidetik.

Prologue

Menggunakan CMS (Content Management System) seperti WordPress, untuk mempercepat load saat diakses adalah dengan memanfaatkan plugins yang ada.

Pada tutorial sebelumnya saya membuat artikel tutorial Memcached dan tutorial Redis yang mungkin hampir sama penerapannya tapi berbeda dari segi ketersediaan sumber daya yang digunakan.

Amazon ElastiCache merupakan layanan yang bisa kita gunakan sebagai sumber daya tersendiri untuk mengelola atau memproses penyimpanan data dalam memori yang kompatibel dengan Memcached atau Redis. Dengan memanfaatkan akun Free Tier kita bisa mempergunakan 1 ElastiCache instans yang berjalan 1 bulan penuh selama 12 bulan.

Artikel tutorial sebelumnya yang membahas Memchached dan Redis:

ElastiCache vs noElasticache
ElastiCache vs No ElastiCache

Dari tutorial sebelumnya menggunakan Memcached ataupun Redis menggunakan sumber daya yang sama dengan webserver maupun pemrosesan database. Dan jika menggunakan Amazon ElastiCache ini sumber daya EC2 untuk penggunaan Memchached ataupun Redis terpisah dengan instans sendiri. Gampangnya: kita punya 1 server, 1 khusus untuk aplikasi web dalam hal ini WordPress, 1 lagi khusus untuk pengolahan Memcached atau Redis.

Dalam tutorial kali ini kita akan mempelajari cara membuat Amazon ElastiCache instans dan mengkonfigurasi untuk mempercepat WordPress menggunakan ElastiCache baik menggunakan Amazon ElastiCache for Memcached dan Redis.

amazon ElastiCache
Amazon ElastiCache for Memcached / Redis

Apa saja yang dibutuhkan untuk membuat Amazon ElastiCache Instans?

Cara membuat Amazon ElastiCache Instans

Tentunya dibutuhkan akun AWS untuk dapat menggunakan layanan Amazon ElastiCache, jika belum memiliki akun AWS silahkan baca disini untuk membuat akun AWS Free Tier.

Amazon ElastiCache Free Tier: 750 jam dalam 1 bulan selama 12 bulan (cache.t2micro or cache.t3.micro Node usage) 1vCpu, 0.555GiB Memory

Kita dapat mempergunakan ElastiCache dalam 1 bulan penuh untuk 1 instans berjalan dengan akun Free Tier, dalam tutorial ini bisa menggunakan ElastiCache Memcached atau Redis.

Step 1: Login ke AWS Console

Jika sudah memiliki akun AWS, login ke AWS Management Console.

Step 2: Membuat ElastiCache Instans

Selah login ke AWS Console, navigasi pada bagian All Services > Database > ElastiCache.

ElastiCache dashboard
ElastiCache Dashboard

Pastikan di region mana kita akan Setup ElastiCache sama dengan region EC2 yang kita buat sebelumnya, jangan sampai kita membuat instance EC2 di Singapore, tapi ElastiCache berada di Eropa.

Disini kita akan belajar membuat instans ElastiCache dengan Memcached dan Redis. Yang nantinya bisa digunakan salah satu mana yang lebih cocok untuk kebutuhan lainnya.

Membuat Amazon ElastiCache for Memcached instans

Setelah masuk dasbor pilih Memcached kemudian Create.

Pada Choose location pilih Amazon Cloud. Kemudian pada bagian Memcached settings, secara default sudah terdapat konfigurasi yang hanya kita rubah yaitu Name dan Node type seperti dibawah ini:

ElastiCache memcached 1
ElastiCache Memcached Settings
  • Name: Nama Memcached instans contoh MyWPmemcached
  • Engine version compatibility: (default)
  • Port: 11211 (default)
  • Parameter group: (default)
  • Node type: cache.t2.micro (0.5 GiB) untuk Free Tier
  • Number of nodes: (default: 1)

Setelah itu pada bagian Advanced Memcached settings:

ElastiCache memcached 2
ElastiCache Advanced Memcached Settings

Jika belum memiliki Subnet group maka buat Subnet group baru misal mywpsubnet, pilih subnet yang ingin dimasukkan ke dalam group atau sesuaikan dengan availability zone EC2. Security group mengacu pada firewall instans EC, kemudian Create dan tunggu sampai pembuatan cluster selesai.

Setelah beberapa menit status cluster akan menjadi ‘Available‘.

PicsArt 11 02 09.39.52
Memcached cluster available

Dan kita bisa melihat Configuration Endpoint yang akan kita pakai untuk endpoint host dan port. Configuration Endpoint seperti: memcached. abcxyz1.cfg.zone.cache.amazonaws.com:11211

PicsArt 11 02 09.43.29
Memcached node endpoint
Penambahan Security Group Pada EC2 Instans untuk Memchached

Setelah cluster berhasil dibuat kembali ke EC2 instans dan menambahkan rules baru agar terhubung antara EC2 instans dan ElastiCache Instans.

Pada EC2 dasbor pilih Network & SecuritySecurity Groups, pilih security group yang ada pada EC2 instans. Clik Inbound rules dan click Edit inbound rules, tambahkan rules seperti berikut:

PicsArt 11 02 01.11.26
EC2 Security group
  • Type: Custom TCP
  • Port range: 11211
  • Source type: Custom
  • Source: EC2 Instans Security Group

Kemudian Save rules.

Test ElastiCache Memcached instans

Tes apakah ElastiCache Memcached Instans bisa kita gunakan dengan EC2, akses SSH ke EC2 Instans dan gunakan perintah:

telnet <host-conf-endpoint> <port>

Setelah masuk ke telnet, check versi apakah sudah benar versi engine Memcached seperti yang tertera pada detail instans ElastiCache Memcached menggunakan perintah version dan stats (untuk mengetahui statistic umum).

memcached test1
Memcached version
version
VERSION 1.6.6
stats
STAT pid 1
STAT uptime 384164
STAT time 1635821899
STAT version 1.6.6
------
END

Terlihat statistik umum seperti diatas, kemudian kita test menggunakan variable untuk menyimpan data ke memory.

Bisa menggunakan Memcached dokumen referensi resmi dari Memcached.org. Kita menggunakan penambahan key dan value pada memory.

add key flags exptime bytes [noreply]  
value  
  • key: Ini adalah kunci untuk data yang disimpan dan diambil dari memcached.
  • flags: Ini adalah bilangan bulat tidak bertanda 32-bit yang disimpan server dengan data (disediakan oleh pengguna), dan kembali bersama data saat item diambil.
  • exptime: exptime adalah waktu kedaluwarsa dalam hitungan detik. 0 berarti tidak ada penundaan. Jika lebih dari 30 hari, memcached menggunakannya sebagai stempel waktu UNIX untuk kedaluwarsa.
  • bytes: Ini adalah jumlah byte dalam blok data yang perlu disimpan. Ini adalah panjang data yang disimpan dalam memcached
  • noreply: Ini adalah parameter opsional. Ini digunakan untuk memberi tahu server agar tidak mengirim balasan apa pun.
  • value: Ini adalah data yang harus disimpan. Data harus diteruskan pada baris baru setelah menjalankan perintah dengan opsi di atas.
memcached test2
Memcached add key
add mywebsite 0 600 8
judisweb
STORED
get mywebsite
VALUE mywebsite 0 8
judisweb
END

Kemudian gunakan perintah quit untuk keluar dari telnet.

Dengan cara melakukan test menambahkan key dan kita meminta untuk menampilkan dengan sukses maka ElastiCache Memcached sudah bisa digunakan.

Membuat Amazon ElastiCache for Redis Instans

Setelah masuk dasbor pilih Redis kemudian Create.

JudisWeb create redis1
Redis settings

Pada Choose location pilih Amazon Cloud. Kemudian pada bagian Redis settings, secara default sudah terdapat konfigurasi yang hanya kita rubah settings seperti dibawah ini:

  • Name: nama redis instance
  • Engine version compatibility: (default)
  • Port: (default)
  • Parameter group: (default)
  • Node type: cache.t2.micro (0.5GiB) Free Tier
  • Number of replica: 0

Disini untuk replica atau node hanya 0 atau primary, AWS menawarkan fitur fail-over dimana jika ada kegagalan instans Redis akan memungkinkan digantikan dengan node lainnya, tapi fitur ini tidak free. Ibaratnya jika kita mengaktifkan 2 node sama saja dengan menjalankan 2 instans dimana jika 2 node tersebut berjalan penuh 1 bulan maka kita akan dikenakan biaya dikarenakan kuota limit 750 jam sudah habis selama 15 hari pemakaian 2 instans berjalan.

Setelah itu pada bagian Advanced Redis Settings

JudisWeb create redis2
Advanced Redis Settings

Jika belum memiliki Subnet group maka buat Subnet group baru misal myredissubnet, pilih subnet yang ingin dimasukkan ke dalam group atau sesuaikan dengan availability zone EC2. Security group mengacu pada firewall instans EC2.

JudisWeb create redis3
Advanced Redis Settings

Kemudian Create dan tunggu sampai pembuatan instans selesai.

JudisWeb redis elastic endpoint
Redis Primary Endpoint

Dan kita bisa melihat Primary Endpoint yang akan kita pakai untuk endpoint host dan port. Primary Endpoint seperti: myredis. abcxyz1.0001.zone.cache.amazonaws.com:6379

Penambahan Security Group Pada EC2 Instans untuk Redis

Setelah Redis instance berhasil dibuat kembali ke EC2 instans dan menambahkan rules baru agar terhubung antara EC2 instans dan ElastiCache Instans.

Pada EC2 dasbor pilih Network & SecuritySecurity Groups, pilih security group yang ada pada EC2 instans. Clik Inbound rules dan click Edit inbound rules, tambahkan rules seperti berikut:

JudisWeb secgroup redis
EC2 Security group
  • Type: Custom TCP
  • Port range: 6379
  • Source type: Custom
  • Source: EC2 Instans Security Group

Kemudian Save rules.

Test ElastiCache Redis instans

Tes apakah ElastiCache Redis Instans bisa kita gunakan dengan EC2, akses SSH ke EC2 Instans dan gunakan perintah:

telnet <redishost-endpoint> <port>

Kemudian check versi Redis dengan perintah INFO.

Connected to myredis.abcxyz1.0001.apse1.cache.amazonaws.com.
Escape character is '^]'.
INFO
$3632
# Server
redis_version:6.0.5
redis_git_sha1:0
redis_git_dirty:0
redis_build_id:0
redis_mode:standalone
os:Amazon ElastiCache
arch_bits:64
multiplexing_api:epoll
atomicvar_api:atomic-builtin
gcc_version:0.0.0
process_id:1
run_id:38aaf37af017b364d8008bda5a7a4512eefb8da6
tcp_port:6379
Screenshot 20211102 221723053

Test Redis dengan variable set <NAME> “<VALUE>” dan get <NAME>

Screenshot 20211102 222148267 1

Kemudian gunakan perintah quit untuk keluar dari telnet.

Dengan cara melakukan test set (key, value) dan get key, maka ElastiCache Redis sudah bisa digunakan.

Mengaktifkan Cache & Konfigurasi ElastiCache Instans dengan WordPress

Dibutuhkan ekstensi atau plugins untuk mengaktifkan Memcached atau Redis. Pada tutorial ini saya menggunakan plugin W3 Tools Cache, bisa menggunakan plugins yang berfungsi sama misalnya: Litespeed Cache, W3 Tools Cache, Use Cache dan lainnya. Buka halaman WP admin dan tambahkan plugins dengan kata kunci W3.

Install plugin W3 Tools Cache.

w3 jwredis

Kemudian aktifkan, dan pada dashboard admin akan muncul menu Performance. Pilih General Settings dan aktifkan Page Cache, Database Cache dan set Method menggunakan Memcached atau Redis, kemudian Save Settings.

memcached minify page w3
w3 redis 2

Selanjutnya jika sudah mengset metode Memcached atau Redis dan menyimpan settings tersebut, pada setiap settings lakukan pengetesan dengan mengisikan alamat hostname:port/IP:port dimana hostname dan adalah endpoint dari ElastiCache Instans yang telah kita buat sebelumnya.

Memcached Configuration Endpoint:

mymemcached.abcxyz.cfg.zone.cache.amazonaws.com:11211
PicsArt 11 02 04.12.47
Memcached Test passed

Redis Primary Endpoint:

myredis.abcxyz.node.zone.cache.amazonaws.com:6379
JudisWeb ElastiCache redis w3
Redis Test passed

Test passed” mengindikasikan bahwa Memcached atau Redis berfungsi dengan baik menggunakan plugins W3 Tools Cache.

Setelah mengaktifkan semua cache. Logout dari halaman admin WordPress kemudian reload/refresh halaman utama website.

Opsional

Untuk memastikan W3 Tools Cache mengkonfigurasi cache pada ElastiCache instans dengan cara akses via SSH EC2 dan gunakan perintah berikut:

Untuk Memcached:

memcdump --servers=<endpoint-conf:port>
memcdump --servers=mymemcached.abcxyz.cfg.zone.cache.amazonaws.com:11211
memcdumps
W3 Tools Cache with ElastiCache Instance Memcached

Troubleshooting: jika perintah memcdump tidak diketahui, maka install terlebih dahulu libmemcached-tools:

sudo apt install libmemcached-tools -y

Untuk Redis:

Buka telnet redis host dan port ketikkan perintah berikut:

keys *
Screenshot 20211102 222739806 1
W3 Tools Cache with ElastiCache Instance Redis

Kesimpulan

Dari tutorial diatas kita dapat mempelajari Cara membuat Amazon ElastiCache (Free Tier) Untuk Mempercepat WordPress. Dimana kita bisa menggunakan Amazon ElastiCache for Memcached atau Amazon ElastiCache for Redis melakukan test, mengaktifkan mode cache dan mengkonfigurasikan dengan WordPress menggunakan plugins W3 Tools Cache. Dimana kita bisa memanfaatkan AWS Free Tier ElastiCache selama 1 bulan penuh selama 12 bulan.

Semoga bermanfaat.

Tinggalkan komentar