ข้ามไปเนื้อหาหลัก

Amazon Cognito ค่าบริการพุ่ง: ทำความเข้าใจ MAU และค่าเริ่มต้น

เจาะลึกราคา Amazon Cognito จากราคา ณ วันที่ 12 ตุลาคม 2026 เผยสาเหตุค่าใช้จ่ายบานปลายจาก MAU, การเลือก Tier และวิธีตั้งค่าเพื่อคุมงบ

เรียบเรียงโดย AI
Inewgen
13 Oct 2026ที่มา: Dev.to4 นาทีอ่าน (0 ครั้ง)
แชร์
Amazon Cognito ค่าบริการพุ่ง: ทำความเข้าใจ MAU และค่าเริ่มต้น

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง

ขนาดตัวอักษร
  • Amazon Cognito คิดเงินตามจำนวน Monthly Active Users (MAU) และเลือก Tier เริ่มต้นผิด
  • งานเบื้องหลัง เช่น สคริปต์ดึงข้อมูลหรือโทเค็นรีเฟรช อาจนับผู้ใช้เป็น MAU โดยไม่รู้ตัว
  • โควต้าฟรี (Free Tier) แชร์ร่วมกันทั้งบัญชีหรือ AWS Organization ไม่ได้แยกตามสระว่ายน้ำ (Pool)
  • สระว่ายน้ำรุ่นเก่าที่สร้างก่อน 22 พฤศจิกายน 2024 มีเงื่อนไขและโควต้าฟรีที่ต่างออกไป

Amazon Cognito มักเป็นบริการที่หลายทีมมองข้ามเรื่องงบประมาณในช่วงเริ่มต้น เนื่องจากระบบฟรีเทียร์ช่วยรองรับช่วงพัฒนาได้อย่างสบาย บิลค่าใช้จ่ายจึงมักเป็นศูนย์ แต่เมื่อผลิตภัณฑ์เติบโตขึ้น หรือมีการทำย้ายข้อมูล (Migration) รวมถึงการรันแบตช์จ็อบที่แตะข้อมูลผู้ใช้ทั้งหมด ค่าบริการของ Cognito ก็อาจพุ่งสูงขึ้นจนน่าตกใจ

สาเหตุของบิลที่สูงมักไม่ได้มาจากปริมาณทราฟฟิกของผู้ใช้งานจริง แต่มาจากการตัดสินใจตั้งค่าตั้งแต่เนิ่นๆ ตั้งแต่การเลือก Tier ที่ระบบรันอยู่ การจัดการโทเค็นของแอปพลิเคชัน วิธีนำเข้าผู้ใช้ และงานเบื้องหลังที่เข้ามาอ่านข้อมูลผู้ใช้ ข้อมูลราคาอ้างอิงจากหน้าราคาทางการของ Amazon Cognito ณ วันที่ 12 ตุลาคม 2026 ซึ่งคำนวณจากเรตที่ประกาศไว้

$0.015ต่อ MAU สำหรับ Essentials Tier
$0.0055ต่อ MAU สำหรับ Lite Tier

สระว่ายน้ำผู้ใช้ (User pools) จะถูกคิดเงินต่อ MAU โดยเรตจะขึ้นอยู่กับฟีเจอร์ Tier ของพูลนั้น ซึ่งมีอยู่ 3 ระดับ โดยพูลใหม่จะถูกสร้างบน Essentials Tier โดยอัตโนมัติเว้นแต่จะระบุเป็นอย่างอื่น Essentials มีราคาอยู่ที่ $0.015 ต่อ MAU ขณะที่ Lite อยู่ที่ $0.0055 และลดเหลือ $0.0046 เมื่อเกิน 100,000 MAU จะเห็นได้ว่าค่าเริ่มต้นมีราคาแพงกว่า Tier ที่ถูกที่สุดเกือบ 3 เท่าตัว

chromebook notebook computer office desk workspace

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง

