ข้ามไปเนื้อหาหลัก
ประมวลผล· ~6 นาที· อัปเดตล่าสุด

App Integration: SQS, SNS และ EventBridge

บริการเชื่อมระบบแบบหลวมๆ (decoupling) ที่เป็นไม้ตายของโจทย์สถาปัตยกรรมสมัยใหม่

ร้านกาแฟที่ฉลาด

SQS คือแถวบัตรคิวหน้าเครื่องชง — ลูกค้าสั่งแล้ววางใบสั่งไว้ บาริสต้าหยิบทำทีละใบ ช่วงเร่งด่วนใบสั่งก็แค่ต่อแถวยาวขึ้น ไม่มีใบไหนหาย · SNS คือเสียงตามสายของห้าง — ประกาศครั้งเดียว ทุกแผนกที่ติดตามเรื่องนั้นได้ยินพร้อมกันแล้วต่างคนต่างไปทำหน้าที่ของตัวเอง

สามบริการเชื่อมระบบ

  • Amazon SQS (Simple Queue Service) — message queue: พักงานไว้ให้ระบบปลายทางทยอยหยิบไปทำ กันงานหายตอนโหลดพุ่งหรือปลายทางล่ม
  • Amazon SNS (Simple Notification Service) — pub/sub: publish หนึ่งครั้ง ส่งถึง subscribers หลายราย (อีเมล, SMS, Lambda, SQS)
  • Amazon EventBridge — event bus กลาง: รับ event แล้ว route ตามกฎไปยังเป้าหมาย เหมาะสถาปัตยกรรม event-driven

เบื้องหลังโจทย์กลุ่มนี้คือแนวคิด microservices — แตกระบบใหญ่เป็นชิ้นเล็กที่คุยกันผ่านตัวกลาง ระบบสั่งซื้อไม่ต้องรอระบบออกใบเสร็จเสร็จก่อนตอบลูกค้า แค่โยนงานเข้าคิวแล้วไปต่อ ถ้าเห็นคำว่า asynchronous, buffer, loosely coupled ในโจทย์ ให้มองหาช้อยส์ที่มี SQS/SNS ก่อนเสมอ

สรุป Key Takeaways

  • SQS = คิวงาน หนึ่งข้อความหนึ่งผู้ประมวลผล · SNS = ประกาศแบบ pub/sub กระจายหลายผู้รับ
  • Decoupling = ระบบล่มบางส่วนได้โดยงานไม่หาย — คีย์เวิร์ด loosely coupled / buffer
  • EventBridge = router ของ event · Step Functions = จัด workflow หลายขั้น

คำถามที่พบบ่อย

SQS กับ SNS ต่างกันอย่างไรแบบจำแม่น

SQS = "คิว" — ผู้ส่งวางข้อความไว้ ผู้รับ "มาหยิบ" ไปทำทีละงานตามคิว (pull, หนึ่งข้อความหนึ่งคนทำ) · SNS = "ประกาศ" — ผู้ส่ง publish หนึ่งครั้ง ระบบ "กระจาย" ไปหาผู้ติดตามทุกราย (push, หนึ่งข้อความหลายคนได้) — คิวไว้กันงานล้น, ประกาศไว้แจ้งหลายระบบพร้อมกัน

decoupling ช่วยอะไร ทำไมข้อสอบชอบ

การให้ระบบคุยผ่านตัวกลาง (คิว/topic) แทนการเรียกกันตรงๆ ทำให้ฝั่งรับล่มไปชั่วคราวได้โดยงานไม่หาย (ค้างอยู่ในคิว) และแต่ละส่วน scale แยกกันได้ — ตรงกับเสา Reliability เป๊ะ โจทย์คีย์เวิร์ด "loosely coupled", "buffer requests" ตอบ SQS ได้บ่อยมาก

EventBridge กับ Step Functions คืออะไรโดยย่อ

EventBridge = ศูนย์กลาง event: รับเหตุการณ์จากบริการต่างๆ (รวมถึงแอปภายนอก) แล้ว route ตามกฎไปหาเป้าหมาย · Step Functions = ตัวออกแบบ workflow หลายขั้นตอนให้เป็นภาพ มี retry ให้เอง — ระดับ CLF จำบทบาทพอ

อ่านจบแล้วอย่าลืมทำเครื่องหมาย