Saturday, July 4, 2026
AWS AWS SQS

Panduan Lengkap AWS SQS: Konsep, Cara Kerja, Manfaat, Skenario Nyata, dan Tutorial Implementasi

1. Apa itu AWS SQS?

Amazon Simple Queue Service (SQS) adalah layanan antrian pesan fully managed dari AWS yang memungkinkan aplikasi mengirim, menyimpan, dan menerima pesan antar-komponen secara asynchronous. Dengan SQS, Anda bisa membangun sistem terdistribusi, highly scalable, dan fault-tolerant tanpa perlu mengelola infrastruktur messaging server.

SQS merupakan layanan serverless, sehingga Anda tidak perlu memikirkan patching, scaling, high availability, atau maintenance.


2. Mengapa AWS SQS Penting dalam Arsitektur Modern?

SQS sering digunakan dalam arsitektur:

  • Microservices
  • Distributed systems
  • Event-driven architecture
  • Serverless architecture

Keunggulan SQS:

  • Memisahkan (decoupling) antar-komponen.
  • Mencegah bottleneck.
  • Menyerap lonjakan traffic.
  • Menjadikan sistem lebih resilient dan reliable.

3. Tipe Antrian di AWS SQS

AWS menyediakan dua jenis queue utama:

A. Standard Queue

Cocok untuk sebagian besar kasus.

  • High throughput
  • At-least-once delivery (pesan mungkin terkirim lebih dari sekali)
  • Best-effort ordering (tidak menjamin urutan)

B. FIFO Queue (First-In-First-Out)

Digunakan jika urutan sangat penting.

  • Exactly-once processing
  • Menjamin pesan diproses sesuai urutan
  • throughput terbatas (hingga 3000 msg/s dengan batching)

4. Arsitektur dan Cara Kerja AWS SQS

Arus kerja SQS terdiri dari:

  1. Producer mengirim pesan ke queue.
  2. Pesan disimpan dengan durasi tertentu (default 4 hari, max 14 hari).
  3. Consumer/Worker menarik pesan.
  4. Pesan masuk Visibility Timeout → tidak terlihat oleh worker lain.
  5. Consumer memproses pesan.
  6. Consumer melakukan DeleteMessage.

Jika tidak dihapus → pesan akan muncul lagi setelah visibility timeout.


5. Konsep-Kunci pada AWS SQS

Message Retention

Lama penyimpanan pesan (1 menit – 14 hari).

Visibility Timeout

Waktu “lock” agar pesan tidak diproses dua kali.

Dead-Letter Queue (DLQ)

Menampung pesan gagal agar tidak mengganggu queue utama.

Long Polling

Mengurangi biaya dan meningkatkan efisiensi dengan menunggu pesan hingga tersedia.

Message Size

Max 256 KB (atau lebih dengan S3 Extended Client Library).


6. Manfaat AWS SQS

A. Scalable & High Throughput

Ideal untuk sistem besar dengan traffic tinggi.

B. Decoupling

Microservices tidak saling tergantung.

C. Fault Tolerant

Jika backend down, pesan tetap aman di antrian.

D. Hemat Biaya

Bayar per request; tidak ada server.

E. Integrasi Luas

Terhubung erat dengan:

  • AWS Lambda
  • SNS
  • Step Functions
  • EC2
  • ECS/Fargate
  • S3 Events

7. Use Case AWS SQS di Dunia Nyata

1. Proses Asynchronous

Contoh:

  • Upload gambar → proses resize di background.

2. Job Queue / Worker Queue

Worker mengambil pesan dan memproses job seperti:

  • Generate PDF
  • Kirim email masal
  • Proses video

3. Buffering untuk Lonjakan Traffic

Melindungi backend yang lambat.

4. E-commerce Order Processing

Setiap order dimasukkan ke queue → diproses oleh beberapa layanan.

5. Integrasi Sistem Lama dengan Microservices Baru

Menggunakan SQS sebagai jembatan.


8. Integrasi Populer AWS SQS

A. SQS + Lambda

Serverless worker tanpa server:

  • Lambda otomatis trigger saat pesan masuk.

B. SQS + SNS

SNS broadcast → SQS menerima sebagai subscriber.

C. SQS + ECS/Fargate

Worker cluster otomatis scale berdasarkan panjang queue.


9. Cara Membuat Antrian SQS (Tutorial Step-by-Step)

1. Masuk AWS Management Console

Cari layanan SQS.

2. Create Queue

Pilih:

  • Standard / FIFO
  • Nama queue
  • Visibility timeout
  • Message retention
  • Encryption (boleh default)

3. Kirim Pesan

Klik Send and receive messages → Send message.

4. Konsumsi Pesan

Gunakan salah satu:

  • AWS CLI
  • AWS SDK (Node.js, Python, Go, Java)
  • AWS Lambda

10. Contoh Implementasi AWS SQS (Node.js)

A. Mengirim Pesan





import { SQSClient, SendMessageCommand } from "@aws-sdk/client-sqs";

const client = new SQSClient({ region: "ap-southeast-1" });

const params = {
  QueueUrl: "https://sqs.ap-southeast-1.amazonaws.com/123456789/my-queue",
  MessageBody: JSON.stringify({ order_id: 123, amount: 200000 }),
};

await client.send(new SendMessageCommand(params));

B. Menerima dan Menghapus Pesan





import { ReceiveMessageCommand, DeleteMessageCommand } from "@aws-sdk/client-sqs";

const receive = new ReceiveMessageCommand({
  QueueUrl: "https://sqs.ap-southeast-1.amazonaws.com/123456789/my-queue",
  MaxNumberOfMessages: 10,
  WaitTimeSeconds: 20
});

const result = await client.send(receive);

for (const msg of result.Messages) {
  console.log("Processing:", msg.Body);

  await client.send(
    new DeleteMessageCommand({
      QueueUrl: params.QueueUrl,
      ReceiptHandle: msg.ReceiptHandle
    })
  );
}

11. Pricing AWS SQS

Harga SQS cukup murah:

  • 1 juta request pertama gratis setiap bulan.
  • Setelah itu sekitar $0.40 per 1 juta request.

FIFO Queue sedikit lebih mahal.


12. Best Practice AWS SQS

✔ gunakan DLQ
✔ gunakan long polling (20s)
✔ sesuaikan visibility timeout
✔ hindari payload besar → gunakan S3 pointer
✔ aktifkan enkripsi (KMS)
✔ monitoring dengan CloudWatch Metrics
✔ gunakan auto-scaling berdasarkan panjang queue


13. Kelebihan & Kekurangan AWS SQS

Kelebihan

  • Murah
  • Aman
  • Managed
  • Reliable
  • Integrasi dengan AWS ekosistem

Kekurangan

  • Tidak mendukung broadcast (harus pakai SNS)
  • Tidak real-time seperti WebSocket/MQTT
  • FIFO throughput lebih rendah

14. Ringkasan

AWS SQS adalah layanan antrian pesan yang aman, scalable, dan mudah digunakan untuk sistem apa saja yang membutuhkan pemrosesan asynchronous. Dengan integrasi ke AWS Lambda, ECS, dan SNS, SQS menjadi tulang punggung di banyak arsitektur microservices modern.

Similar Posts