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:
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.
Apa saja yang dibutuhkan untuk membuat Amazon ElastiCache Instans?
- Akun AWS
- EC2 Instans: Baca disini cara membuat EC2 Instans
- WordPress: Baca tutorial install WordPress
- SSH dan user dengan sudo privilege
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.
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:
- 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:
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‘.
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
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 & Security – Security Groups, pilih security group yang ada pada EC2 instans. Clik Inbound rules dan click Edit inbound rules, tambahkan rules seperti berikut:
- 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).
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.
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.
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
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.
Kemudian Create dan tunggu sampai pembuatan instans selesai.
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 & Security – Security Groups, pilih security group yang ada pada EC2 instans. Clik Inbound rules dan click Edit inbound rules, tambahkan rules seperti berikut:
- 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
Test Redis dengan variable set <NAME> “<VALUE>” dan get <NAME>
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.
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.
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
Redis Primary Endpoint:
myredis.abcxyz.node.zone.cache.amazonaws.com:6379
“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
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 *
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.