folder Tahribat.com Forumları
linefolder Network - İnternet
linefolder Web Sitesi İçin Tasarladığım Sistem (Önerileriniz Lazım - Load Balancing, Clustering Vs..)



Web Sitesi İçin Tasarladığım Sistem (Önerileriniz Lazım - Load Balancing, Clustering Vs..)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RockZs
    RockZs's avatar
    Kayıt Tarihi: 30/Haziran/2002
    Erkek

    Merhaba,

    Amaç yüksek bulunurluk sağlayabilecek verimli bir sistem tasarlamak. 

    Scaleway altyapısını kullanıyorum diyelim (her makinede 2GB RAM, 4 Core ARMv7 (1.3Ghz) işlemci, 1Gbit/s network card (200Mbits bandwidth) ve istediğim kadar alan var, bare-metal olarak tabir edilen tipteler).

    Round-robin ile yatay olarak sistemi zaman ilerledikçe genişletmeyi planlıyorum (biliyorum Round-robin sistemi çok sağlıklı değil, daha da ileride load balancing için farklı bir çözüm bulabilirim ama yukarıdaki sunucuyla yapabileceğim en iyi şey bu gibi görünüyor).

    Sistem şöyle işliyor (resimdeki numaralara göre):

    1) Siteye girerken, DNS Round-robin ile Load Balancer'ın IP si alınıyor.

    2) Load Balancer a bağlanılıyor.

    3) Herhangi bir Nginx server'dan static tek sayfa html alınıyor (~30kb).

    4) Node.JS (socket.io) işlemleri için ayrı bir LoadBalancer a bağlanılıyor.

    5) Herhangi bir Node.JS server işlem yapıyor.

    6) Node.JS server REDIS kullanarak sorgular gerçekleştiriyor ve client e dönüyor.

    Aklıma takılan sorular şöyle:

    1) Sistemde yanlış bulduğunuz, bunu şöyle yap diyeceğiniz şey var mı? Neler var?

    2) Round-robin ayarlı DNS için IHS gibi domain sunucularının DNS sunucularını kullanmakta bir sorun olur mu? Galiba DNS-DDOS atakları oluyormuş, bunun için ne gibi bir önlem alınabilir? IHS'nin sunucuları bu tip atakları karşılamaya yeterli midir? (Ya da önerdiğiniz bir servis var mı?)

    3) Bildiğim kadarıyla HAProxy, client-server arasındaki tüm iletişimi kendi üzerinden yapıyor (mesela 50kb'lık bir veri browser'a yine HAProxy üzerinden ulaşıyor, HAProxy'nin bandwidth'inden çalıyor). Bunun yerine, daha verimli olsun diye, sadece yölendirme yapacak bir servis var mıdır? Misal Nginx sunucuları çalışıyor mu diye kontrol etsin, çalışan sunucular arasından bir yöntemle Load-Balancing amaçlı yönlendirme yapsın ama LoadBalancer üzerinden veri taşınmasın, client doğrudan Nginx ile iletişim kursun.

    4) REDIS 'i CLUSTER halinde kullanmak istiyorum fakat temel mantığını anlayamadım. Performans için Master'ları mı çoğaltmalıyım yoksa slave'leri mi? Kaç master kaç slave kullanacağıma neye dayanarak karar verebilirim, nelere dikkat etmeliyim? Ayrıca REDIS CLUSTER'dan önce de bir HAProxy koymaya gerek var mı, böyle uygulamalar gördüm.

    5) CDN'i sadece css ve js için kullanmayı düşünüyordum ama acaba tüm içeriği (index.html+css+js) bir CDN'de mi tutsam? CDN'ler static sayfa sunucusu olarak kullanılabilir diye biliyorum.. Tuzlu gelirse CDN'den ilk aşamada vazgeçebilirim; bu şekilde de tek sayfa html (css ve js ile beraber) ~60kb tutar.

    6) Bu sistemi maliyeti aylık 30€ (10 tane ScalewayC1 sunucu). Böyle birşeyi daha ucuza yapabilir miyim? Fikriniz var mı? Duruma göre 2 LoadBalancer, 1 Nginx, 1 Node.Js ve 2 Redis sunucuyu kaldırırsam aylık fiyat 12€ ya düşüyor - Tabi bunun için bi' sürü ayar gerekli.. 

    7) Güvenlik için ne gibi önlemler alınabilir (en korktuğum şey DDOS-Botnet vs.. gibi saldırılar) özel bir tavsiyeniz varsa öğrenebilir miyim?

    Teşekkürler.

     

    GÜNCELLEME:

    Yukarıdaki maddelere/yazıya gerek kalmadı ama silmiyorum, birinin işine yarayabilir.

     

    Yaptığım araştırmalar sonucu AWS kullanmaya karar verdim. Birçok CDN statik html'yi domain'e yönelik olarak kullandırmaya müsait değil (MaxCND, Rackspace) fakat Amazon Route53 ve S3 uygulamaları ile bu hizmeti veriyor. Statik kısım için endişelenmeye gerek kalmadı. İşin dinamik kısmı için de yine Amazon Web Services'in elastiCache ve Elastic Beanstalk hizmetleri altında EC2 sunucularını kullanmaya karar verdim. Elastik olmalarının nedeni, gelen trafiğe göre kendiliğinden slace-up/down olabilmeleri. Sistemi buna göre güncelleyerek birçok dertten kurtulduğumu düşünüyorum.

    Son durumda altyapı şöyle şekillendi:

    RockZs tarafından 20/Eki/15 18:20 tarihinde düzenlenmiştir
Toplam Hit: 685 Toplam Mesaj: 1
webb