Cloudflare ist technisch stark, aber ein US-Unternehmen. Bunny.net ist die derzeit praktikabelste EU-Alternative — was es kann, wo es endet, und wie ein Deployment für Astro aussieht.
Cloudflare ist für viele Webprojekte die erste Wahl: globales CDN, Edge Workers, DNS, Zero-Trust-Produkte — und der Free Tier ist großzügig. Das Problem kommt spätestens, wenn Kunden fragen, wo ihre Daten eigentlich liegen. Cloudflare ist ein US-Unternehmen, unterliegt dem Cloud Act und hat — trotz EU-Datenzentren — keinen vollständigen EU-Datenschutz im rechtlichen Sinne. Für viele KMU ist das kein Problem. Für andere schon.
Bunny.net ist in der EU ansässig und deckt den wichtigsten Anwendungsfall ab: statische Seiten schnell und günstig weltweit ausliefern.
Was Bunny.net ist
Bunny.net (BunnyWay d.o.o.) ist ein europäisches CDN-Unternehmen mit Sitz in Ljubljana, Slowenien. Gegründet 2012, heute mit über 100 PoPs weltweit. Kein Investor-getriebenes Wachstumskonstrukt, sondern ein profitables Infrastruktur-Unternehmen — das ist bei der Frage nach Verlässlichkeit relevant.
Das Produktportfolio:
- Bunny CDN — klassisches Pull Zone CDN, Inhalte werden vom Origin gecacht und weltweit ausgeliefert
- Bunny Storage — S3-ähnlicher Objektspeicher, direkt als CDN Origin einsetzbar
- Bunny Edge Scripting — JavaScript-basierte Edge Functions, technisch vergleichbar mit Cloudflare Workers
- Bunny Optimizer — automatische Bildoptimierung und WebP-Konvertierung
- Bunny DNS — Anycast DNS, Teil der CDN-Infrastruktur
Für statische Astro-Sites ist die Kombination aus Bunny Storage und CDN Pull Zone der Standardweg.
Wie ein Deployment aussieht
Das Prinzip: Build-Artefakte in Bunny Storage hochladen, Pull Zone auf das Storage-Bucket zeigen lassen. Das CDN übernimmt dann Auslieferung, Caching und HTTPS automatisch.
Voraussetzungen
Ein Bunny.net-Account, eine Pull Zone und ein Storage Zone. Alles lässt sich über das Bunny-Dashboard oder die API einrichten.
Deployment via API (CI/CD)
# Dateien in Bunny Storage hochladen
curl -X PUT \
-H "AccessKey: $BUNNY_STORAGE_KEY" \
-H "Content-Type: text/html" \
--data-binary @dist/index.html \
"https://storage.bunnycdn.com/mein-storage/index.html"
Für Astro-Sites mit vielen Dateien gibt es bunn-deploy (inoffiziell) oder das offizielle Bunny CDN GitHub Action:
# .github/workflows/deploy.yml
- name: Deploy to Bunny CDN
uses: ayeressian/bunnycdn-storage-deploy@v2
with:
source: dist
destination: /
storageZoneName: ${{ secrets.BUNNY_STORAGE_ZONE }}
storagePassword: ${{ secrets.BUNNY_STORAGE_PASSWORD }}
accessKey: ${{ secrets.BUNNY_ACCESS_KEY }}
pullZoneName: ${{ secrets.BUNNY_PULLZONE_NAME }}
Cache-Invalidierung nach Deployment
Bunny.net cacht aggressiv — nach einem neuen Deploy müssen Dateien invalidiert werden:
curl -X POST \
-H "AccessKey: $BUNNY_API_KEY" \
-H "Content-Type: application/json" \
"https://api.bunny.net/pullzone/$PULLZONE_ID/purgeCache"
Alternativ: Deployments über versionierte Pfade (/v1.2.3/) organisieren, dann ist Cache-Invalidierung nicht nötig.
Custom Domain und HTTPS
Pull Zones bekommen automatisch ein Let’s-Encrypt-Zertifikat für Custom Domains. Im Dashboard einrichten, dann CNAME auf {zonename}.b-cdn.net zeigen lassen — fertig.
Preise im Vergleich
Cloudflare Pages ist im Free Tier kostenlos und bleibt das für die meisten kleinen Projekte. Bunny.net rechnet nutzungsbasiert ab:
| Leistung | Bunny.net | Cloudflare |
|---|---|---|
| CDN-Traffic EU | ab 0,005 €/GB | Free Tier kostenfrei |
| Storage | ab 0,02 €/GB/Monat | — (R2: 0,015 $/GB) |
| Edge Functions | ab 0,0001 €/Request | Free: 100k Req/Tag |
| DNS | inklusive | kostenfrei |
Für KMU-Projekte mit moderatem Traffic liegt Bunny.net bei wenigen Euro pro Monat. Cloudflare ist günstiger, solange der Free Tier ausreicht — beim reinen Hosting unterbietet Bunny.net Cloudflare Pro ($20/Monat) jedoch deutlich.
Wo Bunny.net noch nicht mithalten kann
Edge Scripting ist in der Beta. Bunny Edge Scripting (JavaScript/TypeScript an Edge-Nodes) existiert, aber das Ökosystem ist deutlich schmaler als Cloudflare Workers. Kein D1 (SQL-Datenbank), kein KV-Store im Workers-Stil, kein Durable Objects. Wer serverseitige Logik am Edge braucht — API-Routes in SvelteKit, SSR-Seiten, Session-Handling — kommt mit Bunny.net heute noch nicht weit.
Kein vollständiges Application-Plattform-Paket. Cloudflare bietet R2, D1, Queue, AI Gateway, Turnstile, Zero Trust in einem Ökosystem. Bunny.net konzentriert sich auf Delivery — wer darüber hinaus braucht, kombiniert es mit anderen Diensten.
Vendor-Ökosystem. Weniger Tutorials, weniger Framework-Integrationen out-of-the-box. Astro hat keinen offiziellen Bunny.net Adapter — das muss manuell gelöst werden.
Wann Bunny.net die richtige Wahl ist
Für rein statische Astro-Sites (kein SSR, kein Edge-Rendering, keine API-Routes) funktioniert Bunny.net heute vollständig und zuverlässig. Der Deployment-Workflow ist etwas manueller als bei Cloudflare Pages, aber nicht komplex. Wer den Betrieb absichern will, ergänzt das mit Monitoring via Prometheus und Grafana auf der Infrastrukturseite.
Für Projekte, bei denen Kunden explizit EU-Datensouveränität fordern oder DSGVO-Compliance dokumentiert werden muss, ist Bunny.net die derzeit substanziellste EU-Alternative: kein US-Cloud-Act, kein SCCs-Konstrukt, kein „die Daten liegen physisch in Frankfurt, aber das Unternehmen unterliegt US-Recht”. Wer zusätzlich die Compute-Seite auf eigener Hardware halten will, findet in k3s auf Proxmox einen passenden Ansatz für On-Premise-Workloads.
Wer Cloudflare Workers, D1 oder SSR-Rendering nutzt, sollte bleiben, wo er ist — dort gibt es aktuell keinen gleichwertigen EU-Ersatz.
Einordnung
Die EU-Hosting-Frage wird von vielen Kunden gestellt, von wenigen wirklich durchdacht. Cloudflare mit EU-Datenzentrum und korrekten SCCs ist für die meisten Projekte rechtlich ausreichend — und technisch deutlich mächtiger. Wer aber sauber aufgestellt sein will oder Kunden im öffentlichen Sektor, im Gesundheits- oder Rechtswesen bedient, für den ist Bunny.net die ehrlichste Antwort auf die Frage: „Wird das in der EU gehalten?”
Für statische Sites ist der Wechsel heute machbar. Alles andere: noch abwarten.