“คิดเงินรายวินาที” เป็นหนึ่งในวลีที่ฟังดูครบถ้วนแต่จริง ๆ ไม่ใช่ เบื้องหลังมีการตัดสินใจหลายอย่างที่เปลี่ยนสิ่งที่คุณต้องจ่าย: วัดอะไร นาฬิกาเริ่มและหยุดเมื่อไร มีขั้นต่ำหรือไม่ เศษของเซนต์จัดการอย่างไร และเงินออกจากยอดคงเหลือของคุณจริงเมื่อไร
บทความนี้บันทึกคำตอบของเรา พร้อมการคำนวณ สำหรับแซนด์บ็อกซ์สำหรับโค้ด เป้าหมายคือให้คุณคาดการณ์บิลได้ถึงระดับเซนต์ก่อนจะรันอะไร และรู้จุดที่การคิดเงินรายวินาทีเป็นโมเดลที่ผิดสำหรับเวิร์กโหลดของคุณ
หน่วย: vCPU และ RAM ที่จองไว้
ราคาของแซนด์บ็อกซ์คือราคาของทรัพยากรที่แพ็กเกจจองไว้:
- $0.040 ต่อ vCPU-ชั่วโมง
- $0.013 ต่อ RAM 1 GiB ต่อชั่วโมง
ดังนั้นแพ็กเกจ small (0.5 vCPU, 1 GB) มีค่าใช้จ่าย 0.5 × 0.040 + 1 × 0.013 = $0.033 ต่อชั่วโมง หรือประมาณ $0.0000092 ต่อวินาที แพ็กเกจใหญ่ที่สุด max (8 vCPU, 16 GB) มีค่าใช้จ่าย $0.528 ต่อชั่วโมง
เราวัดการจอง ไม่ใช่การใช้งานจริง แซนด์บ็อกซ์ที่รอคำสั่งถัดไปมีค่าใช้จ่ายต่อวินาทีเท่ากับแซนด์บ็อกซ์ที่กำลังคอมไพล์โปรเจกต์ การวัด CPU ที่ใช้จริงอาจดูยุติธรรมกว่าบนกระดาษ แต่จะทำให้รู้ราคาล่วงหน้าไม่ได้ และอย่างไรก็ตามความจุก็ถูกกันไว้ให้คุณอยู่แล้ว ทราฟฟิกขาออกไม่คิดเงิน
นาฬิกา: ตั้งแต่สร้างจนถึงลบ
แซนด์บ็อกซ์ชั่วคราวถูกคิดเงินตั้งแต่ตอนที่สร้างจนถึงตอนที่ลบ รวมถึงเวลาที่ว่างอยู่ก่อนที่ระยะหมดเวลาเมื่อไม่มีกิจกรรมจะลบมันทิ้ง ซึ่งค่าเริ่มต้นคือ 300 วินาที
ความประหลาดใจส่วนใหญ่มาจากตรงนี้ สคริปต์ที่ใช้เวลาสองนาที ในแซนด์บ็อกซ์ที่ไม่มีใครลบ จะถูกคิดเงินเจ็ดนาที: ทำงานสองนาทีและรอหมดเวลาอีกห้านาที วิธีแก้น่าเบื่อมาก: ลบแซนด์บ็อกซ์เมื่อใช้เสร็จ (บล็อก with ของ SDK ทำให้คุณอัตโนมัติ) หรือลดระยะหมดเวลาเมื่อไม่มีกิจกรรม
ขั้นต่ำ: 60 วินาทีต่อแซนด์บ็อกซ์
แซนด์บ็อกซ์ชั่วคราวทุกตัวถูกคิดเงินอย่างน้อย 60 วินาทีของอายุการใช้งาน การเริ่ม microVM การต่อดิสก์และเครือข่าย แล้วรื้อทุกอย่างออก มีต้นทุนเท่ากันไม่ว่าโค้ดข้างในจะรันหนึ่งวินาทีหรือห้าสิบวินาที
| อายุการใช้งาน | แพ็กเกจ | ที่คิดเงิน | ค่าใช้จ่าย |
|---|---|---|---|
| 20 วิ | small | 60 วิ | $0.00055 |
| 61 วิ | small | 61 วิ | $0.00056 |
| 10 นาที | small | 600 วิ | $0.0055 |
| 3 ชม. | standard | 10,800 วิ | $0.198 |
ขั้นต่ำใช้เพียงครั้งเดียว เมื่อแซนด์บ็อกซ์สิ้นสุด และเฉพาะเมื่ออายุรวมสั้นกว่า 60 วินาที ไม่มีขั้นต่ำเพิ่มเติมรายชั่วโมงหรือรายคำสั่ง
การสะสมและการตัดเงิน: ไมโครดอลลาร์และเซนต์เต็ม
นี่คือส่วนที่คำว่า “รายวินาที” มักไม่ได้บอกคุณ โฮสต์ของแซนด์บ็อกซ์บันทึกการใช้งานเป็นช่วงรายชั่วโมง ช่วงละหนึ่งต่อแซนด์บ็อกซ์ นาทีละครั้ง งานคิดเงินจะรวบรวมช่วงที่ปิดแล้ว คิดราคา และตัดจากยอดคงเหลือ
การคิดราคาทำในหน่วยหนึ่งในล้านของดอลลาร์ การตัดเงินทำเป็นเซนต์เต็ม ส่วนที่เหลือต่ำกว่าหนึ่งเซนต์จะอยู่ในบัญชีของคุณและบวกเข้ากับการตัดเงินครั้งถัดไป ไม่มีการปัดขึ้นทั้งต่อแซนด์บ็อกซ์และต่อชั่วโมง
ในระดับเล็ก ๆ เรื่องนี้สำคัญ แซนด์บ็อกซ์ 20 วินาทีจำนวนร้อยตัวสะสมเป็น 100 × $0.00055 = $0.055 คุณถูกตัดห้าเซนต์ และอีกครึ่งเซนต์รอรอบถัดไป ถ้าปัดแต่ละแซนด์บ็อกซ์ขึ้นเป็นหนึ่งเซนต์ งานเดียวกันจะมีค่าใช้จ่ายหนึ่งดอลลาร์
อีกสองคุณสมบัติที่ควรรู้:
- แต่ละช่วงถูกคิดเงินครั้งเดียวพอดี บันทึกการใช้งานและการตัดเงินถูกเขียนในทรานแซกชันฐานข้อมูลเดียว โดยใช้แซนด์บ็อกซ์และชั่วโมงเป็นคีย์ การรันซ้ำหรือการยืนยันที่หายไปไม่สามารถตัดเงินสองครั้งได้
- เหตุขัดข้องทำให้การตัดเงินล่าช้า แต่ไม่ทำให้หายหรือซ้ำ หากฝั่งคิดเงินติดต่อโฮสต์ของแซนด์บ็อกซ์ไม่ได้ จะไม่มีการยืนยันใด ๆ ช่วงต่าง ๆ จะรอ และถูกคิดเงินเมื่อการเชื่อมต่อกลับมา
ผลก็คือแดชบอร์ดอาจช้ากว่าตัวเลขสดได้ถึงหนึ่งชั่วโมง สำหรับตัวเลขสด GET /sandboxes/{id}/usage จะคืนค่า billed_usd และ estimated_total_usd ของแซนด์บ็อกซ์จนถึงขณะนี้
แซนด์บ็อกซ์ persistent: คิดตามชั่วโมงที่เริ่ม พร้อมเพดาน
แซนด์บ็อกซ์ persistent เก็บดิสก์ไว้ระหว่างเซสชัน ได้นานถึง 30 วัน คิดเงินตามชั่วโมงที่เริ่มต้น: 61 นาทีคือสองชั่วโมง เพื่อแลกกัน เดือนปฏิทิน (UTC) หนึ่งเดือนจะไม่มีค่าใช้จ่ายเกิน 730 ชั่วโมงลบ 25%
สำหรับแพ็กเกจ standard เพดานนี้คือ $36.14 ต่อเดือนแทนที่จะเป็น $48.18 ขณะที่แซนด์บ็อกซ์ persistent ถูกหยุดชั่วคราว จะไม่ถูกคิดเงินเลย
เมื่อยอดคงเหลือหมด
ยอดคงเหลือไม่มีวันติดลบ แซนด์บ็อกซ์ใหม่จะถูกปฏิเสธด้วย 402 insufficient_balance แซนด์บ็อกซ์ชั่วคราวที่รันอยู่แล้วจะสิ้นสุดเมื่อถึงระยะหมดเวลาเมื่อไม่มีกิจกรรมหรือ TTL ส่วนแบบ persistent จะถูกหยุดชั่วคราวหลังจาก 24 ชั่วโมงโดยไม่มีการเติมเงิน และกลับมาทำงานเองเมื่อคุณเติมเงิน snapshot ที่หยุดชั่วคราวเก็บไว้ 14 วัน หลังจากนั้น sandbox จะถูกลบ และ id ของมันจะส่งคืน 410 sandbox_deleted
ถ้า AI agent สร้างแซนด์บ็อกซ์ให้คุณ ให้ตั้งเพดานรายวันและรายเดือน เมื่อถึงเพดานจะได้รับ 429 budget_exceeded พร้อมเวลารีเซ็ต ซึ่งเป็นสิ่งที่โปรแกรมนำไปดำเนินการต่อได้
จุดที่การคิดเงินรายวินาทีเสียเปรียบ
การคิดเงินรายวินาทียอดเยี่ยมสำหรับงานที่วัดเป็นวินาทีและนาที ยิ่งงานรันนานเท่าไรก็ยิ่งแย่ลง
| เวิร์กโหลด | แซนด์บ็อกซ์รายวินาที | ทางเลือก |
|---|---|---|
| การทดสอบ 2 นาที | $0.0011 (small) | เครื่องที่คิดเงินรายชั่วโมงเก็บเต็มชั่วโมง |
| งานแบตช์ 3 ชั่วโมง | $0.198 (standard) | ใกล้เคียงกัน |
| บริการที่รัน 24/7 | $36.14/เดือน (standard, เพดาน persistent) | AI agent VPS: 4 vCPU, 4 GB ในราคา $10/เดือน |
จุดตัดอยู่ประมาณตรงที่เวิร์กโหลดรันมากกว่าสองสามชั่วโมงต่อวัน หลังจากนั้นคุณกำลังจ่ายเพื่อความยืดหยุ่นที่ไม่ได้ใช้ และเซิร์ฟเวอร์ที่เช่ารายเดือนถูกกว่ามากต่อชั่วโมง มุมมองที่ยุติธรรมต่อการคิดเงินรายวินาทีคือมองว่ามันเป็นราคาของการไม่ต้องวางแผนความจุ ไม่ใช่ส่วนลด
วิธีประเมินแบบเร็ว
ราคาต่อชั่วโมงของแพ็กเกจ × จำนวนวินาทีที่แซนด์บ็อกซ์จะอยู่ ÷ 3600 โดยมีขั้นต่ำ 60 วินาที บวกระยะหมดเวลาเมื่อไม่มีกิจกรรมหากคุณจะไม่ลบเอง สำหรับแซนด์บ็อกซ์ persistent ให้ปัดแต่ละเซสชันขึ้นเป็นชั่วโมงเต็มและหยุดที่เพดานรายเดือน
กฎ โควตา และ API งบประมาณทั้งหมดอยู่ในข้อจำกัดและการคิดเงินของแซนด์บ็อกซ์ ส่วนการเรียกที่ใช้ข้างต้นอยู่ในเอกสารอ้างอิง SDK ถ้าคุณสงสัยว่ากำลังเช่าอะไรอยู่จริง ๆ เป็นรายวินาที อธิบาย Firecracker microVM แบบเข้าใจง่าย มีคำตอบ และ สิ่งที่ AI agent ต้องการจากโครงสร้างพื้นฐานจริง ๆ อธิบายว่าทำไมโมเดลการคิดเงินถึงสำคัญมากเมื่อผู้สร้างเครื่องคือซอฟต์แวร์ ไม่ใช่คน
ความคิดเห็น
ยังไม่มีความคิดเห็น เป็นคนแรกสิ