لو DB الإنتاج بتاعتك 10GB، وبتحتفظ بنسخة يومية لمدة 30 يوم، AWS S3 بيكلّفك حوالي 1.38 دولار شهريًا فقط في التخزين. الطريقة اللي هتلاقيها هنا بتوفّر نفس الأمان بـ 36 سنت تقريبًا شهريًا على Backblaze B2، سكربت bash واحد، و cron entry سطر واحد.
المشكلة باختصار
قاعدة البيانات هي أغلى أصل في مشروعك التقني. لو اتمسحت جدول بالخطأ، أو قرص SSD في السيرفر خرب، أو حد عمل DROP DATABASE وهو نعسان الساعة 2 صباحًا، اللي هيرجّع الموقع شغّال هو النسخة الاحتياطية فقط. مفيش حل تاني.
المشكلة إن معظم الناس بتعتمد على واحدة من تلات طرق كلها مكسورة:
- النسخة اللي مخزّنة على نفس السيرفر اللي فيه الـ DB — لو السيرفر وقع، النسخة معاه.
- نسخة يدوية على الـ laptop بتاع المطور — بتبقى قديمة بأسبوعين في أحسن الأحوال.
- managed service زي RDS بـ point-in-time recovery بـ 40 دولار زيادة شهريًا — حل كويس بس overkill لمشروع صغير.
مثال بسيط للمبتدئ — إيه هو الـ backup أصلًا
تخيّل إنك بتكتب يومياتك في دفتر مهم وحاطه على المكتب. لو البيت شبّ فيه حريق، الدفتر خلاص راح. الحل البديهي: كل يوم قبل النوم، تاخد صورة لكل صفحة بموبايلك وتبعتها لصندوق أمانات في البنك. لو البيت حصله حاجة، بتروح البنك، تاخد الصور، وترجع تكتب دفتر جديد.
الـ database backup بالظبط نفس الفكرة. الـ pg_dump هو اللي بياخد "الصورة" من قاعدة بيانات PostgreSQL، والـ Backblaze B2 هو "البنك" البعيد اللي بيخزّن الصور دي. لو السيرفر مات، بترجع تنزل آخر نسخة من B2 وبتعيد تشغيل الموقع.
ليه Backblaze B2 مش AWS S3
الفرق الوحيد الجوهري بين B2 و S3 هو السعر — ووظيفيًا الاتنين بيعملوا نفس الحاجة لحالة الاستخدام دي. الأرقام الفعلية من صفحتهم الرسمية وقت كتابة المقال:
- B2 Storage: 0.006 دولار لكل GB شهريًا.
- S3 Standard: 0.023 دولار لكل GB شهريًا.
- B2 Download/Egress: أول 3× من حجم التخزين مجاني، بعدها 0.01 دولار/GB.
- S3 Egress: 0.09 دولار/GB بعد أول 100GB مجاني شهريًا.
على DB حجمها 10GB، الـ pg_dump مضغوط بـ gzip بيطلع تقريبًا 2GB (نسبة ضغط ~5× لبيانات relational عادية). 30 نسخة يومية × 2GB = 60GB تخزين شهري. التكلفة:
- B2: 60 × 0.006 = 0.36 دولار شهريًا.
- S3 Standard: 60 × 0.023 = 1.38 دولار شهريًا.
- فرق 3.8× لنفس الوظيفة بالظبط.
الافتراض هنا إن عندك DB إنتاج صغيرة إلى متوسطة (أقل من 50GB) وبتعمل dump كامل يوميًا. لو حجم DB 500GB، الحساب بيختلف ولازم تفكر في incremental backups.
إعداد Backblaze B2 — 4 خطوات
- اعمل حساب على
backblaze.com/b2. الـ signup مجاني وبتاخد 10GB free forever.