Cloudflare R2 Storage เป็นบริการ Object Storage บน Edge ที่ช่วยให้คุณเก็บไฟล์ Static เช่น รูปภาพ วีดีโอ ไฟล์ CSS/JS ได้โดยไม่เสียค่าใช้จ่ายสำหรับ Bandwidth และช่วยลด Load บน VPS ได้อย่างมีนัยสำคัญ
Cloudflare R2 คืออะไร?
R2 เป็น Object Storage Service ผลิตภัณฑ์ของ Cloudflare คล้ายกับ Amazon S3 แต่จุดเด่นคือไม่คิดค่า Egress Fee (ค่า Bandwidth ขาออก) เลย R2 เหมาะสำหรับ
- เพล็ตฟอร์มรูปภาพ, วีดีโอ, ไฟล์ PDF
- เร็วที่เพล็ตฟอร์ม Static Assets ของเว็บไซต์ (CSS, JS, Font)
- เป็น CDN Origin ร่วมกับ Cloudflare CDN ได้เลย
- Backup ไฟล์สำคัญจาก Server
ขั้นตอนการตั้งค่า R2
ขั้นตอนที่ 1: เปิดใช้ Cloudflare R2
- ไปที่ Cloudflare Dashboard แล้วเลือก R2 จากเมนูด้านซ้าย
- คลิก Create Bucket
- ตั้งชื่อ Bucket เช่น
my-static-files - เลือก Region (Auto แนะนำให้เลือก Nearest)
ขั้นตอนที่ 2: อัปโหลดไฟล์ เข้า R2
สามารถอัปโหลดไฟล์ผ่านหน้าต่างใน Dashboard หรือผ่าน API (S3-compatible)
# ตัวอย่างการอัปโหลดไฟล์ด้วย rclone (สำหรับสคริปต์อัตโนมัติ)
# ติดตั้ง rclone
curl https://rclone.org/install.sh | bash
# ตั้งค่า rclone สำหรับ Cloudflare R2
rclone config
# เลือก: S3 Compatible Storage
# Provider: Cloudflare
# Access Key ID: <Cloudflare R2 Access Key>
# Secret Access Key: <Cloudflare R2 Secret Key>
# Endpoint: https://<ACCOUNT_ID>.r2.cloudflarestorage.com
# อัปโหลดไฟล์
rclone copy /var/www/html/assets r2:my-static-files/assets --progress
ขั้นตอนที่ 3: เชื่อม Custom Domain กับ R2
เชื่อมโดเมนของคุณเข้ากับ R2 เพื่อให้ไฟล์สามารถเข้าถึงได้ผ่าน URL โดเมนของคุณเอง
- ในหน้า Bucket ไปที่ Settings → Custom Domain
- ตั้งค่า
assets.example.comสำหรับไฟล์ Static - Cloudflare จะเพิ่ม DNS Record อัตโนมัติ
- ไฟล์สตาติกส์จะเข้าถึงได้ผ่าน
https://assets.example.com/image.jpg
เชื่อม WordPress กับ Cloudflare R2
หากใช้ WordPress บน Cloud Hosting หรือ VPS สามารถเชื่อม Media Library เข้ากับ R2 ได้ผ่าน Plugin
- ติดตั้ง Plugin WP Offload Media หรือ Media Cloud
- กำหนดค่า S3-compatible Endpoint:
https://<ACCOUNT_ID>.r2.cloudflarestorage.com - ใส่ Access Key และ Secret Key จาก R2 API Token
- เลือก Bucket ที่ต้องการเป็น Origin
- WordPress จะเริ่มอัปโหลดไฟล์ Media ไปยัง R2 อัตโนมัติ
อัตโนมัติ Sync ไฟล์จาก VPS ไป R2
#!/bin/bash
# ตัวอย่าง Cron Job สำหรับ Sync Static Files ไป R2 อัตโนมัติ
# เพิ่มใน /etc/cron.hourly/sync-to-r2.sh
rclone sync /var/www/html/wp-content/uploads r2:my-static-files/uploads \
--exclude "*.php" \
--exclude "*.py" \
--min-age 5m \
--log-file /var/log/r2-sync.log
# หัวหน้า chmod +x และตั้งค่าใน crontab
chmod +x /etc/cron.hourly/sync-to-r2.sh
ค่าใช้จ่ายของ R2
| รายการ | ค่าใช้จ่าย |
|---|---|
| การเก็บข้อมูล | $0.015/GB/เดือน |
| Class A Operations (เช่น PUT) | $4.50/1M ครั้ง |
| Class B Operations (เช่น GET) | $0.36/1M ครั้ง |
| Egress ผ่าน Cloudflare CDN | ฟรี! ไม่คิดค่า Bandwidth |
| Free Tier | 10 GB Storage + 1M GET ต่อเดือน |
สรุป
Cloudflare R2 Storage เป็นบริการที่คุ้มค่าสำหรับการเก็บ Static Files โดยไม่เสียค่า Bandwidth เมื่อใช้ร่วมกับ Cloudflare CDN ช่วยลด Load บน VPS หรือ Cloud Hosting ได้อย่างมีนัยสำคัญ สนใจบริการ Cloud VPS หรือ Cloud Hosting จาก ผู้ให้บริการโฮสติ้ง สามารถเริ่มใช้งาน R2 คู่กับ Server ของคุณได้เลย

