1. rész: Monolitikus vs. Serverless
Fedezd fel a monolitikus és a serverless architektúrák közti különbségeket! Mikor érdemes áttérni az AWS serverless megoldásaira?

Ebben a bejegyzésben két különböző architektúra összehasonlítását végzem el, mindkettő ugyanazt a problémát oldja meg, de eltérő megközelítésekkel. Az egyik egy modern, serverless architektúra az AWS felhőszolgáltatásai segítségével, míg a másik egy hagyományos, monolitikus architektúra. Az összehasonlítás a következő szempontokra fog fókuszálni: teljesítmény, skálázhatóság, karbantarthatóság, költség és hogy hogyan oldják meg a problémát különböző módon.
Kiválasztottam két alkalmazás csomagot amiken keresztül összehasonlítást végzek a serverless és a monolit architektúra között, elnevezve őket minta Serverless app és minta Monolitikus app-nak.
I. A minta serverless app felépítése
Ez a példa alkalmazás egy serverless megoldást használ, és az alábbi AWS szolgáltatásokat tartalmazza:
- Frontend: Statikus Svelte alkalmazás, amely az S3-on van hosztolva, és nyilvános hozzáféréssel rendelkezik.
- Felhasználókezelés: AWS Cognito.
- Adatbázis: Single-table DynamoDB (NoSQL), három entitással: Termék, Rendelés, és Készlet. Global Secondary Index (GSI) használata az entitás típus alapján.
- API réteg: REST API Gateway.
- Üzleti logika: Három AWS Lambda funkció:
OrderCRUDHandler
InventoryCRUDHandler
ProductCRUDHandler
- Értesítések: SNS értesítés admin email címre, amikor új rendelés érkezik.
II. A minta monolitikus app felépítése
Ez a példa egy monolitikus architektúra, amely ugyanazt a funkciót látja el, mint a minta serverless app, viszont ez monolitikus megoldásokat alkalmaz:
- Frontend: Dinamikus frontend, amely egy hagyományos webszerveren (például EC2 vagy helyi szerver) van hosztolva.
- Felhasználókezelés: Egyedi felhasználói hitelesítés és session kezelés.
- Adatbázis: Relációs adatbázis (például RDS, MySQL vagy más), külön táblákkal a Termék, Rendelés, és Készlet számára.
- API réteg: Hagyományos szerveroldali API, például Express.js, Django vagy egyéb segítségével.
- Üzleti logika: A monolitikus alkalmazás belső logikáját közvetlenül kezeli a szerver (például controller függvényekben).
- Értesítések: E-mail értesítések, amelyek az SMTP protokoll vagy más egyedi rendszerek segítségével kerülnek kiküldésre.
Szempontok ami alapján összehasonlíthatók
Szempont | Serverless | Monolitikus |
---|---|---|
Struktúra | Funkció-alapú, moduláris komponensek | Egységes, összefüggő alkalmazás |
Fejlesztés | Komplexebb tervezést igényel már a kezdetektől | Egyszerűbb indulás, kisebb csapatoknak ideális |
Skálázhatóság | Automatikus, finomhangolt skálázás a forgalom alapján | Korlátozott, manuális vagy nehézkes skálázás |
Hibatűrés | Egy komponens hibája nem feltétlen érinti a többit | Egyetlen hiba az egész rendszert megbéníthatja |
Telepítés | Különálló komponensek önállóan deployálhatók | Az egész alkalmazást egyben kell telepíteni |
Karbantartás | Egyes funkciók külön-külön frissíthetők | Egységes kódbázis, de nehézkes refaktorálás |
Költségek | Igény szerinti fizetés, de rejtett költségek előfordulhatnak | Állandó erőforrások, előre kalkulálhatóbb költségek |
Monitorozás | Részletes és pontos, de komplex és külön eszközöket igényel | Egyszerűbb, mivel minden egy helyen történik |
1. Költségek összehasonlítása
Forgalmi feltételezések / hó:
50,000 látogatás
10,000 hitelesített felhasználó
5,000 rendelés
100,000 API hívás
10 GB adatforgalom frontendből
5 GB adat a backend és DB között
10 admin értesítés/nap (300/hó)
A minta serverless app - havi költségbecslés:
Szolgáltatás | Költség | Megjegyzés |
---|---|---|
S3 (statikus frontend) | $0.50 | 10 GB storage + 10 GB outgoing |
CloudFront (opcionális CDN) | $2.00 | Ha használsz CDN-t (Content Delivery Network) |
Cognito | $8.00 | 10k MAU alatt ingyenes, de SMS/extra feature miatt hozzáadva |
DynamoDB | $10.00 | ~500K olvasás, 100K írás, 1 GSI |
Lambda | $3.00 | 100,000 hívás, 512MB memória, 200ms |
API Gateway (REST) | $3.50 | 100K REST API hívás |
SNS (email értesítések) | $0.15 | ~300 email/hó (küldés: $0.0001/db) |
Összesen (hó) | ~$27.15 | Skálázható, fizetés használat után |
A minta monolitikus app (EC2-alapú) - havi költségbecslés:
Szolgáltatás | Költség | Megjegyzés |
---|---|---|
EC2 instance (t3.medium) | $32.00 | 24/7 futás, 1 gép |
EBS (20 GB SSD) | $2.00 | Adattárolás |
RDS (MySQL db.t3.micro) | $15.00 | Alap DB kapacitás, 20 GB |
Adatforgalom (15 GB) | $1.50 | AWS-nél 1 GB ingyenes, utána ~$0.09/GB |
SMTP/email szolgáltatás | $0 – $5 | Ha pl. SES-t használsz |
Összesen (hó) | ~$50 – $55 | Folyamatos futás, nehezebb skálázás |
Összesítés:
Típus | Becsült havi költség (nettó) |
---|---|
Minta Serverless app | ~$27 |
Minta Monolitikus app (EC2) | ~$50–55 |

