Monday, May 25, 2026
AWS AWS SNS

Panduan Lengkap AWS SNS: Konsep, Cara Kerja, Arsitektur, Use Case, serta Tutorial Implementasi

1. Apa itu AWS SNS?

Amazon Simple Notification Service (SNS) adalah layanan pub/sub messaging dari AWS yang memungkinkan aplikasi mengirim notifikasi atau pesan ke banyak subscriber secara real-time, scalable, dan serverless.


SNS mendukung berbagai jenis subscriber seperti:

  • HTTP/HTTPS endpoint
  • Email
  • SMS
  • SQS (Amazon Simple Queue Service)
  • Lambda Function
  • Mobile push notification
  • Kinesis Firehose

SNS adalah core service yang banyak digunakan pada microservices, event-driven architecture, dan automation di AWS.


2. Fungsi Utama AWS SNS

Beberapa fungsi penting SNS di dalam arsitektur modern:

a. Broadcast Message (Publish-Subscribe)

Satu producer (publisher) dapat mengirim pesan ke banyak subscriber sekaligus.

b. Notification System

Untuk mengirim notifikasi penting seperti:

  • Error alert
  • Billing alert
  • System status alert
  • Application events

c. Event Distribution

SNS digunakan sebagai event bus sederhana yang mendistribusikan event ke beberapa layanan downstream.


3. Konsep Dasar AWS SNS

A. Topic

Objek utama SNS tempat publisher mengirim pesan.

B. Publisher

Aplikasi atau layanan yang mengirim pesan ke SNS topic.

C. Subscriber

Endpoint atau layanan yang menerima pesan, misalnya:

  • SQS queue
  • Lambda function
  • Email
  • SMS
  • Webhook (HTTP/HTTPS)

D. Message Filtering

Subscriber bisa menerima hanya pesan tertentu berdasarkan atribut.

E. Delivery Retry

Jika endpoint gagal menerima pesan (misal HTTP error), SNS akan retry otomatis.


4. Tipe Pesan yang Didukung AWS SNS

SNS mendukung berbagai format:

  • JSON
  • Text
  • Mobile notification payload (APNS, FCM)
  • Custom structured message per protocol

5. Kelebihan AWS SNS

✔ Real-time

Pesan dikirim ke subscriber seketika.

✔ Scalability tak terbatas

SNS dapat menangani jutaan message per detik.

✔ Reliable

SNS menyimpan beberapa salinan pesan untuk redundancy.

✔ Managed & Serverless

Tidak perlu maintenance server atau broker.

✔ Integrasi Mendalam dengan AWS

SNS terhubung langsung dengan Lambda, SQS, S3 events, Kinesis, CloudWatch, dll.


6. Arsitektur Kerja AWS SNS

Urutannya sebagai berikut:

  1. Publisher mengirim pesan ke SNS Topic.
  2. SNS memproses atribut dan kebijakan filter.
  3. SNS mendistribusikan pesan ke semua subscriber terdaftar.
  4. Jika subscriber adalah SQS, pesan akan disimpan.
  5. Jika subscriber adalah Lambda, fungsi langsung dieksekusi.
  6. Jika subscriber adalah HTTP, SNS mengirim POST request.
  7. SNS melakukan retry jika gagal.

7. Integrasi Paling Populer AWS SNS

1. SNS → Email

Untuk alert server, aplikasi, atau invoice.

2. SNS → SMS

Untuk notifikasi segera.

3. SNS → SQS

Arsitektur ini biasa disebut fan-out pattern:
Satu event → banyak queue → banyak microservices.

4. SNS → Lambda

Untuk otomatisasi serverless.

5. SNS → Webhook

Mengirim pesan ke aplikasi pihak ketiga seperti:

  • Discord webhook
  • Slack webhook
  • Custom REST API

8. Fan-Out Pattern (SNS + SQS)

Ini adalah pola arsitektur paling umum:





Publisher → SNS Topic → Banyak SQS queue → banyak worker

