ผมเชื่อว่า BigQuery เป็น Data Warehouse ที่นิยมและอยู่ในใจของหลาย ๆ ท่านอยู่แล้ว ซึ่งที่ผ่านมานี้ BigQuery มีการอัปเดตโมเดลส่วนลดมาใหม่ และผมจะมาเล่าให้ฟังครับ พวกเราจะได้วางแผนค่าใช้จ่ายกันได้อย่างมีประสิทธิภาพมากขึ้นนั่นคือ CUDs ตัวใหม่ครับ
BigQuery CUDs ยืดหยุ่นและประหยัดได้มากกว่าเดิม !
ทุกคนที่ทำงานกับ Data คงจะคุ้นเคยกับ BigQuery ของ Google Cloud กันดีอยู่แล้วนะครับ ด้วยความสามารถที่มหาศาลในการประมวลผลข้อมูลขนาดใหญ่แบบ Serverless ทำให้มันกลายเป็นเครื่องมือคู่ใจของ Data Engineer และ Data Scientist จำนวนมาก
แต่บางครั้งเรื่องค่าใช้จ่ายก็อาจจะทำให้หลายคนกุมขมับได้เหมือนกัน โดยเฉพาะเวลาที่เรามี Workload ที่ไม่สม่ำเสมอ การเลือกใช้ Committed Use Discounts (CUDs) แบบเดิมที่อิงตาม Resource-based หรือ Slot-hours ก็อาจจะไม่ตอบโจทย์ได้เต็มที่นัก
ข่าวดีก็คือ Google Cloud ได้เปิดตัว BigQuery Spend-Based Committed Use Discounts (CUDs) ซึ่งเป็นโมเดลส่วนลดแบบใหม่ที่ผมตื่นเต้นมาก เพราะมันถูกออกแบบมาเพื่อเพิ่มความยืดหยุ่นในการบริหารจัดการค่าใช้จ่ายบน BigQuery โดยเฉพาะเลยครับ
CUDs คืออะไร ?
CUDs ย่อมาจาก Committed Use Discounts ครับ โดยหลักการง่าย ๆ คือการที่เรา “Commit” หรือตกลงที่จะใช้งานบริการของ Google Cloud ในปริมาณที่กำหนดไว้ล่วงหน้าเป็นระยะเวลาหนึ่ง (เช่น 1 ปี หรือ 3 ปี) แลกกับส่วนลดที่มากกว่าการจ่ายแบบ Pay-as-you-go (จ่ายตามการใช้งานจริง) ครับ
โดยปกติแล้ว CUDs มักจะเกี่ยวข้องกับบริการหลัก ๆ ที่มีการใช้งานอย่างต่อเนื่องและสม่ำเสมอ เช่น :
- Compute Engine (VMs): อันนี้คือตัวอย่างคลาสสิกเลยครับ ถ้าคุณรู้ว่าต้องรัน VM Instance สเปกเดิมตลอด 24 ชั่วโมงเป็นเวลา 1 ปี คุณก็สามารถ Commit การใช้งาน VM นั้น ๆ เพื่อรับส่วนลดได้เลย
- Google Kubernetes Engine (GKE): สำหรับ Workload ที่รันบน GKE ที่มีการใช้งาน Node Pool อย่างต่อเนื่อง ก็สามารถใช้ CUDs ได้เช่นกัน
- Cloud SQL: ฐานข้อมูลที่รันอย่างต่อเนื่องก็เป็นอีกบริการที่มักจะมีการใช้ CUDs เพื่อประหยัดค่าใช้จ่าย
- และบริการอื่น ๆ ที่มีการใช้งาน Resource แบบ Fixed หรือ Predictable ครับ
จุดประสงค์ของ CUDs คือช่วยให้ผู้ใช้งานประหยัดค่าใช้จ่ายในระยะยาว โดยเฉพาะอย่างยิ่งสำหรับ Workload ที่มีลักษณะคงที่และคาดการณ์ได้ครับ

ตัวอย่าง SUD และ CUD บน Compute Engine
BigQuery Spend-Based CUDs คืออะไร ?

