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

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
- Amazon Cognito คิดเงินตามจำนวน Monthly Active Users (MAU) และเลือก Tier เริ่มต้นผิด
- งานเบื้องหลัง เช่น สคริปต์ดึงข้อมูลหรือโทเค็นรีเฟรช อาจนับผู้ใช้เป็น MAU โดยไม่รู้ตัว
- โควต้าฟรี (Free Tier) แชร์ร่วมกันทั้งบัญชีหรือ AWS Organization ไม่ได้แยกตามสระว่ายน้ำ (Pool)
- สระว่ายน้ำรุ่นเก่าที่สร้างก่อน 22 พฤศจิกายน 2024 มีเงื่อนไขและโควต้าฟรีที่ต่างออกไป
Amazon Cognito มักเป็นบริการที่หลายทีมมองข้ามเรื่องงบประมาณในช่วงเริ่มต้น เนื่องจากระบบฟรีเทียร์ช่วยรองรับช่วงพัฒนาได้อย่างสบาย บิลค่าใช้จ่ายจึงมักเป็นศูนย์ แต่เมื่อผลิตภัณฑ์เติบโตขึ้น หรือมีการทำย้ายข้อมูล (Migration) รวมถึงการรันแบตช์จ็อบที่แตะข้อมูลผู้ใช้ทั้งหมด ค่าบริการของ Cognito ก็อาจพุ่งสูงขึ้นจนน่าตกใจ
สาเหตุของบิลที่สูงมักไม่ได้มาจากปริมาณทราฟฟิกของผู้ใช้งานจริง แต่มาจากการตัดสินใจตั้งค่าตั้งแต่เนิ่นๆ ตั้งแต่การเลือก Tier ที่ระบบรันอยู่ การจัดการโทเค็นของแอปพลิเคชัน วิธีนำเข้าผู้ใช้ และงานเบื้องหลังที่เข้ามาอ่านข้อมูลผู้ใช้ ข้อมูลราคาอ้างอิงจากหน้าราคาทางการของ Amazon Cognito ณ วันที่ 12 ตุลาคม 2026 ซึ่งคำนวณจากเรตที่ประกาศไว้
สระว่ายน้ำผู้ใช้ (User pools) จะถูกคิดเงินต่อ MAU โดยเรตจะขึ้นอยู่กับฟีเจอร์ Tier ของพูลนั้น ซึ่งมีอยู่ 3 ระดับ โดยพูลใหม่จะถูกสร้างบน Essentials Tier โดยอัตโนมัติเว้นแต่จะระบุเป็นอย่างอื่น Essentials มีราคาอยู่ที่ $0.015 ต่อ MAU ขณะที่ Lite อยู่ที่ $0.0055 และลดเหลือ $0.0046 เมื่อเกิน 100,000 MAU จะเห็นได้ว่าค่าเริ่มต้นมีราคาแพงกว่า Tier ที่ถูกที่สุดเกือบ 3 เท่าตัว

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
การนิยามคำว่า 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
พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้
ความคิดเห็น
แสดงความคิดเห็น