Microservices dengan Laravel Events Queues dan Amazon SQS

Microservices dengan Laravel Events Queues dan AmazonSQS

Microservices dengan Laravel Events Queues dan AmazonSQS. wow terkesan keren bukan ada service AWS yang akan kita bahas kali ini. nah sebelum mencoba tutorial ini, pastikan kalian sudah membaca tutorial ini dlu

  1. Implementasi Microservices dengan Laravel Events Queues (part 1)
  2. Implementasi Microservices dengan Laravel Events Queues (part 2)

Nah jika sudah, yuk lanjut pembahasannya.

Introduction

Pada 2 tutorial sebelumnya kita sudah membahas bagaimana membuat aplikasi laravel kita bisa digunakan untuk membangun aplikasi dengan arsitektur Microservices. Tujuan kita membangun aplikasi microservices adalah agar dapat memecah proses/task tertentuk menjadi bagian kecil yang dapat berdiri sendiri dan terdistribusi dengan mudah. jika pada tutorial sebelumnya data queues kita masukkan ke dalam table database aplikasi, nah jika ada aplikasi lain yang lokasinya di luar datacenter kita bagaimana caranya kita agar aplikasi itu bisa membaca queues kita tanpa perlu ribet2 akses database? Yes… thanks to Amazon SQS pekerjaan ini bisa kita lakukan dengan mudah.

 Amazon Simple Queue Service (SQS) merupakan layanan fully managed queue message yang dengan mudah dapat kita gunakan untuk  membangun aplikasi dengan arsitektur microservices, distributed systems, hingga serverless applications. kelebihan menggunakan Amazon SQS dibanding membangun system message queue sendiri adalah, kita hanya perlu menggunakan SDK yang sudah ada dan menggenerate access key dari AWS kita, dan layanan queue ini kita bisa langsung gunakan.

Goal

Pada tutorial kali ini tujuan kita adalah dapat menggunakan Amazon SQS sebagai driver queues untuk aplikasi kita. Jika anda belum memiliki akun AWS namun ingin mencoba menggunakan Amazon SQS anda bisa berlangganan salah satu produk dicloud VM, dan kami akan berikan 1 akun Amazon SQS dengan free 1K Queues/bulan.

Microservices dengan Laravel Events Queues dan Amazon SQS

Ada beberapa langkah yang kita lakukan untuk menggunakan Amazon SQS ini, diantaranya:

Membuat Queue baru pada Amazon SQS

Saya asumsikan kita sudah punya akun amazon ya…pertama2 karena kita akan menggunakan services AWS dari luar, kita pasti perlu user api ( key dan secret ) dan juga hak akses sesuai fitur yang akan kita gunakan. silahkan buat user baru pada services IAM dan berikan hak akses AmazonSQSFullAccess seperti berikut:

create aws user dengan akses amazonsqs full access Microservices

setelah itu kita langsung masuk ke sub services messaging, sebagai berikut :

amazon sqs

Seperti biasa jika belum pernah buat queue akan muncul getting started page, setelah itu kita klik saja “create new queue”. lalu akan muncul form seperti berikut, silahkan isi sesuai kebutuhan anda.

amazon sqs create new queue Microservices

setelah itu klik “create queue” tunggu sampai queue kita jadi dan selanjutnya akan muncul detail queue kita seperti pada gambar berikut :

amazon sqs new queue Microservices

seletalah itu kita perlu memberikan akses ke sebuah user atau secara public ke queue yang kita buat, dengan cara masuk ke tab permissions seperti berikut :

amazon sqs new queue add permission Microservices

kita bisa menambah permission ke semua orang atau hanya ke user tertentu dan kita juga bisa menentukan action apa saja yang bisa diberikan, nah untuk tutorial ini kita set saja everybody dan full action.

nah sampai disini kita sudah selesai membuat user api untuk akses sqs dan membuat queue yang bisa kita akses. sampai disini data yang akan kita gunakan selanjutnya adalah sebagai berikut :

 

Konfigurasi Driver Laravel Queues menggunakan Amazon SQS

Sebelum kita bisa menggunakan Amazon SQS pada aplikasi kita, kita harus menambahkan library / SDK amazon ke dalam aplikasi kita;

Selanjutnya kita akan melakukan modifikasi sedikit untuk file ‘config/queue.php‘ kita agar kita bisa melakukan seting parameter via file env. sebagai berikut :

Setelah itu kita update file env kita dengan data key, secret, url queue, dan regian aws yang tadi sudah kita dapatkan diatas, sebagai berikut:

Menjalankan Events dan Mengirim Queue ke Amazon SQS

Kita dapat melakukan testing apakah events listeners kita bisa masuk ke dalam queues amazon sqs dengan cara menjalankan aplikasi dan melihat queue jobs pada amazon SQS, sebagai berikut :

test laravel events dengan queue Microservices

terlihat handle pada listener tidak dijalankan langsung ketika kita melakukan request, hal ini terjadi karena handle listener sudah dimasukkan ke dalam queues, kita dapat melihat queues pada list jobs amazon SQS melalui vitur view/delete messages, sebagai berikut:

amazon sqs view messages Microservices

Menjalankan Queue dari Amazon SQS ke aplikasi Laravel

Untuk menjalankan job pada queues kita harus menjalankan laravel queue listener pada server yang akan menjalankan job tersebut, sebagai berikut:

laravel queue listener job sqs Microservices

Dengan memiliki hak akses ke Queue pada Amazon SQS tersebut, kita bisa menambakan queue maupun mengambil queue dari mana saja dengan mudah.

Kesimpulan

Membangun aplikasi Microservices dapat dilakukan dengan Laravel Events Queues dan Amazon SQS. Dengan wawasan ini anda bisa membangun sebuah system microservices dengan laravel dimana anda memiliki beberapa aplikasi yang terpisah dan membangi queue task menggunakan Amazon SQS. Semoga membantu

Author: Wisnu Sudarmadi

Programmer juga nyambi di bidang system dan infrastuktur. Berpengalaman sebagai System Engineer sejak tahun 2013. Selama beberapa tahun terakhir bekerja di salah satu Bank BUMN.

Was this article helpful?

Related Articles