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

Savings Plans: จากส่วนลดกลับกลายเป็นขาดทุน

CTO ซื้อ Compute Savings Plans ตาม Peak usage หวังประหยัด 17% แต่ลืมคิดเรื่อง Low Season Utilization ร่วงเหลือ 60% ทำให้ทั้งปีขาดทุน 1.8 แสนบาท แทนที่จะประหยัด 1.02 ล้านบาท FinOps Practitioner สอน Layered Commitment Strategy

14 ก.พ. 2569 | 12 นาที

ยังไม่มีเวลาอ่าน? แชร์เก็บไว้ก่อนสิ!
TL;DR
  • Rightsize ก่อน Commit: ปรับขนาด resource ให้พอดีก่อนซื้อ Savings Plans ไม่งั้นจะ commit กับ resource ที่ oversized
  • CTO ซื้อ Compute Savings Plans 3.98 ล้านบาท ตาม Peak usage High Season ดีมาก แต่ Low Season ขาดทุน
  • Layered Strategy: commit เฉพาะ baseline (60-70%) ที่แน่นอน ส่วนที่เหลือจ่าย On-Demand ดีกว่า

CTO อยากล็อคราคา Lambda

หลังจากเห็น Fully Loaded Cost (ต้นทุนรวมทั้งหมด) ในตอนที่แล้ว CTO สังเกตว่า Lambda คือต้นทุนก้อนใหญ่ที่ผันผวนตาม traffic เดือนไหน Booking เยอะ ค่า Lambda ก็พุ่ง เดือนไหน Booking น้อย ค่า Lambda ก็ลด

แต่ก่อนจะซื้อ commitment FinOps Practitioner หยุด CTO ไว้ก่อน

เดี๋ยวครับ ก่อนซื้อ Savings Plans ต้อง Rightsize ก่อน

Rightsize ก่อน Commit

Rightsizing คืออะไร?

Rightsizing = ปรับขนาด resource ให้พอดีกับ usage จริง ไม่ใหญ่เกินไป ไม่เล็กเกินไป

FinOps Practitioner ดู CloudWatch Metrics แล้วพบว่า:

ResourceปัจจุบันUsage จริงแนะนำ
RDSdb.r5.xlargeCPU 25%, Memory 40%db.r5.large
ElastiCachecache.r5.largeMemory 35%cache.r5.medium
Lambda1024 MBใช้จริง ~400 MB512 MB

ทำไมต้อง Rightsize ก่อน Commit?

ถ้าซื้อ Savings Plans ก่อน Rightsize จะ commit กับ resource ที่ oversized ทำให้:

  1. จ่ายค่า commitment สำหรับ resource ที่ใหญ่เกินไป
  2. พอ rightsize แล้ว utilization จะต่ำกว่าที่คาด
  3. กลายเป็นขาดทุน

ผลลัพธ์หลัง Rightsize

RDS Cost -35% ลดลง
ElastiCache Cost -40% ลดลง
Lambda Cost -20% ลดลง

หลัง Rightsize แล้ว Lambda cost ลดจาก 5 แสนบาท/เดือน เหลือ 4 แสนบาท/เดือน

FinOps Practitioner: “ตอนนี้ค่อยมาคุยเรื่อง Savings Plans ได้ครับ”

ซื้อ Savings Plans หลัง Rightsize

CTO มองตัวเลขใหม่หลัง Rightsize แล้วคิดว่า

Lambda เดือนละ 4 แสนบาท ถ้าซื้อ Savings Plans ล็อคราคาไว้ ประหยัดได้ 17% เลยนะ

เปิด AWS Pricing Calculator คำนวณดู Compute Savings Plans แบบ 1 Year All Upfront ให้ส่วนลด 17% เทียบกับ On-Demand ถ้าจ่ายก้อนเดียว 3.98 ล้านบาทล่วงหน้า จะประหยัดได้เดือนละ 6.8 หมื่นบาท หรือ ประหยัดได้ 8.16 แสนบาท/ปี

ดูคุ้มมาก CTO เลยกดซื้อเลย

AWS Savings Plans คืออะไร?

Savings Plans คือโปรแกรมส่วนลดของ AWS ที่ให้ราคาถูกลงแลกกับการ commit ใช้งานล่วงหน้า เป็นระยะเวลา 1 หรือ 3 ปี

