Cloudflare R2 Object Storage คืออะไร? ราคา ฟีเจอร์ และเปรียบเทียบ B2 · Wasabi 2026
สารบัญ
Cloudflare R2 Object Storage คืออะไร?
Cloudflare R2 คือบริการ Object Storage ที่เข้ากันได้กับ S3 API เปิดตัวโดย Cloudflare เพื่อแข่งกับ AWS S3 โดยตรง จุดต่างที่ชัดเจนที่สุดคือ R2 ไม่คิดค่า Egress (ค่าดาวน์โหลดข้อมูลออก) เลย ในขณะที่ AWS S3 คิด $0.09/GB egress สำหรับ Region US East และ Google Cloud Storage คิด $0.08/GB
ด้วยการที่ Cloudflare มีเครือข่าย CDN ครอบคลุมกว่า 300 เมืองทั่วโลก ข้อมูลที่เก็บใน R2 จึงถูกเสิร์ฟผ่าน edge ใกล้ผู้ใช้งานอัตโนมัติ ทำให้ทั้งเร็วและประหยัดกว่าการเก็บบน origin server
R2 เปิดตัว GA (General Availability) ในปี 2022 และปัจจุบัน (2026) มีการใช้งานในระดับ production โดยบริษัทขนาดใหญ่และ startup ทั่วโลก ข้อมูลถูก replicate ข้ามหลาย data center โดยอัตโนมัติ ไม่ต้องตั้งค่า replication เอง
Object Storage คืออะไร แตกต่างจาก Block Storage อย่างไร
Object Storage ต่างจาก Block Storage (เช่น disk บน VPS) ตรงที่:
- Object Storage — เก็บไฟล์ในรูปแบบ flat key-value (ชื่อไฟล์ → เนื้อหา) เข้าถึงผ่าน HTTP API เหมาะกับ static assets, backup, log, media
- Block Storage — เหมือน HDD แบบ traditional เข้าถึงผ่าน file system เหมาะกับ database, application data ที่ต้องการ latency ต่ำ
- File Storage — shared file system (NFS/SMB) เหมาะกับทีมที่ต้องการ shared drive
R2 เป็น Object Storage ที่เหมาะกับการเก็บไฟล์ขนาดใหญ่จำนวนมากที่เข้าถึงผ่าน HTTP โดยไม่ต้องการ random read/write performance สูง
ราคา Cloudflare R2 ปัจจุบัน 2026
ข้อมูล ณ กันยายน 2026 จาก developers.cloudflare.com/r2/pricing — ตรวจสอบราคาล่าสุดก่อนตัดสินใจ
| รายการ | Standard Storage | Infrequent Access |
|---|---|---|
| ค่าเก็บข้อมูล (storage) | $0.015/GB-month | $0.010/GB-month |
| Egress (ดาวน์โหลดออก) | ฟรี (ไม่จำกัด) | ฟรี + $0.01/GB retrieval |
| Class A Operations (PUT, POST, LIST) | $4.50/ล้าน requests | $9.00/ล้าน requests |
| Class B Operations (GET, HEAD) | $0.36/ล้าน requests | $0.90/ล้าน requests |
| Delete / Abort multipart | ฟรี | ฟรี |
| Minimum storage duration | ไม่มี | 30 วัน |
ตัวอย่างราคา: เว็บขายของออนไลน์ขนาดกลาง
สมมติเก็บรูปสินค้า 200 GB และมี egress (download จาก R2) รวม 1 TB/เดือน + Class A operations 500,000 ครั้ง + Class B operations 20 ล้านครั้ง:
- Storage: 200 GB × $0.015 = $3.00
- Egress 1 TB: $0.00 (ฟรีทั้งหมด)
- Class A (500K): 0.5 × $4.50 = $2.25
- Class B (20M): 20 × $0.36 = $7.20
- รวม: ประมาณ $12.45/เดือน
หากใช้ AWS S3 US East สถานการณ์เดียวกัน: storage $4.60 + egress $92.16 + ops ~$10 = ประมาณ $107/เดือน — R2 ประหยัดกว่ากว่า 88% ในกรณีนี้
Free Tier ของ R2 — รายละเอียดครบ
R2 มี free tier ต่ออยู่ทุกเดือน (สำหรับ Standard Storage เท่านั้น):
- 10 GB storage/เดือน
- 1,000,000 Class A operations/เดือน
- 10,000,000 Class B operations/เดือน
- Egress ไม่จำกัด (ฟรีทั้งหมด)
Free tier นี้เพียงพอสำหรับ static site ขนาดเล็ก, personal project, หรือ proof-of-concept โดยไม่เสียเงินเลย เมื่อใช้เกิน free tier ระบบจะคิดแบบ pay-as-you-go อัตโนมัติ ไม่ต้องเลือก plan หรือมีค่า minimum รายเดือน
ต้องมี Cloudflare account (สมัครฟรี) และผูกบัตรเครดิตก่อนเริ่มใช้ R2 แม้จะอยู่ใน free tier ก็ตาม
เปรียบเทียบ Cloudflare R2 vs Backblaze B2 vs Wasabi 2026
ข้อมูลราคาจากเว็บทางการของแต่ละบริการ ณ กันยายน 2026 — ตรวจสอบราคาล่าสุดก่อนตัดสินใจ
| ผู้ให้บริการ | Storage/GB-mo | Egress | API Ops | Free Tier |
|---|---|---|---|---|
| Cloudflare R2 | $0.015 (Standard) $0.010 (IA) |
ฟรี ไม่จำกัด | $4.50/M (A) $0.36/M (B) |
10 GB ฟรี/เดือน |
| Backblaze B2 | ~$0.0068 ($6.95/TB) |
ฟรี 3× stored data ฟรีผ่าน Cloudflare CDN |
A/B/C ฟรี D: $0.004/10K calls |
10 GB ฟรีเสมอ |
| Wasabi | ~$0.0078 ($7.99/TB) |
ฟรี (ไม่มี egress fee) | ฟรี (ไม่มี API fee) | ทดลองฟรี (ดูเว็บ) |
| DigitalOcean Spaces | $5/mo รวม 250 GB ($0.02/GB เกิน) |
รวม 1 TB/mo ($0.01/GB เกิน) |
รวมในแผน | ไม่มี free tier |
B2 กับ Cloudflare Bandwidth Alliance
Backblaze B2 เป็นพันธมิตรกับ Cloudflare ผ่านโปรแกรม Bandwidth Alliance ซึ่งหมายความว่า egress จาก B2 ไป Cloudflare CDN ฟรีทั้งหมด ทำให้ B2 + Cloudflare CDN เป็นคู่ที่น่าสนใจมากสำหรับผู้ที่ต้องการ storage ถูกและ delivery ฟรี
ข้อแตกต่างจาก R2 คือ B2 ต้องตั้งค่า Cloudflare Worker หรือ CDN pull zone เพื่อให้ egress ฟรี ในขณะที่ R2 ทำงานในตัวโดยไม่ต้องตั้งค่าเพิ่มเติม
Wasabi: ข้อควรระวัง Minimum Storage Duration
Wasabi ไม่คิดค่า egress และ API fee ซึ่งดูดีมาก แต่มีข้อควรระวังสำคัญ: Minimum storage duration 90 วัน — ถ้าอัปโหลดไฟล์แล้วลบก่อนครบ 90 วัน ยังต้องจ่ายค่า storage ถึงครบ 90 วัน
สำหรับ log file หรือ temporary file ที่ต้องลบบ่อย Wasabi อาจไม่ใช่ตัวเลือกที่ดี ควรตรวจสอบ terms ล่าสุดที่ wasabi.com ก่อนใช้งาน
Use Cases — R2 เหมาะกับงานอะไรบ้าง
1. Static Assets สำหรับเว็บไซต์
เว็บที่ใช้ Cloudflare CDN อยู่แล้วสามารถย้ายรูปภาพ, JS bundle, CSS, font file มาเก็บบน R2 แล้วเสิร์ฟผ่าน Cloudflare edge ทันที โดยไม่มี egress cost ไม่ว่า traffic จะสูงแค่ไหน — เหมาะกับ news site, e-commerce, media platform ที่มีรูปจำนวนมาก
2. WordPress Media Offload
Plugin WP Offload Media รองรับ R2 ผ่าน S3-compatible endpoint ย้ายรูปและไฟล์ใน wp-content/uploads ออกจาก hosting disk ไปเก็บบน R2 ลด disk usage และลด load บน hosting
สำหรับ WordPress hosting ในไทย AsiaGB ใช้ DirectAdmin รองรับการตั้งค่า external storage ได้ หากต้องการ WordPress hosting แบบไทย + media บน R2 เป็นการผสมที่คุ้มค่า
3. Server Backup Destination
ใช้ R2 เป็น destination สำหรับ backup จาก VPS หรือ dedicated server ผ่าน rclone, s3cmd หรือ AWS CLI เพราะ R2 รองรับ S3 API ครบ คำสั่งเดิมที่ใช้กับ S3 ทำงานได้ทันทีโดยเปลี่ยนแค่ endpoint URL และ credentials
4. Cloudflare Workers Native Storage
R2 เป็น native storage ของ Cloudflare Workers ทำให้ Edge function เข้าถึง bucket ได้โดยตรงโดยไม่ต้องผ่าน HTTP request เพิ่มเติม — latency ต่ำมาก เหมาะกับ image resize on-the-fly, user-generated content, private file serving พร้อม auth
5. Data Archive และ Log Storage
บริษัทที่ต้องเก็บ application log, audit trail, หรือ analytics raw data เป็นเดือนๆ R2 Infrequent Access ($0.01/GB) เป็นตัวเลือกที่ประหยัดกว่า Standard โดยยังเข้าถึงได้เมื่อต้องการ ต่างจาก cold storage ที่ต้องรอ restore หลายชั่วโมง
6. Multi-region Media Delivery
ธุรกิจที่มีผู้ใช้ทั่วโลกได้ประโยชน์จาก Cloudflare global network — ไฟล์ใน R2 เสิร์ฟจาก Cloudflare edge node ใกล้ผู้ใช้โดยอัตโนมัติ ลด latency เมื่อเทียบกับดึงตรงจาก origin server ในภูมิภาคเดียว
วิธีเริ่มต้นใช้งาน Cloudflare R2
ขั้นตอนที่ 1: เปิดใช้งาน R2 ใน Dashboard
Login เข้า Cloudflare Dashboard → เลือก Account ที่ต้องการ → ในเมนูซ้ายคลิก R2 Object Storage → กด Create bucket → ตั้งชื่อ bucket (ตัวพิมพ์เล็ก ขีด ตัวเลข) → เลือก Location hint (Automatic แนะนำสำหรับผู้เริ่มต้น)
ขั้นตอนที่ 2: สร้าง API Token
ไปที่ Cloudflare Dashboard → Manage Account → API Tokens → Create Token → เลือก template "R2 Token" → ตั้งค่า permissions:
- Account: R2 Storage — Read (อ่านข้อมูล bucket)
- Account: R2 Storage — Edit (เขียน/ลบไฟล์)
บันทึก Access Key ID และ Secret Access Key ที่แสดง (จะแสดงครั้งเดียวเท่านั้น)
ขั้นตอนที่ 3: เชื่อมต่อด้วย AWS SDK (Python boto3)
import boto3
s3 = boto3.client(
's3',
endpoint_url='https://ACCOUNT_ID.r2.cloudflarestorage.com',
aws_access_key_id='ACCESS_KEY_ID',
aws_secret_access_key='SECRET_ACCESS_KEY',
region_name='auto'
)
# อัปโหลดไฟล์
s3.upload_file('photo.jpg', 'my-bucket', 'images/photo.jpg')
# ดึงรายการไฟล์
objects = s3.list_objects_v2(Bucket='my-bucket')
for obj in objects.get('Contents', []):
print(obj['Key'], obj['Size'])
แทน ACCOUNT_ID ด้วย Account ID จาก Cloudflare Dashboard (ดูได้ที่ R2 → Overview)
ขั้นตอนที่ 4: ตั้งค่า Public Access
สำหรับไฟล์ที่ต้องการให้เข้าถึงแบบสาธารณะ → ไปที่ bucket → Settings → เปิด Allow public access → จะได้ URL รูปแบบ https://pub-XXXX.r2.dev/images/photo.jpg
หรือเชื่อม custom domain ผ่าน Cloudflare DNS: bucket settings → Custom domains → Add domain → ตั้งค่า CNAME ในบัญชี Cloudflare อัตโนมัติ
ตั้งค่า rclone กับ R2
rclone คือ command-line tool ยอดนิยมสำหรับ sync ไฟล์ระหว่าง storage ต่างๆ รองรับ R2 ผ่าน S3-compatible backend:
[r2]
type = s3
provider = Cloudflare
access_key_id = ACCESS_KEY_ID
secret_access_key = SECRET_ACCESS_KEY
endpoint = https://ACCOUNT_ID.r2.cloudflarestorage.com
acl = private
บันทึกไว้ที่ ~/.config/rclone/rclone.conf แล้วใช้คำสั่ง:
# sync โฟลเดอร์ local ขึ้น R2
rclone sync /var/backups/ r2:my-bucket/backups/ --progress
# ดูไฟล์ใน bucket
rclone ls r2:my-bucket
# copy ไฟล์เดียว
rclone copy /var/log/nginx/ r2:my-bucket/logs/ --include "*.log.gz"
สามารถตั้ง cron job backup อัตโนมัติทุกคืนได้ง่ายๆ:
0 2 * * * /usr/bin/rclone sync /var/backups/ r2:my-bucket/daily/ --log-file /var/log/rclone.log
ข้อดีและข้อเสียของ Cloudflare R2
ข้อดี
- Zero Egress Fee — ไม่มีค่าดาวน์โหลดข้อมูลออก ไม่ว่า traffic จะสูงแค่ไหน
- S3-Compatible API — ใช้ SDK และ tool เดิมกับ S3 ได้ทันที ไม่ต้องแก้โค้ดมาก
- Integration กับ Cloudflare Workers/Pages — native binding ไม่มี HTTP overhead
- Global CDN รวมในตัว — เสิร์ฟจาก edge node ใกล้ผู้ใช้อัตโนมัติ
- Free tier 10 GB/เดือน — เหมาะทดสอบโดยไม่เสียเงิน
- Pay-as-you-go ไม่มี minimum — ยืดหยุ่น ใช้น้อยก็จ่ายน้อย
- Data replicated ข้ามหลาย DC — durability สูง ตั้งค่าเองไม่ได้ แต่ Cloudflare จัดการให้
ข้อเสีย
- Storage แพงกว่า B2/Wasabi — $0.015/GB เทียบกับ ~$0.007/GB ของ B2 — หาก traffic ต่ำแต่ storage มาก อาจไม่คุ้ม
- Class A Ops ราคาสูง — $4.50/ล้าน request สำหรับ PUT/LIST อาจสูงหาก write บ่อยมาก
- ผูกกับ Cloudflare — ต้องมี Cloudflare account และผูกบัตรเครดิต
- ไม่มี server-side encryption key management แบบ AWS KMS (encryption จัดการโดย Cloudflare)
- IA minimum 30 วัน — ต้องคำนวณ cost ให้ดีก่อนใช้ Infrequent Access
- SLA ไม่ชัดเจน — Cloudflare ไม่เผยแพร่ SLA เฉพาะของ R2 เหมือน S3 (11 9's)
เลือก Object Storage ไหนดี? สรุปแนะนำ
| สถานการณ์ | แนะนำ | เหตุผล |
|---|---|---|
| เว็บ traffic สูง ใช้ Cloudflare CDN | R2 | Zero egress ประหยัดสูงสุด |
| Backup cold storage ขนาดใหญ่ | B2 | Storage ถูกสุด $0.0068/GB |
| Object storage + egress ฟรี ไม่ใช้ Cloudflare | Wasabi | ไม่มี egress/API fee (ระวัง 90-day min) |
| Object storage + CDN + control panel ครบ | DO Spaces | $5/mo รวม 250 GB + 1 TB egress พร้อมใช้ |
| Startup เริ่มต้น budget จำกัด | R2 Free | 10 GB ฟรีไม่จำกัด egress |
ต้องการ Object Storage พร้อม CDN ที่ตั้งค่าง่าย — DigitalOcean Spaces เริ่ม $5/เดือน รวม 250 GB + 1 TB egress
ดู DigitalOcean SpacesFAQ — คำถามที่พบบ่อย
https://ACCOUNT_ID.r2.cloudflarestorage.com และใช้ R2 API credentials แทน AWS credentials — SDK ทุกภาษา (Python, Node.js, Go, PHP, Java) ทำงานได้ทันทีบทความที่เกี่ยวข้อง
ข้อมูลราคาและฟีเจอร์ ณ กันยายน 2026 — ตรวจสอบราคาล่าสุดที่เว็บผู้ให้บริการโดยตรงก่อนตัดสินใจ