Amazon EventBridge: Panduan Arsitektur Berbasis Peristiwa
Panduan ini memandu Anda menggunakan Amazon EventBridge untuk membangun aplikasi berbasis peristiwa yang skalabel, dengan contoh praktis, langkah penyiapan, dan praktik terbaik.
Amazon EventBridge adalah layanan event bus serverless yang andal dan sepenuhnya dikelola, yang memungkinkan pengembang membangun arsitektur berbasis peristiwa dengan beban operasional minimal.
Dalam pekerjaan saya dengan sistem cloud-native, saya melihat betapa pentingnya respons waktu nyata dan pemisahan layanan untuk membangun aplikasi yang skalabel dan mudah dirawat, dan EventBridge menghadirkan hal tersebut.
Apa itu Amazon EventBridge?
Sebelum masuk ke konfigurasi, penting untuk memahami apa itu EventBridge, mengapa hal ini penting, dan bagaimana posisinya dalam ekosistem alat berbasis peristiwa AWS yang lebih luas.
Gambaran umum Amazon EventBridge
Amazon EventBridge ialah layanan event bus serverless sepenuhnya dikelola yang memungkinkan aplikasi berkomunikasi melalui peristiwa hampir secara waktu nyata.
Layanan ini menyederhanakan tugas perutean peristiwa antara produsen peristiwa (sumber perubahan, seperti S3, DynamoDB, atau aplikasi kustom) dan konsumen peristiwa (layanan yang menindaklanjuti perubahan tersebut, seperti Lambda, Step Functions, atau SNS).
Gambar berisi diagram visual Amazon EventBridge yang merutekan peristiwa dari produsen ke beberapa target. Sumber: AWS Blogs
EventBridge dirancang dengan mempertimbangkan skalabilitas dan fleksibilitas.
Layanan ini otomatis melakukan penskalaan untuk menangani jutaan peristiwa per detik dan memungkinkan logika perutean yang kompleks melalui aturan berbasis JSON.
Beberapa kemampuan utama meliputi:
Integrasi native dengan lebih dari 90 layanan AWS (mis., EC2, CodePipeline, CloudTrail)
Dukungan untuk sumber peristiwa SaaS eksternal, seperti Zendesk, Shopify, dan Datadog
Penemuan dan registri skema bawaan, yang secara otomatis mendeteksi dan mendokumentasikan struktur peristiwa
Pengarsipan dan pemutaran ulang peristiwa, untuk mendukung debugging, audit, atau pemrosesan ulang peristiwa masa lalu
Hal ini menjadikan EventBridge alat dasar untuk membangun arsitektur cloud yang terlepas-kopel dan tangguh.
EventBridge dan arsitektur berbasis peristiwa
EventBridge dibangun di atas model arsitektur berbasis peristiwa (event-driven architecture/EDA).
Dalam EDA, layanan berkomunikasi dengan memancarkan dan merespons peristiwa, alih-alih melakukan pemanggilan sinkron satu sama lain.
Misalnya, alih-alih suatu layanan memanggil API layanan lain untuk memulai tugas, layanan tersebut cukup memancarkan peristiwa seperti "ImageUploaded", dan layanan lain yang mendengarkan peristiwa tersebut akan bereaksi sesuai dengan itu.
Gambar di bawah mengilustrasikan pengaturan ini, dengan Amazon API Gateway berfungsi sebagai titik masuk yang aman ke event bus EventBridge pusat.
Gambar yang menunjukkan Amazon API Gateway sebagai titik masuk yang aman ke bus EventBridge inti. Sumber: AWS Blogs
Manfaat arsitektur berbasis peristiwa:
Gambar yang memperlihatkan manfaat arsitektur berbasis peristiwa.
Kopel longgar (loose coupling): Layanan bersifat mandiri dan tidak saling mengetahui keberadaan satu sama lain.
Skalabilitas: Sistem dapat melakukan penskalaan komponen secara independen.
Toleransi kesalahan: Kegagalan pada satu bagian sistem tidak merambat ke bagian lain.
Pemrosesan asinkron: Meningkatkan responsivitas dan kinerja sistem.
EventBridge berperan sebagai tulang punggung EDA di AWS, memungkinkan Anda merangkai microservices, sumber daya cloud, dan bahkan sistem pihak ketiga tanpa keterikatan erat.
> Jika Anda ingin membangun pemahaman yang solid tentang ekosistem berbasis peristiwa AWS, jelajahi kursus AWS Cloud Technology and Services.
Perbedaan EventBridge dengan opsi berbasis peristiwa lainnya
AWS menyediakan beberapa alat untuk penanganan peristiwa dan pesan, tetapi EventBridge menawarkan fitur unik yang membedakannya dari alternatif seperti SNS dan SQS.
SNS (Simple Notification Service)
SNS ideal untuk messaging pub/sub sederhana.
Anda dapat memublikasikan pesan ke topik dan mengirimkannya ke banyak pelanggan, seperti email, SMS, atau Lambda.
Namun, layanan ini tidak memiliki perutean dan pemfilteran peristiwa yang canggih.
SQS (Simple Queue Service)
SQS menyediakan antrean andal dan skalabel untuk penyimpanan dan pemrosesan pesan.
Konsumen melakukan polling antrean untuk pesan, yang berguna untuk sistem asinkron dan terlepas-kopel, namun tidak mendukung perutean berbasis push waktu nyata.
EventBridge
EventBridge menggabungkan yang terbaik dari keduanya: perutean waktu nyata, pemfilteran kaya, validasi skema, dan integrasi SaaS.
Layanan ini dirancang untuk sistem berbasis peristiwa yang kompleks dan berskala besar yang membutuhkan aturan fleksibel, banyak target, dan integrasi mulus di berbagai layanan.
CloudWatch Events
CloudWatch Events adalah pendahulu EventBridge.
EventBridge adalah penggantinya generasi berikutnya, yang menambahkan:
Integrasi mitra SaaS
Custom event bus
Penemuan dan registri skema
Peningkatan manajemen aturan dan izin
Jika Anda masih menggunakan CloudWatch Events, pertimbangkan untuk bermigrasi ke EventBridge demi kapabilitas yang lebih kaya.
Berikut perbandingan cepat layanan berbeda yang dibahas:
Fitur
SNS
SQS
EventBridge
Model Pengiriman
Push (pub/sub)
Polling (queue)
Push (dengan perutean berbasis aturan)
Pemfilteran Peristiwa
Dasar (atribut pesan)
Tidak ada
Lanjutan (pencocokan pola JSON)
Dukungan Fan-out
Ya
Tidak
Ya
Dukungan Skema
Tidak
Tidak
Ya (schema registry)
Integrasi dengan SaaS
Terbatas
Terbatas
Ya (integrasi SaaS native)
Pemutaran Ulang Peristiwa
Tidak
Dengan retensi
Ya
Dead-letter Queue (DLQ)
Ya
Ya
Ya
Komponen Inti dan Fitur Utama Amazon EventBridge
Untuk menggunakan Amazon EventBridge secara efektif, penting memahami blok penyusunnya yang inti.
Komponen-komponen ini bekerja sama untuk memungkinkan alur kerja dinamis berbasis peristiwa dengan beban infrastruktur minimal.
Di bawah ini rincian setiap komponen, fungsinya, dan cara menggunakannya.
Event bus
Inti EventBridge adalah event bus, yang bertindak sebagai saluran tempat semua peristiwa mengalir.
Sebuah event bus menerima peristiwa dari layanan AWS, aplikasi kustom, atau penyedia SaaS, lalu merutekannya ke target yang sesuai berdasarkan aturan pencocokan.
Gambar di bawah menunjukkan bagian EventBridge Buses di AWS Console.
Gambar berisi tangkapan layar AWS Console yang menampilkan bagian EventBridge Buses.
Jenis event bus
Berikut jenis event bus yang tersedia di AWS:
Default Event Bus:
Disediakan otomatis di setiap akun AWS.
Utamanya digunakan untuk menerima peristiwa dari layanan AWS (seperti perubahan status EC2 atau peristiwa S3).
Anda juga dapat mengirim peristiwa kustom Anda sendiri ke bus default jika tidak diperlukan bus lain.
Custom Event Bus:
Dibuat oleh Anda untuk mendukung domain, layanan, atau beban kerja berbeda.
Ideal untuk mengisolasi peristiwa aplikasi atau memisahkan lingkungan pengembangan dan produksi.
Memungkinkan kontrol lebih detail atas kebijakan akses dan perutean peristiwa.
Contoh kasus penggunaan:
Buat event bus terpisah untuk domain berbeda, seperti satu untuk operasi e-commerce dan satu lagi untuk analitik, agar aliran peristiwa tetap terisolasi dan mudah dikelola.
Membuat custom event bus:
aws events create-event-bus --name my-app-busDidukung oleh
Memahami rules dan targets
Rules menentukan peristiwa mana yang harus dirutekan ke target mana.
Rules menggunakan pencocokan pola JSON untuk memfilter peristiwa yang masuk pada bus dan meneruskannya ke satu atau beberapa target.
Aspek kunci rules:
Anda dapat memfilter atribut peristiwa apa pun, seperti source, detail-type, atau field detail bertingkat.
Beberapa rules dapat mencocokkan peristiwa yang sama, sehingga memungkinkan perilaku fan-out.
Satu rule dapat memiliki banyak target, memungkinkan sebuah peristiwa memicu pipeline pemrosesan paralel.
Target yang didukung meliputi:
AWS Lambda
Step Functions
Kinesis Data Streams
SNS, SQS
Tugas ECS
API Gateway
Gambar berisi ikon layanan AWS untuk target yang didukung.
Contoh berikut menunjukkan cara mendefinisikan event rule dan menautkannya ke fungsi Lambda sebagai target:
{"source":["myapplication.upload"],"detail-type":["Image Uploaded"]}Didukung oleh
Pipes
EventBridge Pipes menyederhanakan koneksi antara sumber (seperti DynamoDB Streams) dan target (seperti SQS atau Lambda) tanpa perlu kode kustom.
Gambar di bawah menunjukkan bagian EventBridge Pipes di AWS Console.
Gambar berisi tangkapan layar AWS Console yang menampilkan bagian EventBridge Pipes.
Fitur utama Pipes:
Pemfilteran: Gunakan pola peristiwa untuk membatasi peristiwa yang mengalir melalui pipe.
Pemerkayaan: Tambahkan konteks dengan memanggil fungsi Lambda untuk memperkaya peristiwa sebelum dikirim.
Transformasi: Ubah bentuk peristiwa menggunakan input transformer.
Kapan menggunakan Pipes:
Menghubungkan aliran data (mis., Kinesis atau DynamoDB) ke konsumen hilir.
Mengintegrasikan layanan AWS dengan format peristiwa berbeda.
Scheduler
EventBridge Scheduler memungkinkan eksekusi tugas berbasis waktu, cocok untuk mengotomatisasi operasi seperti pencadangan harian, sinkronisasi data per jam, atau memicu alur kerja sesuai jadwal.
Gambar di bawah menunjukkan bagian EventBridge Scheduler di AWS Console.
Gambar berisi tangkapan layar AWS Console yang menampilkan bagian EventBridge Scheduler.
Fitur utama meliputi:
Eksekusi sekali jalan atau berulang
Dukungan untuk ekspresi cron atau berbasis rate
Kontrol atas zona waktu, jendela mulai/akhir, dan logika retry
aws events start-replay \
--replay-name "MyReplay"\
--source-arn "arn:aws:events:region:account-id:archive/MyApplicationArchive"\--destination"arn:aws:events:region:account-id:event-bus/my-application-bus"Didukung oleh
Komponen-komponen ini—event bus, rules, pipes, scheduler, dan schema registry—bersama-sama membentuk platform yang komprehensif dan fleksibel untuk membangun serta mengelola arsitektur berbasis peristiwa yang tangguh di AWS.
Masing-masing memainkan peran unik dalam melepaskan ketergantungan layanan, meningkatkan skalabilitas, dan mempercepat pengembangan aplikasi.
Membangun Aplikasi Berbasis Peristiwa dengan EventBridge
Setelah penyiapan dasar, saatnya menerapkan Amazon EventBridge dalam alur kerja aplikasi nyata.
Menyiapkan EventBridge di aplikasi Anda
Berikut cara memancarkan peristiwa kustom dari aplikasi Anda menggunakan AWS CLI:
Source: Nama atau domain layanan yang memancarkan.
DetailType: Jenis peristiwa yang dipancarkan.
Detail: Payload, dikodekan sebagai JSON yang di-stringify.
EventBusName: Bus yang akan menerima dan merutekan peristiwa.
Anda dapat mengintegrasikan logika ini langsung ke fungsi Lambda, layanan backend, atau beban kerja terkontainerisasi menggunakan SDK (mis., Boto3, AWS SDK for JavaScript).
Merutekan peristiwa antar layanan AWS
Perutean peristiwa antar layanan AWS memungkinkan integrasi mulus, seperti memicu fungsi Lambda dari tindakan S3 melalui EventBridge.
Skenario contoh: Hubungkan Amazon S3 ke fungsi Lambda melalui EventBridge.
Langkah 01: Buat bucket S3 dan unggah sebuah objek.
Langkah 02: Aktifkan notifikasi peristiwa S3 melalui EventBridge:
Buka bucket S3.
Aktifkan opsi "EventBridge" di bawah Event Notifications.
Langkah 03: Buat aturan EventBridge untuk mencocokkan pola peristiwa:
{"source":["aws.s3"],"detail-type":["Object Created"],"detail":{"bucket":{"name":["my-bucket"]}}}Didukung oleh
Langkah 04: Lampirkan fungsi Lambda sebagai target rule untuk memproses objek yang diunggah.
Pola ini memungkinkan Anda memperluas pemrosesan kemudian dengan menambahkan target lain seperti Step Functions atau SNS untuk notifikasi.
Contoh praktis: Alur unggah dan ubah ukuran gambar
Kita dapat menelusuri pipeline berbasis peristiwa yang umum:
01: Pengguna mengunggah gambar ke S3.
02: S3 memancarkan peristiwa ke bus EventBridge default.
03: EventBridge mencocokkan aturan untuk s3:ObjectCreated:* dan merutekannya ke fungsi Lambda.
04: Lambda mengubah ukuran gambar, menyimpannya ke bucket S3 berbeda, dan mencatat keluarannya.
Pola ini kuat karena:
Skalabel (dapat memproses ribuan peristiwa per detik).
Modular (fungsi ubah ukuran gambar dapat diganti tanpa menyentuh komponen lain).
Memungkinkan paralelisme (peristiwa yang sama dapat dikirim ke pipeline analitik atau notifikasi secara bersamaan).
Menambahkan rules untuk skalabilitas dan fleksibilitas
Anda dapat dengan mudah melakukan fan-out peristiwa dengan menautkan beberapa target ke satu rule:
Ini memungkinkan aplikasi Anda memproses peristiwa, memberi notifikasi kepada pengguna, dan memperbarui log, semuanya secara paralel, tanpa mengikat tugas-tugas tersebut.
Mengoptimalkan kinerja dan memastikan keamanan
Optimalkan kinerja dan keamanan dengan merancang pola peristiwa yang presisi untuk meminimalkan pemrosesan yang tidak perlu dan mengurangi risiko.
Merancang pola peristiwa yang efisien
Hindari pola yang luas atau serba-masuk yang memicu eksekusi tidak perlu. Sebaliknya, saring peristiwa secara presisi:
{"source":["myapplication.service"],"detail-type":["ImageUploaded"],"detail":{"bucket":["media-uploads"]}}Didukung oleh
Ini mengurangi biaya, meningkatkan latensi, dan memastikan hanya peristiwa relevan yang diproses.
Menerapkan kontrol keamanan yang tangguh
Keamanan sangat penting dalam arsitektur serverless. Ikuti pedoman berikut:
Gunakan prinsip least privilege IAM: Berikan hanya izin yang diperlukan untuk memublikasikan atau mengonsumsi peristiwa.
Aktifkan enkripsi: EventBridge mendukung enkripsi saat diam (at rest) menggunakan AWS KMS.
Terapkan DLQ (Dead Letter Queue) untuk pengiriman yang gagal:
"DeadLetterConfig":{"Arn":"arn:aws:sqs:region:account-id:my-dlq"}Didukung oleh
DLQ menangkap peristiwa yang tidak dapat dikirim, sehingga Anda dapat mendiagnosis dan memproses ulang nanti.
> Jika Anda ingin pendalaman tentang pengamanan aplikasi cloud dan pengelolaan izin AWS, simak kursus AWS Security and Cost Management.
Mengelola biaya dan kuota layanan
Untuk mengelola biaya dan kinerja secara efektif, penting memahami model harga EventBridge dan memantau kuota layanan secara berkala.
Memahami struktur harga
Anda ditagih per:
Peristiwa yang dipublikasikan (biaya per sejuta peristiwa)
Peristiwa yang diputar ulang
Penggunaan Pipe
Pekerjaan Scheduler
Gratis bulanan mencakup 100.000 peristiwa, yang cukup untuk sebagian besar kasus penggunaan pengembangan dan produksi kecil.
Memantau dan menyesuaikan kuota layanan
Lacak dan ajukan peningkatan menggunakan:
aws service-quotas list-service-quotas --service-code eventsDidukung oleh
Kuota kunci untuk dipantau:
Rule per event bus
Target per rule
Pemanggilan per detik
Menskalakan penggunaan secara bertanggung jawab memastikan sistem Anda tetap andal saat beban meningkat.
Konfigurasi EventBridge tingkat lanjut dan alternatif
Untuk arsitektur berbasis peristiwa yang lebih kompleks, pertimbangkan fitur EventBridge tingkat lanjut dan pola alternatif untuk meningkatkan kontrol, keamanan, dan fleksibilitas penjadwalan.
Distribusi peristiwa lintas akun
Aktifkan berbagi peristiwa yang aman antar akun AWS:
{"Statement":[{"Effect":"Allow","Principal":{"AWS":"arn:aws:iam::123456789012:root"},"Action":"events:PutEvents","Resource":"arn:aws:events:region:account-id:event-bus/shared-bus"}]}Didukung oleh
Gunakan AWS CloudTrail untuk mengaudit penggunaan dan memastikan kepatuhan.
Fitur lanjutan EventBridge scheduler
Lebih dari sekadar penjadwalan dasar dengan:
Strategi retry yang fleksibel
Kepatuhan jendela waktu
Dukungan untuk ekspresi cron atau rate()
Contoh ekspresi cron:
Memicu alur kerja pada pukul 09.00 setiap Senin:
--schedule-expression "cron(0 9 ? * MON *)"Didukung oleh
Kapan mempertimbangkan alternatif
Bergantung pada kebutuhan Anda, Anda mungkin ingin mempertimbangkan layanan AWS lain yang lebih sesuai untuk kasus penggunaan tertentu.
Berikut beberapa contohnya:
Kasus Penggunaan
Alternatif
FIFO atau urutan ketat
Amazon SQS FIFO
Throughput tinggi dan latensi rendah
Amazon MSK (Kafka)
Orkestrasi kompleks
Step Functions
Notifikasi sederhana
Amazon SNS
Kesimpulan
Amazon EventBridge adalah blok bangunan dasar untuk aplikasi modern berbasis cloud, yang memungkinkan Anda membangun sistem yang skalabel dan terlepas-kopel, merespons peristiwa waktu nyata di seluruh platform AWS dan SaaS, serta mengintegrasikan alur kerja dengan beban infrastruktur minimal.
Untuk sukses dengan EventBridge, fokuslah pada perancangan domain berbasis peristiwa yang modular, menerapkan praktik terbaik least-privilege dan dead-letter queue, serta terus memantau penggunaan, kuota, dan biaya.
Saya Don—seorang Konsultan, Pengembang, Insinyur, Arsitek Digital, dan Penulis (singkatnya, saya mengenakan banyak topi 👨💻🎩). Saya senang menjaga platform digital tetap berjalan mulus dan selalu mencari cara untuk meningkatkannya. Saat tidak menulis kode, saya menulis tentang kecerdasan buatan, ilmu data, dan segala hal terkait teknologi.
\n
\n
Selama bertahun-tahun, saya telah mengerjakan berbagai hal mulai dari membangun dan mengoptimalkan perangkat lunak hingga menerapkan model AI dan merancang solusi cloud. Saya meraih gelar Master of Science di bidang Kecerdasan Buatan dan Bachelor of Science di bidang Ilmu Komputer, keduanya dari Brunel University London.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Amazon EventBridge adalah layanan event bus serverless yang andal dan sepenuhnya dikelola, yang memungkinkan pengembang membangun arsitektur berbasis peristiwa dengan beban operasional minimal.
Dalam pekerjaan saya dengan sistem cloud-native, saya melihat betapa pentingnya respons waktu nyata dan pemisahan layanan untuk membangun aplikasi yang skalabel dan mudah dirawat, dan EventBridge menghadirkan hal tersebut.
Apa itu Amazon EventBridge?
Sebelum masuk ke konfigurasi, penting untuk memahami apa itu EventBridge, mengapa hal ini penting, dan bagaimana posisinya dalam ekosistem alat berbasis peristiwa AWS yang lebih luas.
Gambaran umum Amazon EventBridge
Amazon EventBridge ialah layanan event bus serverless sepenuhnya dikelola yang memungkinkan aplikasi berkomunikasi melalui peristiwa hampir secara waktu nyata.
Layanan ini menyederhanakan tugas perutean peristiwa antara produsen peristiwa (sumber perubahan, seperti S3, DynamoDB, atau aplikasi kustom) dan konsumen peristiwa (layanan yang menindaklanjuti perubahan tersebut, seperti Lambda, Step Functions, atau SNS).
Gambar berisi diagram visual Amazon EventBridge yang merutekan peristiwa dari produsen ke beberapa target. Sumber: AWS Blogs
EventBridge dirancang dengan mempertimbangkan skalabilitas dan fleksibilitas.
Layanan ini otomatis melakukan penskalaan untuk menangani jutaan peristiwa per detik dan memungkinkan logika perutean yang kompleks melalui aturan berbasis JSON.
Beberapa kemampuan utama meliputi:
Hal ini menjadikan EventBridge alat dasar untuk membangun arsitektur cloud yang terlepas-kopel dan tangguh.
EventBridge dan arsitektur berbasis peristiwa
EventBridge dibangun di atas model arsitektur berbasis peristiwa (event-driven architecture/EDA).
Dalam EDA, layanan berkomunikasi dengan memancarkan dan merespons peristiwa, alih-alih melakukan pemanggilan sinkron satu sama lain.
Misalnya, alih-alih suatu layanan memanggil API layanan lain untuk memulai tugas, layanan tersebut cukup memancarkan peristiwa seperti "ImageUploaded", dan layanan lain yang mendengarkan peristiwa tersebut akan bereaksi sesuai dengan itu.
Gambar di bawah mengilustrasikan pengaturan ini, dengan Amazon API Gateway berfungsi sebagai titik masuk yang aman ke event bus EventBridge pusat.
Gambar yang menunjukkan Amazon API Gateway sebagai titik masuk yang aman ke bus EventBridge inti. Sumber: AWS Blogs
Manfaat arsitektur berbasis peristiwa:
Gambar yang memperlihatkan manfaat arsitektur berbasis peristiwa.
EventBridge berperan sebagai tulang punggung EDA di AWS, memungkinkan Anda merangkai microservices, sumber daya cloud, dan bahkan sistem pihak ketiga tanpa keterikatan erat.
> Jika Anda ingin membangun pemahaman yang solid tentang ekosistem berbasis peristiwa AWS, jelajahi kursus AWS Cloud Technology and Services.
Perbedaan EventBridge dengan opsi berbasis peristiwa lainnya
AWS menyediakan beberapa alat untuk penanganan peristiwa dan pesan, tetapi EventBridge menawarkan fitur unik yang membedakannya dari alternatif seperti SNS dan SQS.
SNS (Simple Notification Service)
SNS ideal untuk messaging pub/sub sederhana.
Anda dapat memublikasikan pesan ke topik dan mengirimkannya ke banyak pelanggan, seperti email, SMS, atau Lambda.
Namun, layanan ini tidak memiliki perutean dan pemfilteran peristiwa yang canggih.
SQS (Simple Queue Service)
SQS menyediakan antrean andal dan skalabel untuk penyimpanan dan pemrosesan pesan.
Konsumen melakukan polling antrean untuk pesan, yang berguna untuk sistem asinkron dan terlepas-kopel, namun tidak mendukung perutean berbasis push waktu nyata.
EventBridge
EventBridge menggabungkan yang terbaik dari keduanya: perutean waktu nyata, pemfilteran kaya, validasi skema, dan integrasi SaaS.
Layanan ini dirancang untuk sistem berbasis peristiwa yang kompleks dan berskala besar yang membutuhkan aturan fleksibel, banyak target, dan integrasi mulus di berbagai layanan.
CloudWatch Events
CloudWatch Events adalah pendahulu EventBridge.
EventBridge adalah penggantinya generasi berikutnya, yang menambahkan:
Jika Anda masih menggunakan CloudWatch Events, pertimbangkan untuk bermigrasi ke EventBridge demi kapabilitas yang lebih kaya.
Berikut perbandingan cepat layanan berbeda yang dibahas:
Fitur
SNS
SQS
EventBridge
Model Pengiriman
Push (pub/sub)
Polling (queue)
Push (dengan perutean berbasis aturan)
Pemfilteran Peristiwa
Dasar (atribut pesan)
Tidak ada
Lanjutan (pencocokan pola JSON)
Dukungan Fan-out
Ya
Tidak
Ya
Dukungan Skema
Tidak
Tidak
Ya (schema registry)
Integrasi dengan SaaS
Terbatas
Terbatas
Ya (integrasi SaaS native)
Pemutaran Ulang Peristiwa
Tidak
Dengan retensi
Ya
Dead-letter Queue (DLQ)
Ya
Ya
Ya
Komponen Inti dan Fitur Utama Amazon EventBridge
Untuk menggunakan Amazon EventBridge secara efektif, penting memahami blok penyusunnya yang inti.
Komponen-komponen ini bekerja sama untuk memungkinkan alur kerja dinamis berbasis peristiwa dengan beban infrastruktur minimal.
Di bawah ini rincian setiap komponen, fungsinya, dan cara menggunakannya.
Event bus
Inti EventBridge adalah event bus, yang bertindak sebagai saluran tempat semua peristiwa mengalir.
Sebuah event bus menerima peristiwa dari layanan AWS, aplikasi kustom, atau penyedia SaaS, lalu merutekannya ke target yang sesuai berdasarkan aturan pencocokan.
Gambar di bawah menunjukkan bagian EventBridge Buses di AWS Console.
Gambar berisi tangkapan layar AWS Console yang menampilkan bagian EventBridge Buses.
Jenis event bus
Berikut jenis event bus yang tersedia di AWS:
Default Event Bus:
Custom Event Bus:
Contoh kasus penggunaan:
Buat event bus terpisah untuk domain berbeda, seperti satu untuk operasi e-commerce dan satu lagi untuk analitik, agar aliran peristiwa tetap terisolasi dan mudah dikelola.
Membuat custom event bus:
Memahami rules dan targets
Rules menentukan peristiwa mana yang harus dirutekan ke target mana.
Rules menggunakan pencocokan pola JSON untuk memfilter peristiwa yang masuk pada bus dan meneruskannya ke satu atau beberapa target.
Aspek kunci rules:
detail-type, atau fielddetailbertingkat.Target yang didukung meliputi:
Gambar berisi ikon layanan AWS untuk target yang didukung.
Contoh berikut menunjukkan cara mendefinisikan event rule dan menautkannya ke fungsi Lambda sebagai target:
Contoh pola peristiwa (
event-pattern.json):Pipes
EventBridge Pipes menyederhanakan koneksi antara sumber (seperti DynamoDB Streams) dan target (seperti SQS atau Lambda) tanpa perlu kode kustom.
Gambar di bawah menunjukkan bagian EventBridge Pipes di AWS Console.
Gambar berisi tangkapan layar AWS Console yang menampilkan bagian EventBridge Pipes.
Fitur utama Pipes:
Kapan menggunakan Pipes:
Scheduler
EventBridge Scheduler memungkinkan eksekusi tugas berbasis waktu, cocok untuk mengotomatisasi operasi seperti pencadangan harian, sinkronisasi data per jam, atau memicu alur kerja sesuai jadwal.
Gambar di bawah menunjukkan bagian EventBridge Scheduler di AWS Console.
Gambar berisi tangkapan layar AWS Console yang menampilkan bagian EventBridge Scheduler.
Fitur utama meliputi:
Buat peristiwa terjadwal:
Jadwal ini memanggil fungsi Lambda
RunETLsetiap hari.Schema Registry dan Event Replays
Schema Registry membantu pengembang memahami dan mendokumentasikan struktur peristiwa.
Layanan ini secara otomatis menemukan skema dari layanan AWS dan aplikasi kustom, lalu menyimpannya dalam registri.
Manfaat Schema Registry meliputi:
Event Replays memungkinkan Anda mengarsipkan peristiwa pada bus dan memutarnya ulang nanti.
Ini berguna untuk:
Gambar berisi diagram konseptual yang mengilustrasikan EventBridge merutekan peristiwa. Sumber: AWS Blogs
Aktifkan pengarsipan peristiwa:
Putar ulang peristiwa yang diarsipkan:
Komponen-komponen ini—event bus, rules, pipes, scheduler, dan schema registry—bersama-sama membentuk platform yang komprehensif dan fleksibel untuk membangun serta mengelola arsitektur berbasis peristiwa yang tangguh di AWS.
Masing-masing memainkan peran unik dalam melepaskan ketergantungan layanan, meningkatkan skalabilitas, dan mempercepat pengembangan aplikasi.
Membangun Aplikasi Berbasis Peristiwa dengan EventBridge
Setelah penyiapan dasar, saatnya menerapkan Amazon EventBridge dalam alur kerja aplikasi nyata.
Menyiapkan EventBridge di aplikasi Anda
Berikut cara memancarkan peristiwa kustom dari aplikasi Anda menggunakan AWS CLI:
Penjelasan:
Source: Nama atau domain layanan yang memancarkan.DetailType: Jenis peristiwa yang dipancarkan.Detail: Payload, dikodekan sebagai JSON yang di-stringify.EventBusName: Bus yang akan menerima dan merutekan peristiwa.Anda dapat mengintegrasikan logika ini langsung ke fungsi Lambda, layanan backend, atau beban kerja terkontainerisasi menggunakan SDK (mis., Boto3, AWS SDK for JavaScript).
Merutekan peristiwa antar layanan AWS
Perutean peristiwa antar layanan AWS memungkinkan integrasi mulus, seperti memicu fungsi Lambda dari tindakan S3 melalui EventBridge.
Skenario contoh: Hubungkan Amazon S3 ke fungsi Lambda melalui EventBridge.
Langkah 01: Buat bucket S3 dan unggah sebuah objek.
Langkah 02: Aktifkan notifikasi peristiwa S3 melalui EventBridge:
Langkah 03: Buat aturan EventBridge untuk mencocokkan pola peristiwa:
Langkah 04: Lampirkan fungsi Lambda sebagai target rule untuk memproses objek yang diunggah.
Pola ini memungkinkan Anda memperluas pemrosesan kemudian dengan menambahkan target lain seperti Step Functions atau SNS untuk notifikasi.
Contoh praktis: Alur unggah dan ubah ukuran gambar
Kita dapat menelusuri pipeline berbasis peristiwa yang umum:
01: Pengguna mengunggah gambar ke S3.
02: S3 memancarkan peristiwa ke bus EventBridge default.
03: EventBridge mencocokkan aturan untuk
s3:ObjectCreated:*dan merutekannya ke fungsi Lambda.04: Lambda mengubah ukuran gambar, menyimpannya ke bucket S3 berbeda, dan mencatat keluarannya.
Pola ini kuat karena:
Menambahkan rules untuk skalabilitas dan fleksibilitas
Anda dapat dengan mudah melakukan fan-out peristiwa dengan menautkan beberapa target ke satu rule:
Ini memungkinkan aplikasi Anda memproses peristiwa, memberi notifikasi kepada pengguna, dan memperbarui log, semuanya secara paralel, tanpa mengikat tugas-tugas tersebut.
Mengoptimalkan kinerja dan memastikan keamanan
Optimalkan kinerja dan keamanan dengan merancang pola peristiwa yang presisi untuk meminimalkan pemrosesan yang tidak perlu dan mengurangi risiko.
Merancang pola peristiwa yang efisien
Hindari pola yang luas atau serba-masuk yang memicu eksekusi tidak perlu. Sebaliknya, saring peristiwa secara presisi:
Ini mengurangi biaya, meningkatkan latensi, dan memastikan hanya peristiwa relevan yang diproses.
Menerapkan kontrol keamanan yang tangguh
Keamanan sangat penting dalam arsitektur serverless. Ikuti pedoman berikut:
DLQ menangkap peristiwa yang tidak dapat dikirim, sehingga Anda dapat mendiagnosis dan memproses ulang nanti.
> Jika Anda ingin pendalaman tentang pengamanan aplikasi cloud dan pengelolaan izin AWS, simak kursus AWS Security and Cost Management.
Mengelola biaya dan kuota layanan
Untuk mengelola biaya dan kinerja secara efektif, penting memahami model harga EventBridge dan memantau kuota layanan secara berkala.
Memahami struktur harga
Anda ditagih per:
Gratis bulanan mencakup 100.000 peristiwa, yang cukup untuk sebagian besar kasus penggunaan pengembangan dan produksi kecil.
Memantau dan menyesuaikan kuota layanan
Lacak dan ajukan peningkatan menggunakan:
Kuota kunci untuk dipantau:
Menskalakan penggunaan secara bertanggung jawab memastikan sistem Anda tetap andal saat beban meningkat.
Konfigurasi EventBridge tingkat lanjut dan alternatif
Untuk arsitektur berbasis peristiwa yang lebih kompleks, pertimbangkan fitur EventBridge tingkat lanjut dan pola alternatif untuk meningkatkan kontrol, keamanan, dan fleksibilitas penjadwalan.
Distribusi peristiwa lintas akun
Aktifkan berbagi peristiwa yang aman antar akun AWS:
Gunakan AWS CloudTrail untuk mengaudit penggunaan dan memastikan kepatuhan.
Fitur lanjutan EventBridge scheduler
Lebih dari sekadar penjadwalan dasar dengan:
Contoh ekspresi cron:
Memicu alur kerja pada pukul 09.00 setiap Senin:
Kapan mempertimbangkan alternatif
Bergantung pada kebutuhan Anda, Anda mungkin ingin mempertimbangkan layanan AWS lain yang lebih sesuai untuk kasus penggunaan tertentu.
Berikut beberapa contohnya:
Kasus Penggunaan
Alternatif
FIFO atau urutan ketat
Amazon SQS FIFO
Throughput tinggi dan latensi rendah
Amazon MSK (Kafka)
Orkestrasi kompleks
Step Functions
Notifikasi sederhana
Amazon SNS
Kesimpulan
Amazon EventBridge adalah blok bangunan dasar untuk aplikasi modern berbasis cloud, yang memungkinkan Anda membangun sistem yang skalabel dan terlepas-kopel, merespons peristiwa waktu nyata di seluruh platform AWS dan SaaS, serta mengintegrasikan alur kerja dengan beban infrastruktur minimal.
Untuk sukses dengan EventBridge, fokuslah pada perancangan domain berbasis peristiwa yang modular, menerapkan praktik terbaik least-privilege dan dead-letter queue, serta terus memantau penggunaan, kuota, dan biaya.
Jika Anda ingin memperdalam keahlian AWS, jelajahi jalur kursus AWS Cloud Practitioner!