Einzelnen Download Loadbalancen?

RockNLol

Lieutenant
Registriert
Aug. 2008
Beiträge
814
hi,
ich habe für eine Privatveranstaltung eine kleine Wordpress-Website zur Organisation erstellt. Nach dem Event sollen dort auch die gesammelten Fotos und Videos zum Download angeboten werden (Da werden einige Gigabyte zusammenkommen). Da ich beim Webserver gespart habe, habe ich nur 100Mbit zur Verfügung, was wohl etwas knapp wird. Ich hätte an 4 weiteren Standorten Server hinter Privatleitungen, die die Datei auch hosten könnten.

Gibt es eine elegante Lösung den Download dieser einzelnen Datei auf mehrere Server zu verteilen, ohne 5 Links zum Ausprobieren anzugeben?

Danke im Voraus!
 
DNS Loadbalancing und verschiedene IPs hinter derselben Adresse auflösen lassen? Oder die Dateien bei einem richtigen Fileservice liegen lassen und den Downloadlink nur auf die Seite packen, wie zB OneDrive, Google o.ä.

Alternativ einen CDN einkaufen. Das wird aber auch nicht günstig.
 
  • Gefällt mir
Reaktionen: RockNLol
Zuletzt bearbeitet: (Buchstabendreher)
  • Gefällt mir
Reaktionen: RockNLol
Simpelste Lösung dürfte DNS round-robin bzw. Loadbalancing sein aber das ist Glückssache welcher Client dann welchen Server bekommt. Im schlimmsten Fall gehen alle zum gleichen Server.
Alternativ einen S3 Anbieter deiner Wahl nehmen für die erste Zeit mit viel Downloads, wirfst da die Bilder hin, stellst Cloudflare mit dem free tier Angebot als Pseudo-CDN davor und unter einer Subdomain erreichbar.
Beispielhafte Anleitung: https://help.backblaze.com/hc/en-us/articles/217666928-Using-Backblaze-B2-with-the-Cloudflare-CDN
Jeder der die URL dann kennt, hat aber Zugriff darauf oder noch mit ein bisschen Cloudflare Workers Magie drum herum und das ganze könnte dann so aussehen wie in diesem Beispiel: https://jross.me/free-personal-image-hosting-with-backblaze-b2-and-cloudflare-workers/
 
  • Gefällt mir
Reaktionen: RockNLol und madmax2010
wie schon von @Zensai Vorgeschlagen: Einfach im DNS regeln. Mehrere A records setzen und gut ist.
Nachteil: Wenn ein cliet auf einem Ausgelasteten Server landet, bleibt er dort, so lange die Antwort nicht ausgelaufen ist.

Alternativ: Klick dir bei hetzner eine CX11 VM für 2 Euro/monat. Die ist mit 10GBit/s angebunden und du hast 20Tb Traffic frei
 
  • Gefällt mir
Reaktionen: RockNLol und snaxilian
Die Variante von @madmax2010 ist da definitiv schneller und einfacher umgesetzt als S3 und ein CDN, da hab ich mal wieder erfolgreich overengineering betrieben. :D

Nachteil bei mehreren Servern mit DNS round-robin: Fällt ein System aus und ein Client landet da, gibt's halt nix zu sehen^^
 
Vor dem Server habe ich aus Zertifikatsgründen sowieso einen haproxy laufen, mit einer ähnlichen Konfiguration wie @0x8100 für nginx schreibt könnte das recht elegant klappen.

Syncthing und Resilio sind auch noch eine super Idee und wäre auf meiner Privatleitung dank TrueNAS recht schnell aufgesetzt. Bei den anderen anschlüssen müsste das aber alles erst mühsam aufgesetzt werden, da ist haproxy wahrscheinlich noch einfacher.

Wie würde das mit DNS round robin funktionieren? Denselben A-Record für eine neue subdomain, bspw. eventfotodownload.meinedomain.at für diejenigen IPs vergeben bei denen die Datei liegt und der Client bekommt zufällig irgendeinen zugewiesen?
 
RockNLol schrieb:
DNS round robin funktionieren?
Genau so, wie du es beschreibst. Steht auch nochmal ausführlicher hier: https://de.wikipedia.org/wiki/Lastverteilung_per_DNS

Du musst halt dafür sorgen, dass auf allen Servern, die du so nutzen willst, die identischen Daten mit identischem Namen liegen damit bei Aufruf von https://www.example.org/photos/test.jpeg immer das gleiche Ergebnis kommt.
Fragt ein Client dann die Adresse ab bekommt er vom DNS Resolver alle Ergebnisse und nimmt davon eins (und merkt sich das Ergebnis aber auch eine Zeit lang!). Fällt also einer der Server aus, gehen weiterhin Anfragen von Clients teilweise dahin.
 
RockNLol schrieb:
Wie würde das mit DNS round robin funktionieren? Denselben A-Record für eine neue subdomain, bspw. eventfotodownload.meinedomain.at für diejenigen IPs vergeben bei denen die Datei liegt und der Client bekommt zufällig irgendeinen zugewiesen?
Ja. schau dir mal den Artikel hier an: https://de.wikipedia.org/wiki/Lastverteilung_per_DNS
Ergänzung ()

@snaxilian wir ham's heute aber auch oder? :D
 
  • Gefällt mir
Reaktionen: snaxilian
Zurück
Oben