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

เมื่อไหร่ควรเลือกอะไร?

สรุปการตัดสินใจ EC2 vs Lambda vs Container

ในโลกคลาวด์มีบริการรันโค้ด (Compute) หลากหลายแบบมากๆ เพื่อให้สอบผ่านและนำไปใช้จริงได้ คุณต้องมีกรอบความคิด (Mental Framework) ในการตัดสินใจเลือกเครื่องมือที่ใช่ที่สุด

แนวทางเลือกแบบเร็ว (Cheat Sheet)

  • ต้องการคุม OS และซอฟต์แวร์แบบเบ็ดเสร็จ (Full Control) หรือโหลดคงที่มาก → ใช้ EC2
  • เป็นงานขนาดสั้น, พฤติกรรม Event-driven, และปริมาณคนใช้ผันผวนเดาไม่ได้ → ใช้ AWS Lambda
  • แอปถูกแพ็กเป็น Container อยู่แล้ว แต่อยากตัดความน่าเบื่อไม่อยากดูแลเซิร์ฟเวอร์ → ใช้ AWS Fargate
  • เป็นนักพัฒนา เขียนโค้ดเสร็จอยาก Deploy ขึ้นเว็บรันเลยเร็วๆ ไม่อยากตั้ง Infra เอง → ใช้ Elastic Beanstalk

สรุป Key Takeaways

  • EC2 = คุมเต็มที่/โหลดคงที่ · Lambda = event-driven/โหลดผันผวน
  • Fargate = container แบบไม่ดูแลเซิร์ฟเวอร์ · Beanstalk = deploy เว็บเร็ว

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

มีตัวเลือก compute เยอะมาก มีสูตรเลือกไหม

ไล่จากคำถามในโจทย์: งานสั้น event-driven <15 นาที = Lambda · container + ไม่อยากดูแลเครื่อง = Fargate · container + ทีมใช้ K8s = EKS · เว็บทั่วไปอยาก deploy ง่าย = Beanstalk · ต้องคุม OS/สเปกเต็มที่ = EC2 · งาน batch ใหญ่ๆ = AWS Batch + Spot — ข้อสอบวัดการจับคู่นี้ตรงๆ

โจทย์บอก "ลด operational overhead" ควรเอียงไปทางไหน

เลือกตัวที่ managed มากที่สุดที่ยังตอบโจทย์ได้ — serverless (Lambda, Fargate, DynamoDB, Aurora Serverless) มาก่อน EC2 เสมอเมื่อโจทย์เน้นคำนี้ เพราะตัดงานดูแลเครื่อง/แพตช์/scale ออกหมด

ลองทำ Quiz ท้ายบท

คำถามแนวข้อสอบของโมดูลนี้ 5 ข้อ · เฉลยทันที

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