Kelebihan:

  • Tidak ada pesan hilang.
  • Setiap layanan mendapatkan salinan pesan.
  • Sangat scalable.

9. Fitur Penting AWS SNS

A. Message Filtering

Memungkinkan subscriber menerima pesan berdasarkan atribut.

Contoh attribute:





{
  "eventType": "order_created"
}

B. FIFO Topic

SNS juga menyediakan FIFO Topic:

  • Mendukung ordering
  • Mendukung exactly-once message delivery
  • Cocok untuk transaksi / financial data

C. Delivery Status Logging

Log ke CloudWatch tentang keberhasilan/kegagalan pengiriman.

D. Encryption (KMS)

Untuk pesan yang membutuhkan keamanan tinggi.


10. Use Case AWS SNS (Dunia Nyata)

1. Alerting System

  • Notifikasi CPU EC2 tinggi
  • Error di Lambda
  • Kegagalan backup
  • Invoice AWS ke email/SMS

2. Push Notification Mobile Apps

Facebook, Twitter, TikTok menggunakan pola Pub/Sub seperti ini.

3. Distributed System Messaging

Mengalirkan event ke banyak backend services.

4. E-commerce Event Handling

Setiap transaksi order → SNS broadcast ke:

  • Payment service
  • Shipping service
  • Notification service
  • Audit service

5. IoT Messaging

Mengirim update IoT device ke cloud.


11. Cara Membuat SNS Topic (Step by Step)

1. Buka AWS Console → SNS

Klik Create Topic.

2. Pilih jenis topic

  • Standard
  • FIFO

3. Isi konfigurasi

  • Nama topic
  • Encryption
  • Delivery policy

4. Tambahkan Subscriber

Misalnya:

  • Email → masuk email konfirmasi
  • SQS → langsung terhubung
  • Lambda → pilih function

5. Publish Message

Gunakan menu “Publish message”.


12. Contoh Implementasi AWS SNS (Node.js)

A. Publish Pesan





import { SNSClient, PublishCommand } from "@aws-sdk/client-sns";

const sns = new SNSClient({ region: "ap-southeast-1" });

const params = {
  TopicArn: "arn:aws:sns:ap-southeast-1:123456789012:myTopic",
  Message: JSON.stringify({ message: "Hello from SNS!" }),
  Subject: "Test Notification"
};

await sns.send(new PublishCommand(params));

13. Filtering Subscriber

Contoh filter untuk menerima pesan hanya jika type = order:





{
  "type": ["order"]
}

Subscriber lain bisa menerima filter berbeda.


14. SNS vs SQS: Apa Bedanya?

FiturSNSSQS
ModelPublish/Subscribe broadcastQueue (FIFO/Standard)
Arah Pesan1 → Banyak1 → 1
PenyimpananTidak menyimpan lamaMenyimpan pesan
PenggunaanNotifikasi, fan-outJob queue, worker

Gabungan terbaik:

SNS + SQS = scalable distributed system


15. Harga AWS SNS

Meskipun tergantung region, secara umum:

  • Publish pertama 1 juta request gratis (dalam batas free tier).
  • SMS harga berbeda tiap negara.
  • Email via SNS sangat murah.
  • Push notification mobile murah.

SNS tetap salah satu layanan paling murah di AWS.


16. Best Practice AWS SNS

✔ Gunakan SNS + SQS untuk reliability tinggi
✔ Aktifkan delivery status logging
✔ Gunakan IAM Policy yang ketat untuk akses SNS
✔ Untuk ordering gunakan SNS FIFO
✔ Aktifkan encryption KMS
✔ Gunakan Message Attributes untuk filtering


17. Kesimpulan

AWS SNS adalah solusi notifikasi dan distribusi pesan yang scalable, murah, dan mudah digunakan. Dengan konsep publish-subscribe, SNS sangat cocok untuk arsitektur microservices modern, event-driven system, automation, dan real-time notification.

SNS menjadi tulang punggung untuk banyak use case seperti alerting, billing notification, push messaging, IoT communication, hingga integrasi dengan SQS dan Lambda.

Similar Posts