เปรียบเทียบให้เห็นภาพ:

  • เหมือนจ่ายค่ามือถือรายปีล่วงหน้า ได้ส่วนลด แต่ต้องจ่ายเท่าเดิมทุกเดือนไม่ว่าจะใช้มากหรือน้อย
  • หรือเหมือนซื้อบัตรสมาชิกฟิตเนสรายปี ถ้าไปทุกวันก็คุ้ม แต่ถ้าไปแค่เดือนละครั้งก็ขาดทุน

Savings Plans มี 2 ประเภทหลัก

ประเภทครอบคลุมส่วนลดความยืดหยุ่น
Compute SPLambda, EC2, Fargateสูงสุด 66% (Lambda 17%)สูง ย้าย workload ข้าม service ได้
EC2 Instance SPEC2 เฉพาะ instance familyสูงสุด 72%ต่ำ ผูกกับ instance family และ region

HotelGO ใช้ Compute SP เพราะต้องการความยืดหยุ่นในการย้าย workload

ข้อควรระวัง: Lambda ได้ส่วนลดน้อยกว่า EC2

ServiceCompute SP Discount
EC2สูงสุด 66%
Fargateสูงสุด 50%
Lambdaสูงสุด 17%

Lambda ได้ส่วนลดน้อยกว่ามาก ต้องคิดให้ดีก่อนซื้อ

3 วิธีจ่าย Savings Plans

Payment Optionวิธีจ่ายส่วนลด Lambda
All Upfrontจ่ายก้อนเดียวล่วงหน้า17% (สูงสุด)
Partial Upfrontจ่ายครึ่งหนึ่งล่วงหน้า + รายเดือน~14%
No Upfrontจ่ายรายเดือน~12%

CTO เลือก All Upfront เพราะได้ส่วนลดสูงสุด แต่ก็ต้องจ่ายก้อนใหญ่ 3.98 ล้านบาททีเดียว

High Season: ดูคุ้มมาก

เดือน พ.ย. ถึง เม.ย. คือ High Season ของธุรกิจท่องเที่ยว คนจองโรงแรมเยอะ traffic สูง Lambda ทำงานหนัก

Metricตัวเลข
Lambda On-Demand (ถ้าไม่ซื้อ SP)4 แสนบาท/เดือน
SP Commitment (amortized)3.32 แสนบาท/เดือน
UtilizationUtilization 100%
Savingsประหยัดได้ 6.8 หมื่นบาท/เดือน

Utilization คืออะไร?

Utilization = สัดส่วนที่ใช้งานจริง เทียบกับที่ commit ไว้

สูตร: Utilization = (Actual Usage ÷ Commitment) × 100%

ตัวอย่าง:

  • Commit 3.32 แสนบาท/เดือน
  • ใช้จริง 3.32 แสนบาท/เดือน (100% ของ commitment)
  • Utilization = 100%

ยิ่งสูงยิ่งดี ถ้า Utilization 100% แปลว่าใช้คุ้มทุกบาทที่ commit

CTO ยิ้มกว้าง ทุกเดือนประหยัดได้ 6.8 หมื่นบาท ตามที่คำนวณไว้เป๊ะ ถ้าทั้งปีเป็นแบบนี้ จะประหยัดได้ 8.16 แสนบาท คุ้มค่ากับ 3.98 ล้านบาทที่จ่ายไป

Low Season มาถึง: ตัวเลขพลิก

พอเข้าเดือน พ.ค. ทุกอย่างเปลี่ยน

ช่วง พ.ค. ถึง ต.ค. คือ Low Season ฝนตก คนเที่ยวน้อย Booking ลดลง 40% Lambda invocations ลดตาม

MetricHigh SeasonLow Seasonเปลี่ยนแปลง
Lambda On-Demand4 แสนบาท2.4 แสนบาทลดลง 40%
SP Commitment3.32 แสนบาท3.32 แสนบาทเท่าเดิม
Utilization100%Utilization ร่วงเหลือ 72%−28pp
Net vs On-Demand+6.8 หมื่นบาทขาดทุน 9.2 หมื่นบาท/เดือนขาดทุน!

CTO เปิด Cost Explorer เดือน พ.ค. แล้วตกใจ ถ้าไม่ซื้อ SP จะจ่ายแค่ 2.4 แสนบาท แต่ซื้อ SP แล้วต้องจ่าย 3.32 แสนบาท แพงกว่า On-Demand ขาดทุน 9.2 หมื่นบาท/เดือน