BigQuery Spend-Based CUDs คือการที่เราตกลงที่จะ Commitment การใช้จ่ายขั้นต่ำ (Minimum Spend) ต่อชั่วโมงบน BigQuery เฉพาะส่วนที่เป็น BigQuery PAYG Capacity เท่านั้น โดยไม่จำเป็นต้องยึดติดกับจำนวน Slot หรือ Resource ที่ตายตัวอีกต่อไปครับ ทำให้เราสามารถขยับขยายการใช้จ่ายไปในส่วนต่าง ๆ ของ BigQuery ได้อย่างอิสระมากขึ้น
BigQuery PAYG คืออะไร ?

BigQuery PAYG คือ รูปแบบการคิดค่าบริการสำหรับ SKU ต่าง ๆ ที่อยู่ใน BigQuery Unified Platform ซึ่งจะคิดค่าใช้จ่ายตามการใช้งานจริง โดยครอบคลุมบริการที่หลากหลาย เช่น:
- BigQuery Editions (Standard, Enterprise, Enterprise Plus)
- BigQuery Engine for Apache Airflow (Cloud Composer 3)
- BigQuery Governance (Dataplex)
- Google Cloud Serverless for Apache Spark

พูดง่าย ๆ คือครอบคลุมหน่วยประมวลต่าง ๆ ที่ใช้ BigQuery Slots หรือคิดเงินจาก DCUs มาใช้เรตเดียวเป็น BigQuery Slots ครับ ถ้าท่านใดอยากทราบ SKUs ใต้ BigQuery PAYG อย่างละเอียดผมแนะนำให้ดูจากลิงก์นี้ครับ
สนใจโซลูชัน Google Cloud หรืออื่นๆ จาก Tangerine
ทีมผู้เชี่ยวชาญของเราพร้อมให้คำปรึกษาและออกแบบโซลูชันที่ตอบโจทย์ที่สุดสำหรับองค์กรของคุณ
BigQuery มี CUDs 2 แบบ เลือกให้เหมาะกับคุณ
หลายคนอาจจะเริ่มงงกับส่วนลดต่าง ๆ บน BigQuery ดังนั้นเดี๋ยวผมสรุปให้ฟังครับ สรุปคือ BigQuery มี Committed Use Discounts ให้เลือก 2 รูปแบบหลัก ๆ เพื่อตอบโจทย์การใช้งานที่แตกต่างกันครับ
- Capacity Commitments (หรือ BigQuery Editions Resource-based CUDs):
- คืออะไร ?: เป็นการ Commitment ที่จะซื้อจำนวน “Slot” (หน่วยประมวลผลของ BigQuery) ที่ระบุไว้ล่วงหน้า โดยจะผูกกับ BigQuery Enterprise edition ขึ้นไป
- เหมาะกับใคร ?: เหมาะสำหรับ Workload SQL ที่ค่อนข้างเสถียรและคาดการณ์ได้ โดยเฉพาะผู้ใช้งานที่มีการใช้งาน BigQuery Enterprise edition ขึ้นไปและต้องการประสิทธิภาพการคำนวณที่คงที่
- การคิดค่าใช้จ่าย: จะคิดค่าบริการตามจำนวน Slot-hours ที่คุณ Commitment ไว้ และเป็นการ Commitment ที่ถูก Retire อย่างต่อเนื่อง (Always on)
- ส่วนลด: 20% สำหรับ 1 ปี และ 40% สำหรับ 3 ปี

ตัวอย่าง commitment ของ BigQuery Enterprise Edition อ่านเพิ่มเติมได้จาก Blog นี้
- Spend-Based Commitments (ที่กำลังพูดถึงในบทความนี้)
- คืออะไร ?: เป็นการ Commitment “มูลค่าการใช้จ่าย” ต่อชั่วโมงบน BigQuery PAYG SKUs ในแต่ละ Region โดยจะได้รับส่วนลดจากการตกลงว่าจะใช้จ่ายขั้นต่ำ
- เหมาะกับใคร ?: เหมาะสำหรับ Workload ที่คาดเดายาก มีการขึ้น-ลงของปริมาณการใช้งาน หรือมีการใช้ BigQuery Capabilities ที่หลากหลาย รวมถึงผู้ใช้งานที่กำลัง Optimize หรือย้าย Workload มายัง Cloud
- การคิดค่าใช้จ่าย: จะคิดค่าบริการตามมูลค่า Commitment ที่คุณตกลงไว้ โดยส่วนลดจะไปหักล้างกับค่าใช้จ่าย PAYG ของคุณ และเป็นการ Commitment ที่ถูก Retire อย่างต่อเนื่อง (Always on)
- ส่วนลด: 10% สำหรับ 1 ปี และ 20% สำหรับ 3 ปี

