Pemisahan komponen dengan AWS Messaging Services

Mengembangkan Aplikasi di AWS

Ricardo Sueiras

Principal Technologist

Dasar-dasar Amazon SQS

 

ikhtisar sqs

  • Menangani lonjakan trafik terlepas dari produsen.
  • Antrian pesan terkelola untuk pengiriman asinkron.
  • Produsen mengirim pesan ke antrian.
  • Konsumen mengambil pesan dari antrian.
  • Pesan disimpan sampai diambil konsumen.
  • Retensi: 4 hari bawaan, maksimum 14 hari.
  • Konsumen mem-poll antrian dan memproses sesuai kecepatannya.
Mengembangkan Aplikasi di AWS

Visibilitas pesan

  • Pesan menjadi tak terlihat saat dibaca konsumen.
  • Visibility timeout mengatur lamanya tersembunyi.
  • Jika pemrosesan gagal dan pesan tidak dihapus:
    • Pesan terlihat kembali.
    • Dapat diproses ulang.
  • Visibility timeout: 30 detik secara bawaan.
  • Batas maksimum visibility timeout adalah 12 jam.

 

visibilitas pesan

Mengembangkan Aplikasi di AWS

Ukuran pesan

 

ukuran gambar

  • Ukuran pesan hingga 256KB.
  • Pustaka SQS Extended Client memungkinkan pesan lebih besar.
  • Menyimpan muatan besar di Amazon S3.
  • Mengirim pointer ke S3 dalam muatan pesan.
Mengembangkan Aplikasi di AWS

Short polling

  • Strategi polling memengaruhi biaya dan efisiensi.
  • Short polling adalah bawaan.
  • Mengkueri subset server SQS, langsung mengembalikan hasil.
  • Bisa kosong, meski ada pesan.
  • Menghasilkan lebih banyak panggilan API dan biaya lebih tinggi.

 

polling

Mengembangkan Aplikasi di AWS

Long polling

  • Long polling mengkueri semua server SQS.
  • Menunggu hingga 20 detik untuk pesan.
  • Menghilangkan respons kosong yang tidak perlu.
  • Mengurangi panggilan API dan biaya.

 

polling

Mengembangkan Aplikasi di AWS

Antrian Standard

  • SQS menawarkan dua jenis antrian.
  • Antrian Standard:
    • Pengantaran minimal satu kali.
    • Pengurutan best-effort.
    • Throughput nyaris tak terbatas.

 

jenis antrian

Mengembangkan Aplikasi di AWS

Antrian FIFO

 

jenis antrian

  • Antrian FIFO:
    • Pemrosesan tepat satu kali.
    • Urutan pesan ketat.
    • Deduplikasi pesan bawaan.
  • Bawaan 300 TPS
    • Tingkatkan ke 3.000 dengan batching atau lebih dengan mode throughput tinggi.
  • Pilih jenis antrian sesuai kasus penggunaan:
    • Standard untuk skala dan throughput.
    • FIFO untuk pengurutan dan deduplikasi.
Mengembangkan Aplikasi di AWS

Menangani poison message

 

dlq

  • Dead letter queue (DLQ) menyimpan pesan yang gagal diproses.
  • Pesan dipindahkan ke DLQ saat melebihi maxReceiveCount.
  • Menghindari percobaan ulang tanpa akhir pada poison message.
  • DLQ harus sama jenisnya dengan sumber.
  • Pindahkan pesan kembali ke antrian sumber untuk diproses ulang.
Mengembangkan Aplikasi di AWS

Mengamankan antrian

 

mengamankan SQS

  • Terenkripsi saat transit menggunakan HTTPS secara bawaan.
  • Enkripsi sisi server saat disimpan menggunakan AWS KMS.
  • Enkripsi muatan di sisi klien dengan AWS Encryption SDK.
  • Kebijakan IAM mengatur siapa yang dapat mengakses antrian SQS.
  • Kebijakan berbasis sumber daya memberi kontrol granular di tingkat antrian.
Mengembangkan Aplikasi di AWS

Dasar-dasar Amazon SNS

  • Layanan publish-subscribe (pub/sub) terkelola.
  • Menggunakan model push.
  • Publisher mengirim pesan ke topik.
    • Ukuran pesan maksimum 256KB.
  • Konsumen berlangganan topik.
  • Subscriber menerima pesan secara pasif.

 

ikhtisar sns

Mengembangkan Aplikasi di AWS

Skala

  • Mendukung hingga 12,5 juta langganan per topik.
  • Tanpa retensi pesan:
    • Pesan hilang jika subscriber tidak tersedia.
    • Gunakan DLQ atau subscriber andal (antrian SQS) untuk mencegah kehilangan pesan.
  • Mendistribusikan satu peristiwa ke banyak konsumen (fan-out).

 

skalabilitas sns

Mengembangkan Aplikasi di AWS

Pemfilteran pesan

  • SNS mendukung kebijakan pemfilteran pesan.
  • Langganan hanya menerima pesan yang relevan.
  • Tanpa filter, langganan menerima semua pesan.
  • Kebijakan filter diterapkan di level langganan, bukan topik.

 

filter

Mengembangkan Aplikasi di AWS

Logika dan evaluasi filter

 

kebijakan filter

  • Filter didefinisikan dalam JSON.
  • Dicocokkan terhadap atribut pesan.
  • Beberapa kondisi dievaluasi sebagai AND.
  • Banyak nilai dalam satu kondisi dievaluasi sebagai OR.
  • Banyak operasi filter didukung:
    • Pencocokan string tepat, numerik, prefiks, pengecualian, dan rentang.
Mengembangkan Aplikasi di AWS

Keamanan SNS

 

keamanan sns

  • Data terenkripsi saat transit dengan HTTPS secara bawaan.
  • Enkripsi sisi server saat disimpan menggunakan AWS KMS.
    • Berikan SNS izin menggunakan kunci KMS.
  • Kebijakan IAM menyediakan kontrol akses.
    • Mengatur siapa yang dapat memublikasikan ke atau berlangganan dari suatu topik.
Mengembangkan Aplikasi di AWS

Ayo berlatih!

Mengembangkan Aplikasi di AWS

Preparing Video For Download...