Röviden: A peremszámítás gyors és közel van a felhasználóhoz, de a korlátok szigorúak. A feladat típusa dönti el, a könnyű CloudFront Functions vagy a teljesebb Lambda@Edge kell-e.
A peremszámítás (edge computing) ígérete csábító: futtass kódot a felhasználóhoz földrajzilag közel, a tartalomelosztó hálózat peremén, így minimális a késleltetés. A CDN-hez két különböző peremfuttatási lehetőség kapcsolódik — a könnyű CloudFront Functions és a teljesebb Lambda@Edge —, és a kettő összekeverése gyakori hiba. Mindkettőnek megvan a helye, de más feladatra.
Miért futtatnánk kódot a peremen?
A perem közel van a felhasználóhoz, tehát az itt futó logika azonnal, hálózati körutazás nélkül lefut. Tipikus feladatok: kérések átírása, átirányítás, egyszerű hitelesítés-ellenőrzés, fejlécek manipulálása, egyszerű A/B-elosztás. Ezeket a peremen elvégezni gyorsabb, mint az origin-ig elküldeni.
A könnyű opció: CloudFront Functions
A CloudFront Functions egy nagyon könnyű, korlátozott futtatókörnyezet, ami rendkívül gyors és olcsó, de szigorú korlátokkal: rövid végrehajtási idő, kevés erőforrás, korlátozott képességek (például nincs hálózati hívás). Pont ezért ideális az egyszerű, gyors feladatokra: fejléc-módosítás, egyszerű átirányítás, kulcs-alapú kérésvalidáció. Ha a feladat belefér, ez a leghatékonyabb.
A teljesebb opció: Lambda@Edge
A Lambda@Edge egy teljesebb futtatókörnyezet a peremhez közel: több erőforrás, hosszabb végrehajtási idő, gazdagabb képességek, akár hálózati hívás. Cserébe nehezebb és valamivel lassabban indul. Akkor kell, amikor a peremlogika túl összetett a könnyű opcióhoz — például külső adatot kell lekérnie vagy bonyolultabb feldolgozást végezni.
A döntési kép
| Feladat | Könnyű (CloudFront Functions) | Teljes (Lambda@Edge) |
|---|---|---|
| Fejléc-módosítás, átirányítás | Ideális | Túlzás |
| Egyszerű kérésvalidáció | Ideális | Túlzás |
| Külső adat lekérése | Nem képes | Kell |
| Összetett feldolgozás | Korlátozott | Alkalmas |
| Sebesség/költség | Legjobb | Nehezebb |
A perem korlátai, amikre figyelni kell
A peremszámítás nem csodaszer. A szigorú végrehajtási korlátok miatt nem való nehéz feldolgozásra; a hibakeresés nehezebb, mert elosztottan, sok helyen fut; és a telepítés-terjesztés is más ritmusú, mint egy központi függvényé. A peremre csak azt tedd, aminek tényleg ott a helye — a súlyos üzleti logika maradjon az originhez közelebb, tesztelhető környezetben.
A két motor szétválasztása
A peremhez két különböző futtatási lehetőség kapcsolódik, és ezek összekeverése gyakori hiba. A CloudFront Functions egy nagyon könnyű, korlátozott környezet: rendkívül gyors és olcsó, de szigorú korlátokkal (rövid végrehajtási idő, kevés erőforrás, nincs hálózati hívás). A Lambda@Edge teljesebb: több erőforrás, hosszabb idő, gazdagabb képességek, akár hálózati hívás — cserébe nehezebb és lassabban indul.
A kettő nem egymás alternatívája minden feladatra, hanem különböző súlyú eszköz. A feladat típusa dönti el, melyik kell.
A feladat típusa dönt
Az egyszerű, gyors feladatok — fejléc-módosítás, egyszerű átirányítás, kulcs-alapú kérésvalidáció — a könnyű CloudFront Functions-be valók. Ha a feladat belefér, ez a leghatékonyabb. Az összetettebb logika — külső adat lekérése, bonyolultabb feldolgozás — a teljesebb Lambda@Edge-et igényli.
- Fejléc, átirányítás, egyszerű validáció → könnyű motor.
- Külső hívás, összetett feldolgozás → teljes motor.
A perem korlátai
A peremszámítás nem csodaszer. A szigorú végrehajtási korlátok miatt nem való nehéz feldolgozásra; a hibakeresés nehezebb, mert elosztottan, sok helyen fut; és a telepítés-terjesztés is más ritmusú. A peremre csak azt tedd, aminek tényleg ott a helye — a súlyos üzleti logika maradjon az originhez közelebb, tesztelhető környezetben. A peremre az való, aminek a gyorsaság és a felhasználóhoz való közelség a lényege.
A telepítés és a terjesztés
A peremen futó kód telepítése más ritmusú, mint egy központi függvényé: a kód sok földrajzi ponton, a CDN peremhálózatában terjed szét, ami időbe telik. Ezt tervezni kell, különösen a hibajavításnál — egy hibás peremfüggvény visszavonása sem azonnali, mert a terjesztésnek is le kell futnia. A könnyű motornál ez jellemzően gyorsabb, a teljesebbnél lassabb. Ezért is érdemes a peremre csak a stabil, jól tesztelt logikát tenni, és a gyakran változó, kísérleti kódot az originhez közelebb tartani, ahol a telepítés és a rollback kiszámíthatóbb.
Mit jelent ez neked?
A peremszámítás a felhasználóhoz közeli, gyors feladatokra való: átirányítás, fejléc-manipuláció, egyszerű validáció. Két eszközöd van: kezdd a könnyű, gyors CloudFront Functions-szal az egyszerű feladatokra, és csak akkor válaszd a teljesebb Lambda@Edge-et, ha a logika túl összetett (például külső hívás kell). Ne tedd a perem korlátozott környezetébe a nehéz üzleti logikát — a peremre az való, aminek a gyorsaság és a közelség a lényege, a többi maradjon központibb, tesztelhetőbb helyen.