Konkluzió:
A minta Serverless app sokkal alacsonyabb költségeket mutat az alacsony és közepes forgalomnál, míg a minta Monolitikus app jelentősebb fix költségekkel rendelkezik, főként az EC2 és RDS példányok miatt.
Megjegyzés: A korábban számolt AWS költségek nettó árak voltak, vagyis ÁFA nélkül. Ez azért van, mert:
Az AWS hivatalos árazása alapértelmezetten nettóban van megadva.
Az ÁFA mértéke országonként változik, és csak a számlázáskor kerül rá a végösszegre.
Cégeknek (különösen EU-s adószámmal rendelkező vállalkozásoknak) fordított adózás is élhet, tehát nem feltétlenül fizetnek ÁFÁ-t az AWS felé.
2. Teljesítmény összehasonlítása
A teljesítmény értékelés az általam összerakott architektúra csomagokra vonatkozik. Ezek az értékek más architektúra megoldásokkal új, eltérő eredményeket adhatnak!
Kritérium | Minta Serverless App | Minta Monolitikus App (EC2) |
---|---|---|
Skálázódás | [10] - Automatikus skálázás (Lambda, DynamoDB, API Gateway) | [6] - Manuális skálázás (EC2 méretezés, load balancer szükséges) |
Hidegindítási idő | [7] - Lambda cold start lehet, főleg ritkán hívott függvényeknél | [9] - Folyamatosan fut, nincs cold start |
Válaszidő | [7] - Átlagosan gyors (~50 ms) | [9] - Lehet gyors, de terhelés alatt nőhet |
Rendelkezésre állás (HA) | [9] - Magas: AWS SLA-k (pl. S3, Lambda, DynamoDB 99.99%) | [6] - Egyszerű beállításnál single point of failure |
Hibatűrés | [9] - Különálló komponensek, jól izolálható hibák | [6] - Egy hiba az egész rendszert befolyásolhatja |
Adatbázis teljesítmény | [9] - DynamoDB gyors, de komplex lekérdezések nehezek | [9] - RDS: erős relációs lekérdezések |
API teljesítmény | [9] - API Gateway gyors és skálázható, throttling szabályozható | [6] - Egyedi API: függ a szerver teljesítményétől |
Karbantarthatóság | [9] - Mikroszolgáltatások, jól izolálható | [5] - Monolit: nehéz kódfrissítés, telepítés |
Fejlesztői élmény | [7] - Komplex, több szolgáltatás | [8] - Egyszerűbb lokális fejlesztés |
Bevezetési idő | [5] - Több komponens, komplex infrastruktúra | [8] - Gyorsabb kezdeti kiépítés |
Biztonság | [9] - Beépített IAM, Cognito, jól szabályozható jogosultság | [6] - Egyedi megoldások, nagyobb hibalehetőség |
Monitoring & Logging | [9] - CloudWatch integráció minden komponensre | [5] - Külön logkezelés (pl. saját ELK stack) |
DevOps / CI/CD | [9] - Teljesen automatizálható (pl. SAM, CDK) | [5] - Manuálisabb telepítés jellemző |
TCO (Total Cost of Ownership) | [9] - Alacsonyabb fenntartási költség, kevesebb ops munka | [5] - Magasabb TCO, több infra-kezelés |

