- sorgu hızını arttırmak
- saldırıdan korunmak ( yazılımı yük dengeleme için kullanabiliyorum ama veri tabanını birçok sunucuya dağıtmayı bilmiyorum)
- Veri kaybından sağ salim çıkmak
- Sunucu kesintilerinde sorun yaşamamak
Şimdilik bu şekilde hocam tek sorunum veri tabanını yazılımı değiştirmeden anlık tüm sunucularda eşitlemek
Birçok şeyi aynı anda istediniz hocam, sunucu kesintisinde veri kaybı olmayacaktır zaten veritabanınızın boyutu nedeniyle korkulacak bir şey yok.
Yedek sunucunuzu farklı bir firmadan almanız daha iyi olacaktır.
Alınacak önlemlere örnek;
Ben şu şekilde yapardım Pythondan yararlanıp, pymongo ile otomatik yedek alan farklı bir yedek sunucu oluşturur idim ana sunucu ile yedek sunucu saate 1 kere iletişim kurar, veri kaybı veya önceki sorguda var olup yeni sorguda var olmayan verileri otomatik şekilde ana sunucunun veritabanına yeniden yazdırırım.
Sizin kullanım amacınıza göre birçok faktör eklenebilir.
Mongodb sharding kurulumu için örnek video
https://youtu.be/mjSNKjTzeao?si=92FjAKRs7foDnD_P
Ddos konusunda rate limit ayarlayabilirsin, waf kullanabilirsin.
Alternatif flask limiter kullanabilirsin
örnek kurallar;
1 İP dakikada en fazla kaç sorgu çalıştırabilir?
5
1 İP dakikada 6 sorgu çalıştırmayı denerse bağlantı kurmaya çalışan ip adresinin iletişimini sunucuyla kesmek.
Dakikalık/Saatlik sorgu limiti belirleme.
Kullanılan sunucuya ait voxility, mikrotik fiziksel firewall edinebilirsin.
Sorgu çalıştıran sunucu ile veritabanını barındıran 2 sunucuya sahip olmak cdnden sonra en yüksek yük dengesi sağlayacak uygulama olabilir + 2 si arasına katman atıp trafik takibini engelleyebilirsin.
Veyahut hiç birini yapamıyor iseniz cdn kullanabilirsiniz veriler dağılır kesintisiz olur ve saldırıdan etkilenmez.
İyi çalışmalar.