PromNET

2026. május 8. · #hyperdrive #postgresql #tutorial #cloudflare #developer

Hyperdrive PG-pool: Supabase 100-conn-limit megoldva CF-edge-en

Ha PostgreSQL-t használsz (Supabase, Neon, RDS) és belefutottál a connection-limit problémába: a Cloudflare Hyperdrive a megoldás. Edge-pool, query-cache, <5 ms overhead — magyar UI.

Hyperdrive PG-pool: Supabase 100-conn-limit megoldva CF-edge-en

A PostgreSQL connection-limit klasszikus fájdalmat okoz minden modern serverless-fejlesztőnek. A Supabase free-tier 60 conn-nal, a Neon 100 conn-nal, az RDS db.t3.medium 150 conn-nal indul. Ha a CF Workered 5000 párhuzamos request-et fogad, és mindegyik új PG-kapcsolatot akar nyitni — csődöt mond a DB fél-percen belül. A /app/hyperdrive plugin ezt oldja meg. Ebben a posztban arról, mit csinál, hogyan működik, és mi a setup.

⚠️ A klasszikus probléma

Worker-environment-ben:

import { Pool } from "pg";

const pool = new Pool({
  host: "db.example.com",
  user: "myuser",
  password: env.DB_PASSWORD,
});

export default {
  async fetch(request, env) {
    const result = await pool.query("SELECT * FROM users WHERE id = $1", [123]);
    return Response.json(result.rows);
  }
};

A probléma:

  1. Cold-start: minden új Worker-instance új connection-t nyit
  2. Globális verseny: 100 Worker-instance = 100 conn → DB-limit
  3. Latency: a Worker → DB kapcsolat TLS-handshake-tel ~200 ms
  4. 💰 Költség: a DB-szolgáltató per-conn számláz

⚠️ A megoldás “klasszikusan”: PgBouncer vagy Supabase Pooler — de ezek regionálisak (egy data-center-ben futnak), és nem edge-en.

💡 A Hyperdrive megoldása

A Cloudflare Hyperdrive egy globális PG-pool, ami a CF-edge-en fut:

flowchart LR
    W1[Worker 1] --> HD[Hyperdrive edge-pool]
    W2[Worker 2] --> HD
    W3[Worker N] --> HD
    HD -->|aggregált 5-10 conn| DB[(Te DB-d<br/>Supabase/Neon/RDS)]
    HD -.->|cache hit| C[(Query Cache)]

Mit csinál?

  1. Aggregál: 100 Worker → 5-10 tényleges DB-conn
  2. Cache-el: ismétlődő SELECT-ek a cache-ből jönnek (millisecond-osan)
  3. 🌍 Routing: a magyar felhasználói query → a legközelebbi Hyperdrive-poolregionális DB
  4. 🔒 Encrypted tunnel: TLS a Hyperdrive és a saját DB-d között

Eredmény:

5-10 ms overhead minden Worker-hívásra (cold-start nélkül)

100+ Worker → 5-10 DB-conn ratio

2-5× gyorsabb ismétlődő query (cache-hit)

🎯 A DB-szolgáltató boldog — kevesebb kapcsolat

🎨 A /app/hyperdrive UI

Magyar UI-on:

[itt screenshot — Hyperdrive konfig-mezők]

  1. Új konfiguráció gomb
  2. Beírod a DB-credentials:
    • Host (pl. db.supabase.co)
    • Port (5432)
    • Database név
    • User
    • Password (titkosan tárolva)
  3. Cache-policy:
    • disabled — nincs cache
    • enabled — minden SELECT cache-elve (60 mp default)
    • custom-ttl — pontos TTL beállítás
  4. Mentés → kapsz egy Hyperdrive connection string-et:
    postgresql://user:[email protected]:5432/dbname

✅ Ezt a connection string-et használd a kódodban a saját DB-host helyett. Egy sor cserélődik, és a 100-conn-limit megszűnt.

📝 Példa — Astro 5 + Supabase + Hyperdrive

Klasszikus Astro 5 + Supabase setup:

// src/lib/db.ts (a régi)
import postgres from "postgres";

const sql = postgres(
  "postgresql://user:[email protected]:5432/postgres"
);

export { sql };

Hyperdrive-szal:

// src/lib/db.ts (az új)
import postgres from "postgres";

const sql = postgres(
  process.env.HYPERDRIVE_URL  // a CF Hyperdrive connection string
);

export { sql };

Astro-build idején és Worker-runtime-ban is a Hyperdrive felé megy a kapcsolat. A Supabase-szerver onnan kapja az aggregált connection-eket.

A wrangler.toml-ban:

[[hyperdrive]]
binding = "DB"
id = "abc123def456"  # A PromNET UI-n megjelenik a config-id

[vars]
HYPERDRIVE_URL = "postgresql://hd-abc123.cloudflare-hyperdrive.com:5432/postgres"

⚡ A Query-cache — mire jó?

A Hyperdrive alapból cache-eli az ismétlődő SELECT-eket. Például:

SELECT name FROM products WHERE category = 'electronics' LIMIT 20;

Ez valószínűleg a webshopod front-page-én fut, minden látogatónál. Hyperdrive-cache-szel:

Eredmény: ha napi 10 ezer látogatód van, és mindegyik 1 SELECT-et hív, az 10.000 → ~600 DB-query a 60 mp-es cache-szel. 94% csökkentés.

A TTL állítható:

💡 Statikus ár-listáknál, kategória-listáknál, CMS-tartalmaknál hosszú TTL nagyon hatékony.

⚠️ Mire NE használj cache-et?

QueryCache OK?
SELECT * FROM products WHERE category = 'X'Igen (60 mp)
⚠️ SELECT * FROM users WHERE id = $1Igen (rövid TTL, 5 mp)
SELECT COUNT(*) FROM orders WHERE date = TODAYNEM — élő counter
SELECT * FROM stock WHERE product_id = $1NEM — élő stock
SELECT user_balance FROM accounts WHERE id = $1NEM — élő pénz

⚠️ A szabály: ha az érték másodpercen belül változhat és számít, ne cache-eld.

🔒 Adatvédelem

A Hyperdrive a CF-edge-en fut, európai régiókban. A DB-credentials titkosan tárolódnak a CF Vault-ban. A query-cache szintén EU-n belül marad.

🇭🇺 A magyar GDPR-megfelelőség alapból teljesül, ha a saját DB-d is EU-régióban van (Supabase EU, Neon EU, RDS Frankfurt).

💰 A Pricing

A CF Hyperdrive ingyenes a CF-Workers-Paid-csomagban (havi 5 USD). Workers Free-en is használható, napi 100k operationig.

A PromNET-en:

TételKöltség
💰 Hyperdrive-alap0 — beépítve a fiókodba
💰 Query-throughput (1M op/hó fölött)0.4 USD / 1M
💰 Query-cache-storage0.05 USD / GB / hó

✅ Egy átlag-magyar SaaS-app (havi 100k user, mindegyik 50 query) 5M op / hó = 2 USD / hó. A teljes Supabase-cost-ot is csökkenti mert kevesebb DB-conn kell.

🇭🇺 Esettanulmány — egy magyar SaaS

Tényleges példa: HR-onboarding-platform, Supabase Pro (25 USD/hó, 200 conn-limit), Cloudflare Workers (Paid, 5 USD/hó).

Elő-Hyperdrive:

Post-Hyperdrive:

⚡ Időbefektetés a Hyperdrive-setupra: 20 perc. ROI: percek alatt.

❌ Mire NEM jó?

A Hyperdrive NEM:

✅ Mire IDEÁLIS?

🚀 Hogyan kezdj?

  1. DB-credentials kéznél (Supabase / Neon / RDS hostname, user, jelszó)
  2. /app/hyperdrive/uj → új konfiguráció
  3. 5-perces setup — a UI vezet végig
  4. Connection string cserélés a kódodban
  5. Deploy és monitorozás — a /app/hyperdrive/<id>/stats oldalon látod a query-throughput-ot, cache-hit-rate-et, conn-pool-state-et

🔮 Mi jön ezután?

🎯 Próbáld ki

/app/hyperdrive — ingyenes setup, 20 perc és 0 conn-limit-error lesz a logodban. Kérdés: /community/dev vagy /app/support.

Polyák Csaba


© 2026 PromNET — Polyák Csaba. ← Vissza a blog-ra

Hozzászólások

Betöltés…