การนิยามคำว่า MAU ของหน้าเรตราคาคือ ผู้ใช้ที่มีการสร้างตัวตน (Identity operation) เกิดขึ้นในแอปพลิเคชันของคุณภายในเดือนปฏิทินนั้นๆ ซึ่งรายการกิจกรรมที่นับรวมมีดังนี้:

  • การลงชื่อเข้าใช้ (Sign-in)
  • การสมัครใช้งาน (Sign-up)
  • การรีเซ็ตรหัสผ่าน (Password reset)
  • การอัปเดตแอตทริบิวต์ (Attribute update)
  • การรีเฟรชโทเค็น (Token refresh)
  • การทำงานผ่าน API แอดมิน (เช่น AdminGetUser)

เมื่อผู้ใช้ถูกนับเป็น MAU แล้ว กิจกรรมอื่นๆ ของพวกเขาในเดือนนั้นจะไม่เพิ่มค่าใช้จ่ายอีก เซสชันถัดๆ ไปจะฟรี และการทำ Multi-Region replication จะนับผู้ใช้คนเดิมเพียงครั้งเดียวข้ามภูมิภาค อย่างไรก็ตาม ปัญหาค่าใช้จ่ายส่วนใหญ่มักมาจากรูปแบบการเขียนโค้ด 4 แบบ ดังนี้:

ไม่อยากพลาดข่าวใหม่?

สมัครรับสรุปข่าวสารใหม่ทางอีเมล ไม่บ่อยจนรำคาญ

โฆษณา

การทำความเข้าใจกลไกการนับ MAU ของ Cognito เป็นหัวใจสำคัญในการบริหารต้นทุนคลาวด์ เนื่องจากบริการ Managed Authentication มักมีความซ่อนเร้นในแง่ของเบื้องหลังระบบ (Background Jobs) ที่นักพัฒนาอาจมองข้าม การออกแบบสถาปัตยกรรมที่ไม่ดึงข้อมูลซ้ำซ้อนจึงช่วยป้องกันบิลที่บานปลายได้อย่างมีประสิทธิภาพ

รูปแบบแรกคือแบตช์จ็อบรันตอนกลางคืนเพื่อซิงค์ข้อมูลผู้ใช้กับ CRM โดยเรียกคำสั่ง AdminGetUser ทุกคน ซึ่งจะดึงผู้ใช้ทุกคนให้กลายเป็น MAU ในเดือนนั้นทันที แม้แต่คนที่ไม่ได้เปิดแอปมาเป็นปี วิธีแก้คือหยุดขอข้อมูลจาก Cognito ถ้ามีข้อมูลเก็บไว้ในตารางของตัวเองอยู่แล้ว และอัปเดตผ่าน Lambda trigger หรือแอปพลิเคชันเมื่อแอตทริบิวต์เปลี่ยน

รูปแบบที่สองคือการรีเฟรชโทเค็น (Token refresh) ที่แอปพลิเคชันบนมือถือทำการรีเฟรชเองทุกครั้งที่เปิดแอปหรือผ่านงานเบื้องหลัง ทำให้ผู้ใช้ที่ติดตั้งแอปถูกนับเป็น MAU ทุกเดือน วิธีแก้คือให้รีเฟรชเฉพาะเมื่อการเรียก API ต้องการโทเค็นใหม่เท่านั้น ไม่ใช่รีเฟรชทุกครั้งที่เปิดแอป

"Administrative creation counts. If you move 500,000 users into a new pool with AdminCreateUser in one month, that month bills 500,000 MAUs: $7,350 on Essentials, even if most of those users never come back."

Dev.to

รูปแบบที่สามคือการสร้างผู้ใช้ผ่านระบบแอดมิน (Administrative creation) หากย้ายผู้ใช้ 500,000 คนเข้าพูลใหม่ด้วยคำสั่ง AdminCreateUser ในเดือนเดียว ระบบจะคิดเงิน 500,000 MAU ทันที ซึ่งคิดเป็นเงิน $7,350 บน Essentials Tier วิธีแก้คือใช้ Migrate User Lambda trigger ซึ่งจะสร้างผู้ใช้เฉพาะเมื่อพวกเขากลับมาล็อกอินหรือรีเซ็ตรหัสผ่านเท่านั้น

ที่มา: Dev.to

ความคิดเห็น

แสดงความคิดเห็น
0/2000

พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้