ตัวอย่างการ Spend-Based Commitments ที่ 3 ปีได้ส่วนลด 20%
เปรียบเทียบทั้งหมดระหว่าง Capacity Commitments (หรือ BigQuery Editions Resource-based CUDs) กับ Spend-Based Commitments จะเป็นดังรูปนี้ครับ

เริ่มใช้ได้เมื่อไหร่ ? และใครเหมาะกับสิ่งนี้ ?
BigQuery Spend-Based CUDs นี้เปิดให้ใช้งานแล้วตั้งแต่วันที่ 14 เมษายน 2025 โดยสามารถจัดการได้เองผ่าน Google Cloud console ครับ สามารถเริ่มทำตามได้ตามเอกสารนี้
แล้วใครบ้างล่ะที่เหมาะกับ CUDs แบบใหม่นี้ ? ผมสรุปมาให้แบบเข้าใจง่าย ๆ ครับ:
- ผู้ใช้งานใหม่ที่ต้องการความยืดหยุ่นสูง (New Customers): ถ้าคุณเพิ่งเริ่มย้ายระบบขึ้น Cloud หรือยังไม่มีข้อมูลที่ชัดเจนเกี่ยวกับรูปแบบการใช้งาน BigQuery ของตัวเอง CUDs แบบ Spend-Based จะช่วยให้คุณประหยัดค่าใช้จ่ายได้ โดยที่ไม่ต้องกังวลว่าจะ Commit Resource มากเกินไป เพราะมันยืดหยุ่นและรองรับ Workload ที่ไม่แน่นอนได้ดี
- ผู้ใช้งานที่ Workload คาดเดายาก (Bursty, Unpredictable Workloads): บางที Data Workload ของเราก็ไม่ได้วิ่งเท่ากันเป๊ะ ๆ ตลอดเวลาใช่มั้ยครับ ? บางช่วงก็พีค บางช่วงก็เบาลง CUDs แบบใหม่นี้จะเหมาะมากกับ Workload ที่ผันผวนแบบนี้ เพราะช่วยให้คุณประหยัดได้โดยไม่ต้อง “Lock-in” กับจำนวน Slot ที่ตายตัว
- ผู้ใช้งานที่มีการใช้งาน BigQuery Capabilities หลากหลาย (Frictionless Interoperability): BigQuery ตอนนี้ไม่ใช่แค่ SQL Query อย่างเดียวแล้วนะครับ แต่ยังรวมถึง BigQuery Governance (Dataplex), BigQuery Engine for Apache Airflow (Cloud Composer 3), และ Google Cloud Serverless for Apache Spark (สำหรับ Serverless Spark 3.X) Spend-Based CUDs จะครอบคลุมการใช้จ่ายในบริการเหล่านี้ทั้งหมด ทำให้คุณสามารถโยกค่าใช้จ่ายไปมาระหว่าง Engine ต่าง ๆ ได้อย่างสบายใจ
- ผู้ใช้งานที่ต้องการเพิ่มประสิทธิภาพด้านต้นทุน (Cost Optimization): ไม่ว่าคุณจะกำลัง Optimize Workload, ย้ายระบบจาก On-premises หรือธุรกิจกำลังเติบโต (หรือแม้แต่ลดขนาดลง) โมเดลนี้จะช่วยให้คุณควบคุมค่าใช้จ่ายได้ดีขึ้น และลดความเสี่ยงจากการจ่ายแบบ on-demand ที่อาจจะแพงกว่าในระยะยาว
ใครหรือ Workload แบบใดไม่เหมาะกับ Spend-Based CUDs?
แม้ว่า Spend-Based CUDs จะมีความยืดหยุ่นและประโยชน์มากมาย แต่ก็มีบางกรณีที่อาจจะไม่เหมาะ หรือไม่ได้ประโยชน์สูงสุดครับ
- ผู้ใช้งานที่มีส่วนลดอื่นสูงอยู่แล้ว: หากคุณมีส่วนลดแบบ Enterprise Discount Program (EDP) หรือส่วนลดเฉพาะผลิตภัณฑ์ (Product-specific discount) ที่สูงมากกก.. มากกว่าหรือเท่ากับ 30% อยู่แล้ว คุณอาจจะไม่มีสิทธิ์ได้รับ Spend-Based CUDs ครับ เพราะ CUDs เหล่านี้มีเจตนาเพื่อเสริมส่วนลดที่มีอยู่ แต่ไม่ได้มีไว้สำหรับการซ้อนทับกับส่วนลดที่สูงมากอยู่แล้ว
- Workload ที่ไม่มีการใช้ BigQuery PAYG SKUs: Spend-Based CUDs จะใช้ได้กับ BigQuery PAYG SKUs เท่านั้น ดังนั้น หาก Workload ของคุณส่วนใหญ่ไม่ได้ใช้บริการในกลุ่มนี้ (เช่น ใช้ BigQuery On-demand pricing แบบ Byte Scanned Model เป็นหลัก) คุณก็อาจจะไม่ได้รับประโยชน์จาก CUDs นี้ครับ
- Workload ที่ใช้ Spark หรือ Composer เวอร์ชันเก่า: ถึงแม้ว่า Spend-Based CUDs จะครอบคลุม Google Cloud Serverless for Apache Spark และ Cloud Composer 3 แต่ถ้า Workload Spark หรือ Composer ของคุณยังรันอยู่บนเวอร์ชันอื่นที่ไม่ใช่ที่ระบุไว้ คุณจะต้อง Migrate ไปยังเวอร์ชันที่รองรับก่อนจึงจะสามารถใช้ Spend-Based CUDs ได้
- เน้นการใช้งาน Storage: Spend-Based CUDs ไม่ได้ครอบคลุมค่าใช้จ่ายในส่วนของ BigQuery Storage ครับ การคิดค่าใช้จ่าย Storage จะยังคงเป็นไปตาม SKU ของ BigQuery Storage ปกติ
- ผู้ใช้งานที่ต้องการ Fixed Price แบบเฉพาะเจาะจง: หากคุณมีการเจรจา Fixed Price สำหรับ SKU ที่เฉพาะเจาะจงอยู่แล้ว และต้องการราคาคงที่แบบนั้น Spend-Based CUDs อาจไม่เกี่ยวข้องโดยตรง เพราะ CUDs จะเป็นการลดราคาจาก PAYG ครับ
ข้อควรจำเมื่อใช้ Spend-Based CUDs
- Regional-based: คุณต้องซื้อ Spend-Based CUDs แยกสำหรับแต่ละ Region ที่คุณใช้งาน BigQuery ครับ ถ้ามีการใช้งานหลาย Region ก็ต้องคำนวณและซื้อแยกกัน
- ครอบคลุมทุกโปรเจกต์ใน Billing Account: ส่วนลดนี้จะถูกนำไปใช้กับ BigQuery PAYG Usage ที่เข้าเกณฑ์ทั้งหมดในทุกโปรเจกต์ที่ผูกอยู่กับ Cloud Billing Account นั้น ๆ โดยอัตโนมัติ
- Fixed Commitment Fee: เมื่อคุณทำการ Commitment แล้ว คุณจะจ่ายค่าธรรมเนียม Commitment ที่เท่าเดิมตลอดระยะเวลาสัญญา แม้ว่าราคาของ BigQuery PAYG อาจมีการเปลี่ยนแปลงในอนาคตก็ตาม ส่วนการใช้งานที่เกินกว่า Commitment ก็จะถูกคิดในอัตรา PAYG ปกติครับ
ตัวอย่างวิธีการคำนวณส่วนลด BigQuery Spend-Based CUDs
เพื่อให้เห็นภาพชัดเจนขึ้น ผมขอยกตัวอย่างวิธีการคำนวณส่วนลดนะครับ สมมติว่าคุณกำลังรัน Workload ที่ใช้ Enterprise edition slot-hours ใน Region asia-southeast1 (ที่สิงคโปร์)
- คุณตัดสินใจ Commitment ที่จะใช้จ่าย BigQuery เป็นมูลค่า $2 ต่อชั่วโมง เป็นระยะเวลา 3 ปี ใน Region asia-southeast1 ซึ่งครอบคลุมทุกโปรเจกต์ภายใต้ Cloud Billing Account ของคุณ
- คุณจะได้รับส่วนลด 20% สำหรับ Commitment 3 ปี
- ค่าธรรมเนียม Commitment ของคุณต่อชั่วโมง จะเท่ากับ: $2 (มูลค่า Commitment ต่อชั่วโมง) * (ราคาจ่าย 80% เพราะส่วนลด 20%) = $2 * 0.80 = $1.60 ต่อชั่วโมง
- คุณจะถูกเรียกเก็บเงินขั้นต่ำ $0.80 ต่อชั่วโมง ตลอดระยะเวลา 3 ปีของการ Commitment ไม่ว่าคุณจะใช้งาน BigQuery PAYG จริงน้อยกว่าหรือเท่ากับ $2 ต่อชั่วโมงก็ตาม
- หากการใช้งาน BigQuery PAYG ของคุณใน asia-southeast1 เกิน $2 ต่อชั่วโมง (เช่น ใช้ไป $2.50 ต่อชั่วโมง) ส่วน $2 แรกจะถูกหักด้วยส่วนลดจาก CUD (เหลือ $1.60) และส่วนเกินอีก $0.50 จะถูกคิดในอัตรา PAYG ปกติครับ