Konkluzió:
Jól látszik, hogy a minta Serverless app megoldás több területen jobban skálázódik és üzemeltethetőbb, míg a minta Monolitikus app a gyorsabb bevezetés és klasszikus adatbázis-teljesítmény terén erősebb.
Rövid értékelés:
Szenárió | Ajánlott architektúra |
---|---|
Kis-közepes skálázódás, alacsony üzemeltetési költség | Minta Serverless app |
Nagy relációs adatkezelés, komplex lekérdezések | Minta Monolitikus app / RDS |
Gyors prototípus, egyszerű deployment | Minta Monolitikus app |
Hosszú távú skálázható fejlesztés | Minta Serverless app |
Összefoglaló
A választás, hogy a serverless vagy a monolitikus megközelítést alkalmazzuk, számos tényezőtől függ, beleértve a projekthez való illeszkedést, az erőforrásokat, és az üzleti igényeket. A serverless megoldások lehetőséget adnak a gyors fejlődésre és a költségek dinamikus kezelésére, miközben a monolitikus rendszerek továbbra is előnyösek lehetnek kisebb és stabilabb alkalmazások esetén.
Egyik megoldás sem “jobb” a másiknál, csupán más környezetekben és különböző célokhoz alkalmazhatók jobban. A legfontosabb, hogy pontosan mérd fel a projekted jövőbeli növekedési igényeit, a csapatod erőforrásait és a költségvetést, hogy a legjobb döntést hozhasd meg a technológiai alap kiválasztásakor.
Az új technológiák és megoldások folyamatos fejlődésével mindkét architektúra helyet kaphat különböző projektekben, és a jövőben egyre több vállalkozás fog hibrid vagy multicloud megoldásokat alkalmazni a legoptimálisabb eredmények elérésére.
Serverless (AWS):
- A serverless architektúrák folyamatos fejlődése és az AWS szolgáltatások bővítése újabb lehetőségeket kínál a fejlesztőknek és vállalkozásoknak. Ahogy a technológia fejlődik, az egyes szolgáltatások, mint például a Lambda, DynamoDB, és API Gateway egyre jobb integrációkat kínálnak.
- A jövőben a multicloud és a hybrid cloud megoldások elterjedésével a serverless architektúrák valószínűleg még nagyobb szerepet kapnak, lehetővé téve a különböző felhőszolgáltatók közötti zökkenőmentes integrációt.
- A konténerizáció és a FaaS (Function-as-a-Service) növekvő népszerűsége a serverless alkalmazások rugalmasságát és skálázhatóságát tovább javítja, míg a költségek és az erőforrás-használat optimalizálása folyamatosan fejlődik.
Monolitikus alkalmazások:
- Bár a monolitikus megközelítés előnyei, mint például a nagyobb kontroll és az egyszerűbb hibakezelés továbbra is fontosak, egyre több vállalkozás és fejlesztő hajlik a microservices és vagy a serverless megoldások felé, mivel ezek a modern igényekhez jobban alkalmazkodnak.
- A monolitikus rendszerek is fejlődnek, különösen azok az alkalmazások, amelyek az on-premise (helyben telepített) megoldásokra építenek, és ahol a skálázás, a komplex infrastruktúra kezelése, és az erőforrás optimalizálás továbbra is kulcsfontosságú. A jövőben az on-premise alkalmazások esetében is egyre nagyobb hangsúlyt kaphatnak a konténerizált megoldások, amelyek a monolitikus rendszerek rugalmasságát és skálázhatóságát növelhetik.
- Az Edge Computing elterjedése, amely a felhőtől távoli, lokális számítási erőforrásokat használ, lehetőséget ad a monolitikus alkalmazások számára is a hibrid architektúrák kiépítésére, amelyek jobban illeszkednek az új igényekhez.
A jövő: hibrid megoldások
- A hybrid cloud és multicloud architektúrák integrálása lehetővé teszi a szervezetek számára, hogy kihasználják mind a serverless, mind a hagyományos monolitikus megoldások előnyeit.
- Az olyan technológiai fejlődések, mint a konténerek és az orchestration tools (például Kubernetes), lehetővé teszik, hogy a vállalatok keverjék és illesszék a különböző architektúrákat a különböző igényekhez és költségvetéshez, ami még nagyobb rugalmasságot és skálázhatóságot biztosít a jövőben.
- A vállalkozások számára a legfontosabb trend a minimális költségű skálázhatóság, az automatizálás, és a biztonság hatékony kezelése. A fejlesztési folyamatok folyamatos optimalizálásával és a legújabb eszközök és technológiák használatával mind a serverless, mind a hagyományos megoldások hosszú távon fenntarthatók és eredményesek maradhatnak.
Döntés előtt állsz vagy kérdésed van? Foglalj egy ingyenes konzultációt és nézzük meg, hogy a Code Factory csapata miben tud segíteni neked / nektek!
Köszönöm, hogy elolvastad! Reméljük tetszett! Ha kiváncsi vagy miben tudunk segíteni neked nézz körül a szolgáltatásaink között!
Ha részletesebben is érdekel az AWS szolgáltatásaival kapcsolatos téma, töltsd le az ingyenes e-book-unkat.