บริการ Backblaze B2 Cloud Storage พื้นที่เก็บไฟล์ราคาถูกสำหรับเก็บไฟล์จำนวนมากๆ พื้นที่เยอะๆ

เมื่อเดือนก่อนติดตั้ง Internet ใหม่ได้ download ความเร็ว 50Mbps และ upload ความเร็ว 10 Mbps ทำให้ความฝันที่จะอัพโหลดไฟล์ที่มีขนาดใหญ่ๆ ไปไว้บน Internet สามารถทำได้ง่ายและเร็วมากขึ้น ทำให้คิดว่าควรหาพื้นที่ backup ข้อมูลเพื่อเป็น DR สำหรับไฟล์ต่างๆ บน External HDD ที่มีอยู่ เลยหาบริการที่สามารถช่วยตอบโจทย์การ backup ดังกล่าวได้ในราคาที่ต่ำหรือพอๆ กับซื้อ External HDD มาทำ NAS + RAID ซึ่ง @lewcpe แนะนำ Backblaze ผมเลยศึกษาข้อมูลของบริการตัวนี้ดู

Backblaze

หลังจากใช้ Backblaze B2 Cloud Storage (ต่อไปเรียก B2) มาได้สักพัก ค่อนข้างประทับใจเลยทีเดียว โดยมันทำงานคล้ายๆ กับ AWS S3 หรือ Azure Storage แต่ราคาในการเก็บข้อมูลอยู่ที่ 0.005 usd/GB/mo หากเก็บข้อมูล 1TB ต่อเดือนจ่ายที่ 5.12 usd เท่านั้น ซึ่งราคานี้ยังไม่รวมพวก Transaction และ Download Bandwidth ที่หากเราจะ download ออกมา ก็จ่ายเงินเพิ่มไปทีหลัง ซึ่ง AWS S3 หรือ Azure Storag ก็เก็บในลักษณธนี้เช่นกัน แต่ B2 ให้ราคาที่ถูกกว่ามาก (คิดยิบย่อยน้อยกว่า AWS มาก) โดยมีรายงานรวมไปถึงตั้ง Caps & Alerts เพื่อป้องกันค่าใช้จ่ายเกินได้ด้วย ช่วยให้เราตรวจสอบได้ว่าเราจะต้องจ่ายเงินเท่าไหร่ได้ในแต่ละเดือน

โดยในส่วนของ Caps นั้น มีข้อมูลให้ทั้ง
1. Daily Storage Caps โดยเก็บไฟล์ฟรีที่ 10 GB
(ราคาหลังจากนั้น 0.005 usd/GB/mo)

2. Daily Download Bandwidth Caps ฟรีจำนวนข้อมูลดาวน์โหลดออกมา 1 GB ต่อวัน
(ราคาหลังจากนั้น 0.05 usd/GB)

3. Daily Class B Transactions Caps ฟรีดาวน์โหลด 2,500 Transactions แรก
(0.004 usd/10,000 transactions)

4. Daily Class C Transactions Caps ฟรีสร้างหรืออัพเดทไฟล์ 2,500 Transactions แรก
(0.004 usd/1,000 transactions)

ส่วน Daily Class A Transactions ฟรีอัพโหลดข้อมูลไม่จำกัดจำนวน Transactions (แต่พื้นที่เก็บข้อมูลตามข้อที่ 1.)

จากรายงานทั้งหมดด้านบน หากเรามานั่งคิดดีๆ โดยรวมถือว่าถูกที่สุดเท่าที่หาได้ และมีความน่าเชื่อถือสูงเช่นกัน หากเราคิดว่าเราจะหา HDD มานั่ง backup ข้อมูลเองและต้องแยกไฟล์ไว้หลายๆ จุด การใช้ B2 ก็ช่วยตอบโจทย์ได้มากกว่า ด้วย Backblaze Vaults ที่ทาง Backblaze บอกว่าทำ 17 data shards และ 3 parity shard ช่วยให้ป้องกันการเสียหายของข้อมูลจาก HDD failed ได้ดีกว่า ถึงขนาดกล้ารับประกัน 99.999999% annual durability ทีเดียว (เรื่องนี้ต้องดูกันยาวๆ)

Distributing Data Across 20 Storage Pods

ตัวบริการเป็นลักษณะพื้นที่เก็บเฉยๆ ไม่มี client ช่วย sync ข้อมูลให้แต่อย่างใด แต่เปิด API เพื่อให้เขียนโปรแกรมสำหรับอัพโหลดเข้าไปแทน ผมเลยใช้วิธีอัพโหลดไฟล์เข้าไปผ่านโปรแกรมชื่อ Cyberduck ซึ่งทำงานคล้ายๆ กับ FTP ในการโยนไฟล์เข้า Server โดยทั่วไป โดยจากการใช้งานผ่าน Cyberduck และเก็บไฟล์บน B2 สิ่งที่ต้องทำคือการใส่ไฟล์เยอะๆ เป็นจำนวนมาก ทำให้เราเสียค่า Class C Transactions เยอะ เพราะมันคิดตามจำนวนไฟล์ที่สร้างขึ้น จึงต้องใช้การ zip ไฟล์ก่อน แล้วส่งไฟล์เข้าไปเป็นก้อนใหญ่ๆ แทน เพื่อประหยัด Class C Transactions

B2 Cloud Storage

มีข้อดีมากมาย ก็มีข้อเสียที่ควรใส่ใจคือ Backblaze ไม่ encrypt ไฟล์ที่จัดเก็บให้เรา (แต่การส่งข้อมูลยัง encrypt ผ่าน https) ฉะนั้น ไฟล์อะไรที่สำคัญ ควร encrypt ก่อนส่งเข้าไปเก็บที่นั้นเสมอ

การกำหนดการเข้าถึงไฟล์นั้นเป็นแบบแบ่ง Bucket เอาแทน และ permission อีกเพียง Public และ Private ฉะนั้นตอนเริ่มตั้งค่าต้องเซ็ตให้ดีๆ ว่าอันไหน Public อันไหน Private

จากทั้งหมดที่ว่ามา ตอนนี้ก็เลยสามารถใช้ HDD ที่มีอยู่ในการเก็บข้อมูลเพียง copy เดียว แล้วโยนไฟล์ที่ต้องการ Backup ชุดข้อมูลดังกล่าวไปใส่ใน Backblaze แทนซึ่งตอบโจทย์ทั้ง Backup และ DR ไปในตัว