ทำไมถึงขาดทุน?

Savings Plans = Fixed Commitment

ไม่ว่าจะใช้มากหรือน้อย ต้องจ่ายเท่าเดิมทุกเดือน

  • High Season: ใช้ 4 แสนบาท แต่จ่าย 3.32 แสนบาท → ประหยัด 6.8 หมื่นบาท
  • Low Season: ใช้ 2.4 แสนบาท แต่จ่าย 3.32 แสนบาท → ขาดทุน 9.2 หมื่นบาท

เหมือนซื้อบัตรฟิตเนสรายปี 12,000 บาท ถ้าไปทุกวันก็คุ้ม แต่ถ้าไปแค่ 6 เดือนแรกแล้วหยุดไป ก็ขาดทุน

Lambda Cost: On-Demand vs SP Commitment (บาท/เดือน)

ดูจาก Chart จะเห็นชัดว่าเส้น On-Demand (สีฟ้า) ดิ่งลงช่วง Low Season แต่เส้น SP Commitment (สีเหลือง) ยังคงที่ ช่วง 6 เดือนหลัง เส้นเหลืองอยู่ เหนือ เส้นฟ้า แปลว่าจ่ายแพงกว่า

สรุปทั้งปี: ขาดทุน 1.8 แสนบาท

CTO นั่งคำนวณตัวเลขทั้งปี

High Season (6 เดือน) 4.08 แสนบาท ประหยัดได้
Low Season (6 เดือน) −5.52 แสนบาท ขาดทุน
Net Savings ทั้งปี −1.44 แสนบาท ขาดทุนสุทธิ
การคำนวณ Net Savings
ช่วงเดือนSavings/เดือนรวม
High Season6+6.8 หมื่นบาท+4.08 แสนบาท
Low Season6−9.2 หมื่นบาท−5.52 แสนบาท
รวมทั้งปี12−1.44 แสนบาท

คาดว่าจะประหยัดได้ 8.16 แสนบาท แต่กลับ ขาดทุนสุทธิ 1.44 แสนบาท ผลต่างจากที่คาดถึง 9.6 แสนบาท

แถม 3.98 ล้านบาทที่จ่ายก้อนไปแล้ว ถ้าเอาไปลงทุนอย่างอื่น (จ้างคน, ทำ marketing) อาจได้ผลตอบแทนดีกว่า

Opportunity Cost (ต้นทุนค่าเสียโอกาส) คืออะไร?

Opportunity Cost = มูลค่าของทางเลือกที่ดีที่สุดที่เราไม่ได้เลือก

ตัวอย่าง:

  • จ่าย 3.98 ล้านบาท ซื้อ Savings Plans
  • ถ้าเอาเงินนี้ไปจ้าง Engineer 2 คน (เงินเดือนคนละ 1 แสนบาท × 12 เดือน = 2.4 ล้านบาท)
  • Engineer อาจช่วย optimize ระบบให้ประหยัดได้มากกว่า 1.02 ล้านบาท

Opportunity Cost ของการซื้อ SP = มูลค่าที่ Engineer จะสร้างได้

Breakeven Utilization: ตัวเลขที่ต้องรู้ก่อนซื้อ

FinOps Practitioner เห็น CTO หน้าเสีย เลยเข้ามาอธิบายว่า

ก่อนซื้อ commitment ต้องคำนวณ Breakeven Utilization ก่อน

Breakeven Utilization คืออะไร?

Breakeven Utilization = จุดที่ใช้งานพอดี ไม่ได้ไม่เสีย

สูตร: Breakeven = 100% − Discount Rate

ตัวอย่าง Lambda SP:

  • Discount = 17%
  • Breakeven = 100% − 17% = 83%

ความหมาย:

  • Utilization ≥ 83% → คุ้ม (ประหยัดได้)
  • Utilization < 83% → ขาดทุน (จ่ายแพงกว่า On-Demand)

Low Season ของ HotelGO มี Utilization แค่ 60% ต่ำกว่า Breakeven 23pp ทำให้ขาดทุนทุกเดือน

Layered Commitment Strategy: วิธีซื้อที่ถูกต้อง

FinOps Practitioner วาดรูปบน whiteboard

