MQTT (Message Queuing Telemetry Transport) adalah sebuah protokol komunikasi machine-to-machine (M2M) yang dirancang untuk perangkat dengan sumber daya terbatas. Beberapa fitur utama MQTT:
- Ringan - Cocok untuk perangkat dengan sumber daya terbatas seperti sensor, mikrokontroler, dll.
- Publish/subscribe - Pengirim pesan (publisher) mengirimkan pesannya ke sebuah topik, dan penerima (subscriber) mendaftarkan diri ke topik tertentu untuk menerima pesan.
- Asynchronous - Komunikasi dilakukan secara asynchronous non-blocking.
- Small packet overhead - Paket data MQTT sangat kecil overhead-nya dibandingkan protokol lain seperti HTTP.
- Three levels of QoS - MQTT menyediakan tiga level kualitas layanan (QoS) yaitu 0, 1, dan 2.
- Connection state awareness - Koneksi MQTT menyimpan state sehingga mudah dipulihkan jika terputus.
- Security - MQTT bisa diamankan menggunakan TLS/SSL.
Kelebihan MQTT membuatnya cocok untuk IoT, komunikasi machine-to-machine, dan aplikasi mobile dimana konektivitas jaringan tidak selalu stabil. MQTT banyak digunakan untuk smart home, sensor monitoring, messaging, dll.
EMQX (dulunya dikenal sebagai EMQTT) adalah salah satu message broker MQTT terpopuler yang bersifat open source. Beberapa fitur utama EMQX:
- High performance - Diklaim mampu menangani puluhan juta koneksi MQTT secara concurrent.
- Multi protocol - Selain MQTT, juga mendukung protokol lain seperti MQTT-SN, CoAP, LwM2M, WebSocket, dan STOMP.
- Built-in bridges - Mendukung bridging antar broker MQTT maupun ke protokol lain.
- Security - Mendukung autentikasi dan enkripsi menggunakan SSL/TLS, PSK cipher suites.
- Flexible rules engine - Aturan penyaringan pesan yang fleksibel berdasarkan topik, header, isi payload, dll.
- Clustering - Bisa dipasang secara terdistribusi dan ter-load balance.
- Plugin system - Mendukung ekstensi dan kustomisasi melalui plugin.
- Monitoring & metrics - Fitur monitoring dan metrics yang komprehensif.
- Multi-tenancy - Mendukung isolasi data antar tenant.
- Open source - Tersedia secara open source dengan lisensi Apache 2.0.
EMQX banyak digunakan untuk implementasi IoT skala besar karena performa dan fiturnya yang enterprise-grade.Pada artikel ini akan dibahas cara konfigurasi EMQX pada AWS EC2. Langkah-langkah sebagai berikut:
Buat Instance EC2 di AWS Cloud
Akses Instance yang sudah dibuat menggunakan ssh dan lakukan update dengan perintah sudo apt-get update && apt-get upgrade
Download Respository EMQX dengan perintah
curl -s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bash
Instal EMQX dengan perintah
sudo apt-get install emqx
Jalankan EMQX
sudo systemctl start emqx
Pastikan emqx sudah berjalan dengan perintah
sudo systemctl status emqx
Berikan akses beberapa Port EMQX
Pada service EC2 Dibagian sidebar pilih Network & Security dan pilih Security Groups
Klik Security Group ID yang digunakan oleh instance EMQX
Tambahkan Inbound rules sesuai gambar diatas
Jika sudah, akses IP Address Instance EMQX http://localhost:18083 atau http://ipaddress-instance:18083
Pada tahap awal instal, masukkan username admin dan password public. Selanjutnya akan diminta password baru atau bisa di skip jika tidak ingin diubah.
Jika berhasil login, maka akan masuk kedalam Dashbord EMQX
Selanjutnya lakukan konfigurasi user dengan klik Access Control dan klik Authentication
Klik +Create
Pilih Password-Based dan Next
Pilih Built-in Database dan Next
Klik Create
Selanjutnya tambahkan users dengan klik Users
Centang Is superuser jika ingin membuat user yang bisa akses semua fitur dan topik. Jika sudah tekan Save.
Selanjutnya install MQTTX Client untuk melakukan testing mqtt broker yang sudah berhasil dibuat
Tampilan MQTTX Client
Tambahkan koneksi baru dengan klik icon +
Klik Connect jika semuanya sudah sesuai dengan mqtt broker emqx yang dikonfigurasi
sebelumnya.
Terakhir tambahkan subscription dengan topik yang dibutuhkan
Komentar
Posting Komentar