View a markdown version of this page

Otomatiskan konfigurasi RabbitMQ di Amazon MQ - AWS Prescriptive Guidance

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Otomatiskan konfigurasi RabbitMQ di Amazon MQ

Yogesh Bhatia dan Afroz Khan, Amazon Web Services

Ringkasan

Amazon MQ adalah layanan broker pesan terkelola yang menyediakan kompatibilitas dengan banyak broker pesan populer. Menggunakan Amazon MQ dengan RabbitMQ menyediakan cluster RabbitMQ yang kuat yang dikelola dengan beberapa broker dan opsi konfigurasi. AWS Cloud Amazon MQ menyediakan infrastruktur yang sangat tersedia, aman, dan dapat diskalakan, dan dapat memproses sejumlah besar pesan per detik dengan mudah. Beberapa aplikasi dapat menggunakan infrastruktur dengan host virtual, antrian, dan pertukaran yang berbeda. Namun, mengelola opsi konfigurasi ini atau membuat infrastruktur secara manual dapat memerlukan waktu dan usaha. Pola ini menjelaskan cara untuk mengelola konfigurasi untuk RabbitMQ dalam satu langkah, melalui satu file. Anda dapat menyematkan kode yang disediakan dengan pola ini dalam alat integrasi berkelanjutan (CI) seperti Jenkins atau Bamboo. 

Anda dapat menggunakan pola ini untuk mengonfigurasi cluster RabbitMQ apa pun. Yang dibutuhkan hanyalah konektivitas ke cluster. Meskipun ada banyak cara lain untuk mengelola konfigurasi RabbitMQ, solusi ini membuat seluruh konfigurasi aplikasi dalam satu langkah, sehingga Anda dapat mengelola antrian dan detail lainnya dengan mudah.

Prasyarat dan batasan

Prasyarat

Persyaratan tambahan

  • Pastikan untuk membuat konfigurasi untuk host virtual dan pengguna secara terpisah dan bukan sebagai bagian dari JSON.

  • Pastikan bahwa konfigurasi JSON adalah bagian dari repositori dan dikontrol versi.

  • Versi CLI rabbitmqadmin harus sama dengan versi server RabbitMQ, jadi opsi terbaik adalah mengunduh CLI dari konsol RabbitMQ.

  • Sebagai bagian dari pipeline, pastikan sintaks JSON divalidasi sebelum setiap proses dijalankan.

Versi produk

  • AWS CLI versi 2.0

  • Ansible versi 2.9.13

  • rabbitmqadmin versi 3.9.13 (harus sama dengan versi server RabbitMQ)

Arsitektur

Tumpukan teknologi sumber

  • Kluster RabbitMQ yang berjalan di mesin virtual (VM) lokal yang sudah ada atau klaster Kubernetes (di tempat atau di cloud)

Tumpukan teknologi target

  • Konfigurasi RabbitMQ otomatis di Amazon MQ untuk RabbitMQ

Arsitektur target

Ada banyak cara untuk mengkonfigurasi RabbitMQ. Pola ini menggunakan fungsionalitas konfigurasi impor, di mana satu file JSON berisi semua konfigurasi. File ini menerapkan semua pengaturan dan dapat dikelola oleh sistem kontrol versi seperti Bitbucket atau Git. Pola ini menggunakan Ansible untuk mengimplementasikan konfigurasi melalui CLI rabbitmqadmin.

Mengotomatiskan konfigurasi RabbitMQ di Amazon MQ

Alat

Layanan AWS

  • Amazon MQ adalah layanan broker pesan terkelola yang memudahkan untuk mengatur dan mengoperasikan broker pesan di cloud.

  • AWS CloudFormationmembantu Anda mengatur AWS infrastruktur dan mempercepat penyediaan cloud dengan infrastruktur sebagai kode.

  • AWS CLImemungkinkan Anda untuk berinteraksi Layanan AWS dengan menggunakan perintah dalam shell baris perintah. 