คำถามที่พบบ่อย (ที่ผมคิดว่าหลายคนต้องสงสัย !)
- มี BigQuery Resource-Based CUDs อยู่แล้ว ใช้ Spend-Based CUDs เพิ่มได้ไหม ?
ได้ครับ ! ทั้งสองแบบสามารถใช้ร่วมกันได้เลย โดยปกติแล้ว Resource-Based CUDs จะถูกใช้ก่อนสำหรับ SQL Workload ใน BigQuery Enterprise edition จากนั้น Spend-Based CUDs จะเข้ามาครอบคลุมส่วนที่เหลือ - ถ้ามี Workload บน Spark หรือ Composer จะได้ประโยชน์ไหม ?
แน่นอนครับ ! ผู้ใช้งานสามารถใช้ Spend-Based CUDs สำหรับ Engine ที่รวมอยู่ใน BigQuery ได้เลย แต่ต้องเป็น Serverless Spark 3.X และ Cloud Composer 3 เท่านั้นนะครับ ถ้าเป็นเวอร์ชันอื่นต้อง Migrate ก่อน - แล้ว Storage SKUs ล่ะ ?
Storage SKUs จะอยู่ภายใต้ BigQuery SKUs เฉย ๆ ครับ ไม่ใช่ PAYG ดังนั้นจะใช้ราคาเดิม - สามารถยกเลิกหรือเปลี่ยน Commitment ได้ไหม ?
Commitment ที่ซื้อไปแล้วไม่สามารถเปลี่ยนแปลงได้ครับ แต่สามารถซื้อ Commitment ใหม่เพิ่มเติมได้ตามความต้องการ - ส่วนลดนี้ซ้อนกับส่วนลดอื่น ๆ ได้ไหม (เช่น EDP) ?
โดยทั่วไปแล้ว Spend-Based CUDs จะทำงานร่วมกับส่วนลดอื่นๆ (เช่น EDP หรือ Product-specific discounts) แต่มีข้อควรระวังคือ ถ้าผู้ใช้งานมีส่วนลด EDP หรือ Product discount ที่สูงกว่าหรือเท่ากับ 30% อยู่แล้ว จะไม่สามารถใช้ Spend-Based CUDs ได้ครับ
สรุป
BigQuery Spend-Based CUDs ถือเป็นอีกก้าวสำคัญที่ Google Cloud ได้พัฒนาขึ้นมาเพื่อตอบโจทย์ความต้องการของผู้ใช้งานที่หลากหลาย โดยเฉพาะผู้ที่ต้องการความยืดหยุ่นในการบริหารจัดการค่าใช้จ่าย และมี Workload ที่คาดเดายาก
ผมมองว่านี่เป็นโอกาสที่ดีในการ Optimize Cost ให้กับการใช้งาน BigQuery ของคุณ ไม่ว่าคุณจะเป็นลูกค้าใหม่หรือลูกค้าเดิมก็ตาม หากสนใจหรือมีข้อสงสัยเพิ่มเติม สามารถสอบถามกับทีม Tangerine ของเราได้เลยครับ เราพร้อมช่วยให้คุณใช้ Google Cloud ได้อย่างเต็มประสิทธิภาพและคุ้มค่าที่สุด ! คลิกเพื่อปรึกษาเรา