การสมัครใช้งาน Cloudflare R2 สามารถทำได้ง่าย ๆ ผ่าน Cloudflare Dashboard โดย R2 เป็นบริการ Object Storage ที่ไม่มีค่าธรรมเนียมการดาวน์โหลดข้อมูลออก (Zero Egress Fees) และมี Free Tier ให้ใช้งานฟรีทุกเดือน [1, 2, 3]
ขั้นตอนการสมัครใช้งาน
- สมัครบัญชี Cloudflare: เข้าไปที่หน้า Cloudflare Sign Up เพื่อลงทะเบียนบัญชีใหม่ (หากมีบัญชีอยู่แล้วให้ Log In ได้เลย)
- เปิดระบบ R2 Subscription:
- เมื่อเข้าสู่หน้า Dashboard แล้ว ให้ไปที่เมนู Storage & databases > R2 > Overview ที่แถบเมนูด้านซ้าย
- คลิกปุ่มเปิดการใช้งาน (อาจมีการให้กรอกข้อมูลบัตรเครดิต/เดบิตเพื่อยืนยันตัวตนและการเรียกเก็บเงินในกรณีที่ใช้งานเกินโควตาฟรี แต่ระบบจะไม่ตัดเงินหากใช้ไม่เกิน Free Tier)
- สร้าง Bucket: เมื่อเปิดใช้งานแล้ว คุณสามารถคลิก Create bucket เพื่อตั้งชื่อและเริ่มอัปโหลดไฟล์ใช้งานได้ทันที
โควตาใช้งานฟรี (Free Tier) ในทุก ๆ เดือน
Cloudflare R2 ให้คุณเปิดใช้งานและทดลองใช้ฟรีในปริมาณที่ค่อนข้างสูง โดยรีเซ็ตโควตาใหม่ให้ทุกเดือนดังนี้:
- พื้นที่จัดเก็บข้อมูล (Storage): ฟรี 10 GB ต่อเดือน
- Class A Operations (เขียน/แก้ไขข้อมูล เช่น Put, List): ฟรี 1 ล้านครั้ง ต่อเดือน
- Class B Operations (อ่านข้อมูล เช่น Get): ฟรี 10 ล้านครั้ง ต่อเดือน
หากใช้งานเกินกว่าโควตาฟรี ระบบจะคิดค่าบริการตามจริง (Pay-as-you-go) เช่น ค่าพื้นที่เก็บข้อมูลส่วนเกินเพียง $0.015 / GB / เดือน
หากคุณสมัครเรียบร้อยแล้ว ต้องการให้ผมช่วยแนะนำ วิธีการเชื่อมต่อ R2 กับ WordPress, การสร้าง API Tokens (S3-compatible) หรือการจำกัดสิทธิ์การเข้าถึงไฟล์เพื่อความปลอดภัยเพิ่มเติมไหมครับ
แผนบริการจัดเก็บข้อมูลบนคลาวด์ที่ชื่อว่า Cloudflare R2 (S3-compatible object storage) ซึ่งเป็นบริการฝากไฟล์ รูปภาพ วิดีโอ หรือข้อมูลต่างๆ ในลักษณะเดียวกับ AWS S3 แต่มีจุดเด่นสำคัญคือ ไม่มีค่าบริการในการดึงข้อมูลออก (Zero Egress Fees)
มาดูรายละเอียดของแพ็กเกจฟรี (Free Tier / Included features) ที่คุณยกมาทีละข้อครับ:
แปลและอธิบายทีละส่วน
- R2 Storage: 10 GB/month ($0 / month)
- แปล: พื้นที่จัดเก็บไฟล์ฟรี 10 กิกะไบต์ ต่อเดือน
- Class A operations: 1 million/month
- แปล: จำนวนครั้งในการเรียกใช้งานกลุ่ม A ฟรี 1 ล้านครั้งต่อเดือน
- คำอธิบาย: การใช้งานกลุ่ม A มักเป็นการเขียนข้อมูลใหม่, การอัปโหลด, หรือการสร้าง/แก้ไข (เช่น คำสั่ง Write, List, Put, Post)
- Class B operations: 10 million/month
- แปล: จำนวนครั้งในการเรียกใช้งานกลุ่ม B ฟรี 10 ล้านครั้งต่อเดือน
- คำอธิบาย: การใช้งานกลุ่ม B มักเป็นการอ่านข้อมูลหรือดึงไฟล์ไปใช้งาน (เช่น คำสั่ง Read, Get)
- Overage rates (อัตราค่าบริการส่วนเกิน หากใช้เกินโควตาฟรี):
- R2 Storage: $0.015 ต่อ GB (คิดตามการใช้งานจริงต่อเดือน)
- Class A operations: $4.50 ต่อ 1 ล้านครั้ง
- Class B operations: $0.36 ต่อ 1 ล้านครั้ง
- Due today: $0/month
- แปล: ยอดที่ต้องชำระวันนี้คือ $0 (เริ่มต้นใช้งานฟรี ยังไม่มีการเก็บค่าบริการพื้นฐาน) โดยระบบจะคิดเงินเพิ่มเฉพาะกรณีที่คุณใช้เกินโควตาฟรีที่กำหนดไว้ในแต่ละเดือนเท่านั้น
สรุปความคุ้มค่า
แพ็กเกจนี้เหมาะสำหรับนักพัฒนา โปรเจกต์ขนาดเล็ก เว็บไซต์ส่วนตัว หรือการทดลองใช้งาน เพราะ 10 GB แรกฟรี และจุดเด่นสูงสุดของ Cloudflare R2 คือ ไม่มีค่าใช้จ่ายแบนด์วิดท์ตอนดึงไฟล์ออก (Egress) ซึ่งต่างจากคลาวด์เจ้าอื่นที่มักจะคิดเงินแพงมากเวลาที่มีคนดาวน์โหลดไฟล์ออกไปครับ
หน้าจอนี้คือขั้นตอน “สร้าง Bucket” (ที่เก็บข้อมูลหลัก) บน Cloudflare R2 หลังจากที่คุณสมัครและผูกบัตรเรียบร้อยแล้ว เพื่อเตรียมพื้นที่สำหรับอัปโหลดไฟล์ครับ
แต่ละช่องมีความหมายและควรตั้งค่าอย่างไร สรุปให้ดังนี้ครับ:
1. Bucket name (ชื่อ Bucket)
- ความหมาย: ตั้งชื่อถังเก็บไฟล์ของคุณ ซึ่งชื่อนี้จะไม่สามารถเปลี่ยนได้อีกเมื่อสร้างแล้ว (Bucket name is permanent)
- คำแนะนำ: ตั้งชื่อให้สื่อถึงโปรเจกต์ เช่น
my-media-filesหรือvirr-storage(ต้องเป็นตัวพิมพ์เล็ก ตัวเลข หรือขีดกลาง-เท่านั้น และต้องไม่ซ้ำกับคนอื่นทั่วโลก)
2. Location (ตำแหน่งที่เก็บข้อมูล)
- ความหมาย: Cloudflare เลือกตำแหน่ง Asia Pacific ให้โดยอัตโนมัติ (ใกล้ประเทศไทยที่สุด ทำให้เวลาเรียกใช้งานไฟล์จะเร็วที่สุด)
- คำแนะนำ: ปล่อยไว้ตามค่าเริ่มต้น (Automatic) ไม่ต้องเลือกอะไรเพิ่ม เว้นแต่คุณจะมีข้อจำกัดทางกฎหมายที่บังคับว่าต้องเก็บในโซนเฉพาะ (เช่น สภาพยุโรปหรือสหรัฐฯ)
3. Specify jurisdiction (กำหนดเขตอำนาจข้อมูล – Optional)
- ความหมาย: ใช้สำหรับจำกัดให้ข้อมูลอยู่ในภูมิภาคหรือประเทศที่กฎหมายกำหนด (เช่น EU หรือ FedRAMP) เพื่อความปลอดภัยหรือการปฏิบัติตามกฎหมายเฉพาะ
- คำแนะนำ: เว้นว่างไว้ ไม่ต้องเลือกครับ สำหรับการใช้งานทั่วไป
4. Default Storage Class (ระดับการจัดเก็บข้อมูลเริ่มต้น)
มีให้เลือก 2 แบบ:
- Standard (แนะนำเลือกอันนี้): เหมาะสำหรับไฟล์ที่คุณหรือเว็บไซต์จะเรียกใช้งานบ่อยๆ (อย่างน้อยเดือนละ 1 ครั้งขึ้นไป) เหมาะกับรูปภาพและไฟล์แนบในระบบทั่วไป
- Infrequent Access: เหมาะกับไฟล์ที่นานๆ จะเปิดดูที (เก็บไว้นานๆ เปิดดูน้อยกว่าเดือนละ 1 ครั้ง) ค่าจัดเก็บถูกกว่าแต่มีค่าดึงข้อมูลออกย่อยๆ เพิ่มเติม
- คำแนะนำ: เลือก Standard ครับ เพราะครอบคลุมการใช้งานทั่วไปและอยู่ในโควตาฟรี 10 GB แรก
สรุปสิ่งที่ต้องทำ: แค่ใส่ชื่อ Bucket name ที่ต้องการ แล้วกดปุ่มสร้าง (Create Bucket) ด้านล่างได้เลยครับ
หน้าจอนี้คือ แดชบอร์ดหลักของ Bucket ชื่อ virr ที่คุณเพิ่งสร้างเสร็จครับ ใช้สำหรับจัดการไฟล์ทั้งหมดที่เก็บไว้ข้างใน
📊 อธิบายส่วนประกอบสำคัญบนหน้าจอ
- แถบเมนูด้านบน:
- Objects: หน้าจอแสดงรายการไฟล์และโฟลเดอร์ทั้งหมดที่มีอยู่ใน Bucket ตอนนี้
- Metrics: หน้าจอกราฟแสดงสถิติการใช้งาน เช่น ปริมาณข้อมูล, จำนวนครั้งที่มีการเรียกใช้งาน (Operations)
- Settings: ตั้งค่าต่างๆ ของ Bucket เช่น การเปิด Public Access, การตั้งค่าคอร์ส (CORS), หรือการลบ Bucket
- แถบสถานะด้านบนสุด (Summary Bar):
- Default Storage Class: บอกระดับการจัดเก็บเริ่มต้น (ตั้งไว้เป็น Standard)
- Public Access: สถานะการเข้าถึงจากภายนอก (ตอนนี้เป็น Disabled คือไฟล์ข้างในยังเป็นส่วนตัว คนอื่นเปิดดูตรงๆ ไม่ได้ ต้องผ่านโค้ดหรือ S3 API)
- Bucket Size: ขนาดพื้นที่รวมที่ถูกใช้ไปตอนนี้ (ตอนนี้เป็น 0 B เพราะยังไม่ได้อัปโหลดไฟล์)
- Class A / Class B Operations: ตัวนับจำนวนครั้งการเรียกใช้งาน API ในเดือนนี้
🔘 ปุ่มสีน้ำเงินและปุ่มรีเฟรชคืออะไร?
- ปุ่มน้ำเงิน
+ Add folder:- ใช้สำหรับ สร้างโฟลเดอร์ใหม่ ภายใน Bucket นี้ เพื่อจัดระเบียบแยกหมวดหมู่ไฟล์ (เช่น แยกโฟลเดอร์รูปภาพ, โฟลเดอร์เอกสาร PDF) เหมือนกับการสร้างโฟลเดอร์ในคอมพิวเตอร์ทั่วไปครับ
- ปุ่มรีเฟรช (รูป ลูกศรวนลูป
🔄ข้างๆ ปุ่ม Add folder):- ใช้สำหรับ รีเฟรชหน้าจอ (Refresh) เพื่อดึงข้อมูลรายชื่อไฟล์ล่าสุด มีประโยชน์ในกรณีที่คุณหรือโค้ดโปรแกรม (เช่น แอปพลิเคชัน PHP / LIFF ที่คุณเขียนเชื่อมไว้) มีการอัปโหลดไฟล์เข้ามาใหม่ แล้วอยากให้หน้าจอ Dashboard อัปเดตแสดงผลไฟล์ใหม่ทันทีโดยไม่ต้องกดรีเฟรชทั้งเว็บเบราว์เซอร์ครับ
เข้า R2 แล้วกด Manage R2 API Tokens → Create API token ตรงไหน
ปุ่ม Manage R2 API Tokens และ Create API token บนหน้า Cloudflare Dashboard จะอยู่ที่คอลัมน์ขวามือของหน้าหลัก R2 โดยคุณสามารถหาได้ตามขั้นตอนดังนี้ครับ:
- เมื่อกดเข้าเมนู R2 (หรือ Storage & Databases > R2) จากแถบเมนูด้านซ้ายแล้ว
ระบบจะพาคุณมาที่หน้า Overview (หน้าที่แสดงรายชื่อ Bucket ทั้งหมดของคุณ)
2. ให้มองไปที่ คอลัมน์ขวามือสุด ของหน้าจอ (ใต้หัวข้อ Account Details) คุณจะพบลิงก์หรือปุ่มที่เขียนว่า Manage R2 API Tokens
3. เมื่อคลิกเข้ามาแล้ว ให้มองหาปุ่มสีฟ้าที่เขียนว่า Create API token ซึ่งจะอยู่บริเวณมุมบนขวาของหน้าต่างนั้นครับ
💡 คำแนะนำเพิ่มเติมขณะสร้าง Token:
- Permissions: สำหรับการใช้งานทั่วไปร่วมกับโปรแกรมอื่น เช่น Rclone หรือปลั๊กอินต่างๆ แนะนำให้เลือกสิทธิ์เป็น Admin Read & Write หรือ Object Read & Write ตามความเหมาะสมของงานครับ
- จดบันทึกคีย์: หลังจากกดสร้างเสร็จ ระบบจะแสดงค่า Access Key ID และ Secret Access Key ออกมา ให้คัดลอกเก็บไว้ทันที เพราะระบบจะแสดงให้เห็นแค่ครั้งเดียวเท่านั้นครับ
หากหาปุ่มไม่เจอหรือติดขัดในขั้นตอนการตั้งค่าสิทธิ์ (Permissions) สามารถบอกประเภทโปรแกรมที่จะนำไปเชื่อมต่อ เพื่อให้แนะนำอย่างละเอียดเพิ่มได้นะครับ!
มีสองอันเลือกอันไหน
คุณควรเลือกกดปุ่ม Create API token ในฝั่งของ Account API Tokens ครับ
สาเหตุที่แนะนำและข้อแตกต่างของทั้งสองแบบ มีดังนี้ครับ:
1. Account API Tokens (แนะนำสำหรับการใช้งานทั่วไปและระบบจริง)
- กดตรงนี้: เพื่อสร้าง Token ที่ผูกกับบัญชี/องค์กร (Account) โดยตรง
- คืออะไร: เป็น Token ที่จะทำงานได้อย่างต่อเนื่องยาวนาน เหมาะสำหรับนำไปต่อเข้ากับระบบ โปรแกรม หรือบอทต่างๆ (เช่น ทำ Backup, อัปโหลดไฟล์ผ่านเว็บ, หรือเชื่อมต่อแอปพลิเคชัน)
- ข้อดี: ต่อให้ในอนาคตผู้ใช้งาน (User) ที่เป็นคนสร้าง Token นี้จะลาออกหรือถูกลบออกจากโปรกรุ๊ปขององค์กรไป Token ตัวนี้ก็จะไม่ดับ ระบบของคุณจะยังทำงานได้ตามปกติ
2. User API Tokens
- คืออะไร: เป็น Token ที่ผูกติดกับตัวบุคคล (User Account ของคุณ) โดยเฉพาะ
- ข้อดี/ข้อจำกัด: เหมาะสำหรับใช้ทดสอบระบบเป็นการส่วนตัว (Development) หรือโปรเจกต์ส่งเดี่ยว เพราะถ้าวันหนึ่งคุณกดออกจากโปรเจกต์ หรือถูกลบชื่อออกจากทีม Token ตัวนี้จะใช้ไม่ได้ทันที ช่วยเรื่องความปลอดภัยไม่ให้สิทธิ์ติดตัวคุณไป
สรุปสั้นๆ: ถ้าจะเอาไปตั้งค่าเชื่อมต่อให้แอปหรือโปรแกรมทำงานได้ยาวๆ แบบไม่มีปัญหาในอนาคต ให้เลือกฝั่ง Account API Tokens ได้เลยครับ
เมื่อกดสร้างแล้ว คุณตั้งใจจะนำ R2 API Token นี้ไปเชื่อมต่อกับโปรแกรมหรือบริการไหนครับ (เช่น WordPress, Rclone, หรือเขียนโค้ดเอง)? ผมจะได้แนะนำวิธีตั้งค่าขั้นต่อไปให้ครับ