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 kluster RabbitMQ yang kuat yang dikelola di Amazon Web Services (AWS) Cloud dengan beberapa broker dan opsi konfigurasi. 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

  • AWS Command Line Interface (AWS CLI) diinstal dan dikonfigurasi untuk menunjuk ke akun AWS Anda (untuk petunjuk, lihat dokumentasi AWS CLI)

  • Ansible diinstal, sehingga Anda dapat menjalankan pedoman untuk membuat konfigurasi

  • rabbitmqadmin diinstal (untuk petunjuk, lihat dokumentasi RabbitMQ)

  • Cluster RabbitMQ di Amazon MQ, dibuat dengan metrik Amazon yang sehat CloudWatch

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

Alat

  • 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.

  • AWS CLI memungkinkan Anda berinteraksi dengan layanan AWS dengan menggunakan perintah di shell baris perintah. 

Layanan AWS

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

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

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 menggunakan AWS CloudFormation untuk membuat tumpukan di AWS. Atau, Anda dapat menggunakan modul Cloudformation di Ansible untuk membuat tumpukan. Dengan pendekatan yang terakhir, Anda dapat menggunakan Ansible untuk kedua tugas: untuk membuat infrastruktur RabbitMQ dan mengelola konfigurasi. 

AWS CloudFormation, 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 AWS Management Console atau AWS CLI untuk mengambil informasi ini. Detail ini memungkinkan buku pedoman Ansible untuk terhubung ke akun AWS Anda dan menggunakan cluster RabbitMQ untuk menjalankan perintah.

penting

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

AWS CLI, Amazon MQ

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.

RabbitMQ, Amazon MQ, Ansible

Sumber daya terkait

Lampiran

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