อย่าซื้อ commitment ตาม Peak ซื้อตาม Baseline แทน

Layered Commitment Strategy คืออะไร?

แบ่ง usage เป็น 3 ชั้น แล้ว commit แต่ละชั้นต่างกัน:

Layerคำอธิบายวิธี commit
Base (60-70%)Minimum ที่แน่นอนว่าใช้ทุกเดือนSavings Plans (All Upfront)
MiddlePattern ที่ predictable (เช่น High Season)Savings Plans (No Upfront) หรือ Spot
TopPeak และความผันผวนOn-Demand

หลักการ: Commit เฉพาะสิ่งที่แน่ใจ 100% ส่วนที่ไม่แน่ใจ จ่าย On-Demand ดีกว่า

เปรียบเทียบ: ซื้อตาม Peak vs ซื้อตาม Baseline

สำหรับ HotelGO ถ้าทำใหม่:

StrategyCommitmentNet Savings/ปี
❌ ซื้อตาม Peak (100%)3.32 แสนบาท/เดือนขาดทุน 1.44 แสนบาท/ปี
✅ ซื้อตาม Baseline (60%)1.99 แสนบาท/เดือนประหยัดได้ 4.9 แสนบาท/ปี
คำนวณ Baseline Strategy
  • Baseline = 60% ของ Peak = 4 แสนบาท × 60% = 2.4 แสนบาท
  • SP Rate (17% off) = 2.4 แสนบาท × 83% = 1.99 แสนบาท/เดือน
  • High Season: ใช้ 4 แสนบาท จ่าย SP 1.99 แสนบาท + On-Demand 1.6 แสนบาท = 3.59 แสนบาท (ประหยัด 4.1 หมื่นบาท)
  • Low Season: ใช้ 2.4 แสนบาท จ่าย SP 1.99 แสนบาท + On-Demand 0 = 1.99 แสนบาท (ประหยัด 4.1 หมื่นบาท)
  • Net Savings/ปี = (4.1 หมื่นบาท × 6) + (4.1 หมื่นบาท × 6) = 4.9 แสนบาท

ซื้อตาม Baseline commit แค่ 60% ของ Peak → ได้ Savings จริง ประหยัดได้ 4.9 แสนบาท/ปี แทนที่จะขาดทุน 1.44 แสนบาท

สรุป: ส่วนลดไม่ได้ดีเสมอไป

CTO เรียนรู้บทเรียนสำคัญ

ส่วนลด 17% ฟังดูดี แต่ถ้าใช้ไม่ถึง 83% ส่วนลดก็กลายเป็นขาดทุน

บทเรียนจากตอนนี้:

บทเรียนรายละเอียดใครควรจำ
คำนวณ Breakeven ก่อนซื้อLambda SP ต้องใช้ ≥83% ถึงจะคุ้มCTO, FinOps
อย่าซื้อตาม Peakซื้อตาม Baseline ที่แน่นอนว่าใช้ทุกเดือนทุกคน
คิด Seasonalityธุรกิจท่องเที่ยวมี High/Low Season ชัดเจนCFO, Manager
Opportunity Costเงินที่จ่ายก้อนล่วงหน้า อาจเอาไปทำอย่างอื่นได้ดีกว่าCFO

Checklist ก่อนซื้อ Savings Plans

  1. ✅ คำนวณ Breakeven Utilization แล้วหรือยัง?
  2. ✅ ดู usage ย้อนหลัง 12 เดือน มี Seasonality ไหม?
  3. ✅ Minimum usage ที่แน่นอนคือเท่าไหร่?
  4. ✅ เปรียบเทียบ All Upfront vs No Upfront แล้วหรือยัง?
  5. ✅ คิด Opportunity Cost ของเงินที่จ่ายก้อนแล้วหรือยัง?

ตอนนี้ HotelGO เข้าใจเรื่อง commitment แล้ว CTO ถามต่อว่า “ปีหน้าค่า Cloud จะเท่าไหร่?” ตอนหน้า FinOps Practitioner จะสอนวิธี Forecast ค่า Cloud ที่ไม่ใช่การเดา แต่เป็น Data-driven Budgeting

ชอบบทความนี้? แชร์ให้เพื่อนด้วยสิ!

รับบทความผ่านทางอีเมล

บทความที่เกี่ยวข้อง