4 Monate Entwicklung und 2 Monate nach dem Launch von zod.kr – Rückblick auf Server und Service
(ake.kr)Ein Beitrag über den gewählten Tech-Stack und den Entwicklungsprozess beim Aufbau der koreanischen Community-Website zod.kr.
Durch einen großen Fehltritt einer Konkurrenzseite kam es zu einem zehnmal höheren Traffic als erwartet, wodurch der Server abstürzte und anschließend wiederhergestellt werden musste.
Ressourcendiät zur Optimierung der Traffic-Kosten.
Im Folgenden das mit Grok 3 zusammengefasste Ergebnis.
Geteilt werden die Erfahrungen aus der Solo-Entwicklung der IT-Community zod.kr. Enthalten ist auch der Optimierungsprozess zur Senkung der Serverkosten.
- Entwicklungshintergrund: Rückkehr zur Webentwicklung nach 3 Jahren, Rückkehr zu PHP-Entwicklung nach 7 Jahren. Wechsel zum Full-Stack-Entwickler.
- Service-Stack: Rhymix(CMS), Oracle Cloud Free Tier (anfangs), Cloudflare (Sicherheit), Bunny.net (CDN), Naver Cloud (E-Mail).
- Ursprünglicher Server: Oracle Free Tier (24GB RAM, 4-Core ARM, 150GB Storage). Wegen der kostenlosen 4TB Traffic gewählt, doch nach dem Launch führte unerwartet zehnfach höherer Traffic zu Verbindungsabbrüchen beim Network Drive und zum Zusammenbruch des Servers.
- Server-Migration: Notfallmigration zu Vultr. Provisorische Wiedereröffnung nach 30 Stunden Arbeit ohne Schlaf.
- Traffic-Probleme:
- Mit Cloudflare Argo (0,1 $ pro GB) fielen 20 $ pro Tag an, hochgerechnet rund 1 Million Won pro Monat.
- Wechsel zu Bunny.net und Senkung der Kosten auf 15–20 % des vorherigen Niveaus.
- 27.000 bis 30.000 tägliche Besucher, was die Notwendigkeit einer Traffic-Optimierung deutlich machte.
- Optimierungsmaßnahmen:
- Verkleinerung von Icons (Iconoir) und Webfonts (Pretendard).
- Minimierung von Inline-Skripten/-Styles und Entfernen von HTML-Kommentaren.
- Reduzierung des Bunny.net-Traffics durch Lazyload (68–88GB → 44–46GB).
- Einsparung von 3–4GB durch Bot-Blockierung und Einführung einer API-Whitelist.
- Ergebnis:
- Peak-Traffic bei Cloudflare von 211GB auf 12GB, gesamter Traffic um 57 % reduziert.
- Kosten um 70–80 % gesenkt (26 $/Tag → 3,48 $).
- Erkenntnis: Cloudflare ist nützlich, wenn man es richtig einsetzt, und schädlich, wenn nicht. Die Bedeutung von Traffic-Management wurde deutlich.
13 Kommentare
Ich dachte, es wäre wohl Nextjs...
Ich entwickle auch im Kleinen allein, und da ich Vercel nutze, sind die Kosten meine größte Sorge.
Ich habe den Beitrag gern gelesen. Dabei habe ich auch ein CDN kennengelernt, das ich vorher nicht kannte. Ich werde gelegentlich darauf zurückkommen.
zod also das Labor für unnütze Spielereien..?
Das ist eine Community, die ich sehr gerne nutze, und gerade als ich darüber nachdachte, eine geschlossene Community für einige Gaming-Gruppen zu betreiben, war das ein interessanter Erfahrungsbericht. Ich hätte nicht gedacht, dass du allein daran arbeitest — wirklich beeindruckend.
Ich bin wirklich sehr, sehr neugierig, wie ihr am Anfang Leute angezogen habt. Großartig.
Soweit ich mich erinnere, kamen damals ganz von selbst Nutzer dazu, weil es zu dem Zeitpunkt eine Kontroverse um den Betrieb einer Website gab, die ein ähnliches Thema behandelte.
Dass Lyricis verwendet wird, fand ich auch interessant, und ebenso, dass eine API für Algumon bereitgestellt wird.
Algumon hat da wohl etwas gemacht. Ich habe eine gute Website kennengelernt.
Interessant gelesen. Selbst mit Cloudflare sind die Kosten für den Netzwerkverkehr also hoch?
Es gibt einige Ähnlichkeiten mit dem Stack aus diesem Artikel: Wie man mit 500.000 Won pro Monat ($400) 80 TB Traffic und 5 Mio. Pageviews bewältigt
Sieht großartig aus,
mit Technologien wie
fetchkönnte man den Traffic vielleicht noch etwas reduzieren — ist das nicht möglich?Warum reduziert
fetchden Traffic?Ah, dann ist es wohl Ajax.
Ich kenne mich im Web-Bereich auch nicht besonders gut aus, aber offenbar wird jedes Mal, wenn man zu einem anderen Tab wechselt, das HTML komplett neu geladen.
Soweit ich weiß, gibt es auch eine Möglichkeit, nur die Daten der geänderten Teile zu laden.
Viel Erfolg auf dem Weg, die Nr. 1 unter den Hardware-Communitys zu werden!