คำตอบสั้น: Cloudflare R2 ไม่คิดค่า egress เลย ส่วน Amazon S3 คิด $0.09 ต่อ GB หลังจาก 100 GB แรกของเดือน ถ้าคุณส่งข้อมูลออกอินเทอร์เน็ตเยอะ เช่น เสิร์ฟวิดีโอ รูปสินค้า หรือไฟล์ดาวน์โหลด ส่วนต่างจะมหาศาล แต่ถ้า egress ของคุณต่ำกว่า 100 GB ต่อเดือน หรือข้อมูลไม่เคยออกจาก AWS เลย คำว่า ซีโร่ egress ก็แทบไม่มีความหมาย (ราคา ณ กรกฎาคม 2026)
คำว่า ซีโร่ egress ถูกใช้เป็นจุดขายของ R2 มาตลอด แต่น้อยคนจะหยิบเครื่องคิดเลขมาคำนวณจริง จำนวนเงินที่ประหยัดได้ขึ้นอยู่กับตัวเลขเดียวคือปริมาณข้อมูลที่ไหลออกสู่อินเทอร์เน็ตต่อเดือน ไม่ใช่ปริมาณที่เก็บ
บทความนี้คำนวณจริงสามสถานการณ์ โดยใช้ตัวเลขจากเอกสารทางการของ Cloudflare และ AWS ณ กรกฎาคม 2026 เท่านั้น และจะบอกด้วยว่ากรณีไหนที่ S3 ยังคุ้มกว่า
ทำไม egress ถึงเป็นตัวชี้ขาด
ค่าเก็บข้อมูลของ S3 Standard อยู่ที่ $0.023 ต่อ GB ต่อเดือน (50 TB แรก ที่ us-east-1) ส่วน R2 อยู่ที่ $0.015 ต่อ GB ต่อเดือน ต่างกันประมาณ 35% ซึ่งเป็นเรื่องดี แต่ไม่ใช่เรื่องที่จะเปลี่ยนชีวิตใคร
เรื่องที่เปลี่ยนชีวิตคือ egress AWS ให้ data transfer ออกสู่อินเทอร์เน็ตฟรี 100 GB ต่อเดือน นับรวมทุก service และทุก region หลังจากนั้นคิดเป็นขั้นบันได เริ่มที่ $0.09 ต่อ GB ส่วน R2 คิด $0 ทุกกรณี ไม่ว่าจะดึงผ่าน Workers API, S3 API หรือโดเมน r2.dev
ประเด็นสำคัญคือค่า egress ไม่ได้ขึ้นกับขนาดข้อมูลที่คุณเก็บ แต่ขึ้นกับจำนวนครั้งที่คนดึงมันออกไป เก็บไฟล์ 1 GB แต่มีคนโหลด 10,000 ครั้ง เท่ากับ egress 10 TB นี่คือเหตุผลที่ธุรกิจสื่อ อีคอมเมิร์ซ และเกมมักเจ็บกับบิล S3 มากกว่าธุรกิจประเภทอื่น
ราคาจริง ณ กรกฎาคม 2026
| รายการ | Cloudflare R2 (Standard) | Amazon S3 (Standard, us-east-1) |
|---|---|---|
| ค่าเก็บข้อมูล | $0.015 / GB / เดือน | $0.023 / GB / เดือน (50 TB แรก) |
| Egress ออกอินเทอร์เน็ต | $0 เสมอ | 100 GB/เดือนแรกฟรี จากนั้นเริ่มที่ $0.09 / GB |
| การเขียน (Class A / PUT) | $4.50 / ล้าน request | $0.005 / 1,000 request ($5.00 / ล้าน) |
| การอ่าน (Class B / GET) | $0.36 / ล้าน request | $0.0004 / 1,000 request ($0.40 / ล้าน) |
| การลบ | ฟรี (DeleteObject เป็น free operation) | ตามนโยบาย S3 ของแต่ละ storage class |
| Free tier ต่อเดือน | 10 GB + 1 ล้าน Class A + 10 ล้าน Class B | มี free tier เฉพาะบัญชีใหม่ |
| ชั้น Infrequent Access | $0.01 / GB / เดือน + ค่าดึง $0.01 / GB | มีหลายชั้น รวมถึง Glacier |
สิ่งที่น่าสนใจคือค่า request ของสองเจ้าใกล้เคียงกันมาก R2 ถูกกว่าเล็กน้อย แต่ไม่ใช่ส่วนต่างหลัก ตัวที่ทำให้ตัวเลขห่างกันคนละเรื่องคือ egress ล้วน ๆ
ขั้นบันได egress ของ AWS
| ปริมาณต่อเดือน | ราคาต่อ GB |
|---|---|
| 100 GB แรก | ฟรี (นับรวมทุก service ทุก region) |
| ประมาณ 9.9 TB ถัดไป | $0.09 |
| 40 TB ถัดไป | $0.085 |
| 100 TB ถัดไป | $0.07 |
| ส่วนที่เหลือ | $0.05 |
| ข้าม region (inter-region) | ประมาณ $0.02 |
| Cloudflare R2 ทุกระดับ | $0 |
สังเกตว่าขั้นที่ถูกที่สุดของ AWS ($0.05 ต่อ GB) ก็ยังคิดเงินอยู่ดี กว่าจะได้ราคานั้นคุณต้องส่งข้อมูลเกิน 150 TB ต่อเดือนก่อน ธุรกิจไทยส่วนใหญ่จะอยู่ในขั้น $0.09 หรือ $0.085 ตลอดไป
คำนวณจริงสามสถานการณ์
สถานการณ์ A: แพลตฟอร์มสื่อ เก็บ 5 TB, egress 50 TB/เดือน
สมมติเว็บดูวิดีโอหรือคลังรูปสินค้าที่มีคนเข้าเยอะ เก็บไฟล์รวม 5 TB มีการอ่าน 200 ล้านครั้ง การเขียน 2 ล้านครั้ง และ egress 50 TB ต่อเดือน
ฝั่ง S3. ค่าเก็บ: 5,000 GB × $0.023 = $115.00 ค่า GET: 200,000,000 × $0.0000004 = $80.00 ค่า PUT: 2,000,000 × $0.000005 = $10.00 ค่า egress: 50,000 GB หักฟรี 100 GB เหลือ 49,900 GB ซึ่งแบ่งเป็น 9,900 GB ที่ $0.09 = $891.00 และ 40,000 GB ที่ $0.085 = $3,400.00 รวม egress $4,291.00 รวมทั้งสิ้น $4,496.00 ต่อเดือน
ฝั่ง R2. ค่าเก็บ: (5,000 − 10 GB ฟรี) × $0.015 = $74.85 ค่า Class B: (200 − 10 ล้านฟรี) = 190 ล้าน × $0.36 = $68.40 ค่า Class A: (2 − 1 ล้านฟรี) = 1 ล้าน × $4.50 = $4.50 ค่า egress: $0 รวมทั้งสิ้น $147.75 ต่อเดือน
ต่างกัน $4,348.25 ต่อเดือน หรือประมาณ $52,179 ต่อปี สังเกตว่า 96% ของบิล S3 คือค่า egress ล้วน ๆ ค่าเก็บกับค่า request เป็นเศษเสี้ยว
สถานการณ์ B: data lake ภายใน เก็บ 20 TB, egress 500 GB/เดือน
คราวนี้ข้อมูลส่วนใหญ่อยู่กับที่ มีการเขียนเยอะ (20 ล้าน PUT) การอ่านน้อย (5 ล้าน GET) และ egress ต่ำ
| รายการ | Amazon S3 | Cloudflare R2 |
|---|---|---|
| ค่าเก็บ | $460.00 | $299.85 |
| ค่า GET / Class B | $2.00 | $0.00 |
| ค่า PUT / Class A | $100.00 | $85.50 |
| ค่า egress | $36.00 | $0.00 |
| รวมต่อเดือน | $598.00 | $385.35 |
R2 ยังถูกกว่า แต่ต่างกันแค่ $212.65 ต่อเดือน ไม่ใช่ 4,300 เหมือนสถานการณ์ A และส่วนต่างมาจากค่าเก็บเป็นหลัก ไม่ใช่ egress สำคัญกว่านั้น: ถ้าข้อมูลชุดนี้ต้องให้ Athena, Glue หรือ EMR อ่าน การย้ายมา R2 จะทำให้คุณเสีย ecosystem ทั้งหมดเพื่อประหยัดเดือนละสองร้อยดอลลาร์ ซึ่งไม่คุ้ม
สถานการณ์ C: เว็บเล็ก เก็บ 50 GB, egress 80 GB/เดือน
ฝั่ง S3: ค่าเก็บ 50 × $0.023 = $1.15 ค่า GET 2 ล้านครั้ง = $0.80 ค่า PUT 100,000 ครั้ง = $0.50 ค่า egress = $0 เพราะ 80 GB ยังไม่เกิน 100 GB ที่แจกฟรี รวม $2.45 ต่อเดือน
ฝั่ง R2: ค่าเก็บ (50 − 10) × $0.015 = $0.60 ค่า Class B และ Class A อยู่ใน free tier ทั้งคู่ รวม $0.60 ต่อเดือน
ต่างกันเดือนละไม่ถึงสองดอลลาร์ ถ้าคุณอยู่ในสถานการณ์นี้ การย้ายระบบเพื่อประหยัดค่า egress คือการเสียเวลา เกณฑ์คร่าว ๆ คือ egress ต้องมากกว่าหลัก TB ต่อเดือน ตัวเลขจึงจะเริ่มน่าสนใจ
กับดักของ R2 ที่ต้องรู้
ชั้น Infrequent Access มีขั้นต่ำ 30 วัน. ค่าเก็บถูกกว่าจริง ($0.01 ต่อ GB ต่อเดือน) แต่มีค่าดึงข้อมูล $0.01 ต่อ GB ค่า Class A ขึ้นเป็น $9.00 ต่อล้าน และ Class B เป็น $0.90 ต่อล้าน ที่สำคัญคือ free tier ไม่ครอบคลุมชั้นนี้ ถ้าคุณย้ายข้อมูลเข้า IA แล้วดึงออกมาบ่อย คุณอาจจ่ายแพงกว่าเก็บไว้ชั้น Standard เฉย ๆ
R2 ปัดเศษขึ้น. เอกสารระบุชัดว่าหากคุณทำ operation ไปหนึ่งล้านกับอีกหนึ่งครั้ง คุณจะโดนคิดสองล้าน และหากใช้พื้นที่ 1.1 GB-month จะโดนคิด 2 GB-month ที่ระดับเล็กมันไม่สำคัญ แต่ควรรู้ไว้
S3 API ของ R2 เป็น subset. R2 รองรับ S3 API ได้หลายส่วน แต่ไม่ทั้งหมด ก่อนย้ายต้องเช็คหน้า S3 API compatibility ของ Cloudflare ว่า SDK และ API call ที่โค้ดคุณใช้อยู่นั้นรองรับครบหรือไม่
ข้อดีที่คนมองข้าม. R2 ไม่คิดเงิน request ที่ผู้เรียกไม่มีสิทธิ์ (HTTP 401) ซึ่งช่วยลดความเสี่ยงจาก bucket ที่โดนยิง นอกจากนี้ DeleteObject ก็เป็น free operation ไม่คิดเงิน
เมื่อไหร่ที่ Amazon S3 ยังเป็นคำตอบที่ถูกต้อง
เมื่อ compute ของคุณอยู่ใน AWS อยู่แล้ว. นี่คือกรณีที่สำคัญที่สุด ถ้าข้อมูลของคุณไม่เคยออกสู่อินเทอร์เน็ตเลย เช่น EC2 หรือ Lambda อ่าน S3 ใน region เดียวกัน คุณจะไม่มีค่า egress ออกอินเทอร์เน็ตเลย จ่ายแค่ค่าเก็บกับค่า request เท่านั้น ข้อเสนอเรื่อง ซีโร่ egress จึงไม่มีน้ำหนักเลย
เมื่อคุณต้องการ ecosystem ของ AWS. Athena, Glue, EMR, Redshift Spectrum, S3 event notification ที่ trigger Lambda, S3 Batch Operations, S3 Object Lambda สิ่งเหล่านี้ต่อกับ S3 ได้ทันที การย้ายมา R2 หมายถึงต้องสร้าง pipeline ทดแทนทั้งหมด
เมื่อคุณต้องการชั้น archive ที่เย็นจริง ๆ. S3 มีชั้น Glacier สำหรับข้อมูลที่แทบไม่ถูกอ่านเลย ซึ่ง R2 ยังไม่มีอะไรเทียบเท่า ราคาของแต่ละชั้นขึ้นอยู่กับการใช้งานและควรตรวจจากหน้าราคา S3 โดยตรง
เมื่อมีข้อกำหนด data residency. AWS เปิด Asia Pacific (Thailand) Region รหัส ap-southeast-7 แบบ generally available เมื่อวันที่ 7 มกราคม 2025 มีสาม Availability Zone ถ้ากฎหมายหรือสัญญากับลูกค้ากำหนดว่าข้อมูลต้องอยู่ในไทย ข้อนี้สำคัญกว่าการประหยัดค่า egress
สำหรับงานที่คุณตัดสินใจจะใช้ Workers คู่กับ R2 เราเขียนเกณฑ์การตัดสินใจไว้ในบทความ งานแบบไหนที่ไม่ควรใช้ Cloudflare Workers
สรุป: คำนวณ egress ของคุณเองก่อน
เอาบิล AWS เดือนล่าสุดขึ้นมาดูบรรทัด Data Transfer ถ้าตัวเลขนั้นต่ำกว่าหลักร้อยดอลลาร์ การย้ายมา R2 จะไม่คุ้มค่าเหนื่อย แต่ถ้ามันอยู่หลักพันดอลลาร์ขึ้นไป นี่คือหนึ่งในการตัดสินใจที่คุ้มค่าที่สุด
การย้ายข้อมูลเข้า R2 ก็ไม่ได้แพงอย่างที่คิด เครื่องมือ Super Slurper และ Sippy ของ Cloudflare ใช้งานฟรี คุณจ่ายเฉพาะค่า Class A operation ที่เกิดขึ้นฝั่ง R2 เท่านั้น แต่ bucket ต้นทางฝั่ง AWS อาจมีค่าใช้จ่ายเพิ่มเติม
Cipher ออกแบบและพัฒนาระบบบน Cloudflare Developer Platform ให้ธุรกิจในประเทศไทย และช่วยประเมินได้ว่าการย้ายที่เก็บข้อมูลมาอยู่บน R2 คุ้มค่าหรือไม่
คำถามที่พบบ่อย
R2 คิดค่า egress จริง ๆ หรือมีเงื่อนไขซ่อนอยู่
ไม่คิดจริง เอกสารของ Cloudflare ระบุว่าการ egress ออกจาก R2 โดยตรงผ่าน Workers API, S3 API หรือโดเมน r2.dev ไม่มีค่า data transfer ทั้งชั้น Standard และชั้น Infrequent Access สิ่งที่คุณยังจ่ายคือค่าเก็บข้อมูลกับค่า operation เท่านั้น (ราคา ณ กรกฎาคม 2026)
ถ้า egress ของเราต่ำ การย้ายมา R2 ยังคุ้มไหม
อาจไม่คุ้ม AWS ให้ data transfer ออกอินเทอร์เน็ตฟรี 100 GB ต่อเดือนอยู่แล้ว ถ้าคุณอยู่ใต้เพดานนั้น ค่า egress ของคุณเป็นศูนย์อยู่แล้ว ส่วนต่างที่เหลือคือค่าเก็บ ($0.015 เทียบ $0.023 ต่อ GB) ซึ่งสำหรับข้อมูลขนาดเล็กอาจต่างกันเพียงหลักดอลลาร์ต่อเดือน
R2 ใช้ SDK ของ S3 ได้เลยหรือไม่
R2 มี S3-compatible API ที่ใช้กับ AWS SDK ได้ แต่รองรับเป็น subset ไม่ใช่ทุก API call ของ S3 ก่อนย้ายควรเทียบรายการ API ที่โค้ดคุณใช้กับหน้า S3 API compatibility ของ Cloudflare ก่อนเสมอ
ชั้น Infrequent Access ของ R2 คุ้มไหม
คุ้มเฉพาะข้อมูลที่เก็บนานและอ่านน้อยจริง ๆ ค่าเก็บลดเหลือ $0.01 ต่อ GB ต่อเดือน แต่มีค่าดึงข้อมูล $0.01 ต่อ GB มีขั้นต่ำการเก็บ 30 วัน ค่า operation แพงกว่าชั้น Standard หลายเท่า และ free tier 10 GB ไม่ครอบคลุมชั้นนี้
จะย้ายข้อมูลหลาย TB จาก S3 มา R2 ต้องจ่ายเท่าไหร่
เครื่องมือ Super Slurper และ Sippy ของ Cloudflare ใช้งานฟรี คุณจ่ายเฉพาะค่า Class A operation ที่เกิดขึ้นฝั่ง R2 แต่ bucket ต้นทางฝั่ง AWS อาจมีค่า egress เพิ่มเติม จำนวนเงินขึ้นอยู่กับขนาดข้อมูลและจำนวน object จึงควรคำนวณก่อนเริ่ม