Alat lainnya

  • rabbitmqadmin adalah alat baris perintah untuk API berbasis HTTP RabbitMQ. Ini digunakan untuk mengelola dan memantau node dan cluster RabbitMQ.

  • Ansible adalah alat sumber terbuka untuk mengotomatisasi aplikasi dan infrastruktur TI.

Repositori kode

File konfigurasi JSON yang digunakan dalam pola ini dan contoh buku pedoman Ansible disediakan di lampiran.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Buat cluster RabbitMQ di. AWS

Jika Anda belum memiliki cluster RabbitMQ, Anda dapat menggunakannya AWS CloudFormationuntuk membuat tumpukan. AWS Atau, Anda dapat menggunakan CloudFormation modul di Ansible untuk membuat tumpukan. Dengan pendekatan yang terakhir, Anda dapat menggunakan Ansible untuk kedua tugas: untuk membuat infrastruktur RabbitMQ dan mengelola konfigurasi. 

AWS Umum, Ansible
TugasDeskripsiKeterampilan yang dibutuhkan

Buat file properti.

Unduh file konfigurasi JSON (rabbitmqconfig.json) di lampiran, atau ekspor dari konsol RabbitMQ.  Ubah untuk mengonfigurasi antrian, pertukaran, dan binding. File konfigurasi ini menunjukkan hal berikut:

  • Membuat dua antrian: dan sample-queue1 sample-queue2 

  • Menciptakan dua pertukaran: sample-exchange1 dan sample-exchange2

  • Menerapkan pengikatan antara antrian dan pertukaran

Konfigurasi ini dilakukan di bawah host virtual root (/), seperti yang dipersyaratkan oleh rabbitmqadmin

JSON

Ambil detail Amazon MQ untuk infrastruktur RabbitMQ.

Ambil detail berikut untuk infrastruktur RabbitMQ di: AWS

  • Nama broker

  • Tuan rumah RabbitMQ

  • Nama pengguna RabbitMQ (pengguna administrator yang dibuat selama pembuatan cluster)

  • Kata sandi RabbitMQ

Anda dapat menggunakan Konsol Manajemen AWS atau AWS CLI untuk mengambil informasi ini. Detail ini memungkinkan buku pedoman Ansible untuk terhubung ke Anda Akun AWS dan menggunakan cluster RabbitMQ untuk menjalankan perintah.

penting

Komputer yang menjalankan buku pedoman Ansible harus dapat mengakses buku Anda Akun AWS, dan AWS CLI harus sudah dikonfigurasi, seperti yang dijelaskan di bagian Prasyarat.

AWS Umum

Buat file hosts_var.

Buat hosts_var file untuk Ansible dan pastikan bahwa semua variabel didefinisikan dalam file. Pertimbangkan untuk menggunakan Ansible Vault untuk menyimpan kata sandi. Anda dapat mengonfigurasi hosts_var file sebagai berikut (ganti tanda bintang dengan informasi Anda):

RABBITMQ_HOST: "***********.mq.us-east-2.amazonaws.com" RABBITMQ_VHOST: "/" RABBITMQ_USERNAME: "admin" RABBITMQ_PASSWORD: "*******"
Ansible

Buat buku pedoman Ansible.

Untuk contoh buku pedoman, lihat ansible-rabbit-config.yaml di lampiran. Unduh dan simpan file ini. Buku pedoman Ansible mengimpor dan mengelola semua konfigurasi RabbitMQ, seperti antrian, pertukaran, dan binding, yang diperlukan aplikasi. 

Ikuti praktik terbaik untuk buku pedoman Ansible, seperti mengamankan kata sandi. Gunakan Ansible Vault untuk enkripsi kata sandi, dan ambil kata sandi RabbitMQ dari file terenkripsi.

Ansible
TugasDeskripsiKeterampilan yang dibutuhkan

Jalankan buku pedoman.

Jalankan playbook Ansible yang Anda buat di epik sebelumnya.

ansible-playbook ansible-rabbit-config.yaml

Anda dapat memverifikasi konfigurasi baru di konsol RabbitMQ.

AWS Umum, RabbitMQ, Ansible

Sumber daya terkait

Lampiran

Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip