„GAMF::Felhőalapú-szolgáltatások::Előadás” változatai közötti eltérés
Nincs szerkesztési összefoglaló |
|||
| 146. sor: | 146. sor: | ||
== SLA == | == SLA == | ||
= | = Adatközpontok belső hálózata = | ||
'''''Oldalszám: 175-212.''''' | '''''Oldalszám: 175-212.''''' | ||
= Erőforrás virtualizálás = | = Erőforrás virtualizálás = | ||
'''''Oldalszám: 135-173.''''' | '''''Oldalszám: 135-173.''''' | ||
A lap 2023. augusztus 21., 07:54-kori változata
Bérelt szervertől (VPS) a felhő megoldásokig
A legalapvetőbb feladat, amit egy szerverre szeretnénk bízni, hogy szolgálja ki a weboldalunkat. Szerencsére ehhez ingyenesen elérhető tárhelyek is rendelkezésünkre állnak, mint például a nethely. Az ingyenes változatok gyakran reklámokkal tűzdelik tele weboldalunkat és/vagy olyan tárhely korlátokkal vehetjük igénybe, amelyekkel egy komolyabb alkalmazás esetén nem ússzuk meg a fizetős változatok megrendelését. Azonban jó ha tudjuk, hogy ezek a szolgáltatások főleg PHP alkalmazások futtatására alkalmasak, a ma népszerű NodeJS kódokat nem tudják futtatni.
VPS
Ha nem csupán egy tárhelyet szeretnénk bérelni - ennek oka lehet, hogy nem tudja a tárhely szolgáltató futtatni alkalmazásunkat (pl. NodeJS), vagy annyira komplikált/bonyolult az üzemeltetése, hogy nem fér bele a sablonos keretekbe -, akkor bérelhetünk virtuális szervereket is: VPS-t (Virtual Private Server). Ekkor egy virtuális „vasat” kapunk, amire korlátozott, de széles választékból telepíthetünk operációs rendszert és kedvünk szerint konfigurálhatjuk azt. Ez a legelterjedtebb megoldás, azonban ezen szolgáltatásoknak is meg vannak a szintjei:
- VPS bérlés - a fent említett módon, virtuális környezetben létezik szerverünk
- Dedikált szerver - Egy komplett szerverhez kapunk hozzáférést. Többnyire igen drága szolgáltatás.
A szolgáltató ezeket a rendszereket általában monitorozzák, illetve webes felületet biztosítanak, hogy újra tudjuk indítani/telepíteni, távoli asztallal rá tudjunk csatlakozni stb. A rendszert azonban nekünk kell karbantartanunk, így a vírusok, támadások ellen többségében nekünk kell kivédenünk (természetesen egy valamirevaló szolgáltató rendelkezik IDS/IPS rendszerekkel, de ügyeljünk rá, hogy ezek nem adnak százszázalékos védelmet). Ilyenkor mi telepítjük fel és frissítjük a webkiszolgálót, az adatbáziskezelőt, amennyiben szükségünk van rá és az alkalmazáshoz szükséges minden csomagot nekünk kell naprakészen tartanunk.
Saját globális hálózat
Míg egy kis cégnek elegendő egyetlen VPS, amelyen fut a webkiszolgáló és az SQL szerver is, egy nagyobb cégnek, gyakrabban látogatott alkalmazásoknak célszerű szét darabolni az elemeit - külön SQL szerver, külön fájl szerver és külön kiszolgáló. Ennek a háromnak folyamatosan kommunikálni kell egymással (lényeges a közöttük kialakított hálózat minősége), de egy támadás a webkiszolgáló felé valószínűleg nem fogja elérhetetlenné tenni a fájlszerverünket és az adatbázisunkat, ezzel együtt pedig az adatokat is megvédtük a behatolók elől. Ezzel le is írtunk egy mini felhőt. Sok alkalmazás esetében azonban ez sem volt elegendő: hol adatvédelmi okból, hol a rendelkezésreállás javítása miatt clustereket hoztak létre, esetleg datacentereket létesítettek a világ több pontján. Ezek gyakorlatilag egyeznek a ma privát felhőként emlegetett megoldással, komplexitásuk megközelíti a ma igénybevehető szolgáltatások mögött található rendszerek bonyolultságát.
Felhőszolgáltatás
A fentebb említett cluster illetve datacenter kialakítások igen költségesek. Mivel a szolgáltatók ezeket már kiépítették világszerte, így célszerű ebbe bekapcsolódni ahelyett, hogy a sajátunkat kezdenénk el megtervezni. Egy szolgáltatás igénybevételével hozzáférhetünk a teljes hálózathoz, így például nagyon egyszerűen biztosíthatjuk, hogy Amerikában ugyanolyan gyorsan töltsön be weboldalunk, mint Magyarországon - természetesen nem ugyanarról a szerverről. Emlékezzünk vissza, hogy ezekkel a tulajdonságokkal régebben nagyon kevés cég (Google, Microsoft) rendelkezett és csakis azért kezdtek el adatközpontokat létesíteni a világ más pontjain, hogy ne kelljen az óceán fenekén húzódó optikai kábeleken szabad időablakra várakoznunk például Európából, amikor a weboldalukat akarjuk böngészni. Ha ma megnézzük az elérhető felhőszolgáltatókat, akkor pontosan ezeket a „mamut cégeket” fogjuk megtalálni a piacon.
Ritka ugyan, de manapság is előfordul, hogy saját felhőt alakítanak ki maguknak cégek: például a Facebook eleinte az Amazon Web Services hálózatát használta fel, hogy a világ minden táján elérhető legyen, de mára saját infrastruktúrát épített ki.
A felhőszolgáltatások előnyei egyben hátrányként is szolgálnak:
- A felhőben általában csak az elhasznált erőforrásokért fizetünk (gyakran idő alapon) - ez gyakorlatilag nagyon nehézzé teszi a költségtervezést
- A felhő biztosítja számunkra, hogy az adataink mindig elérhetők legyenek - nem tudják garantálni, hogy az adatok csak egy földrészen legyenek tárolva, hiszen az egész koncepció az adatok szétszórására épül, így lesz az adatvesztés lehetősége relatíve 0 (ez azért érdekes, mert az EU kiköti, hogy az EU polgáraihoz köthető adatok csak az EU területén üzemelő szervereken tárolhatók, így egy bizalmas adatokat tároló cég [pl. bank] nem helyezheti ki azokat a felhőszolgáltatóhoz az erre vonatkozó garancia hiányában).
Érdemes azt is megjegyezni, hogy az alacsony költségek igen relatívak. Sok cég még ma sem engedheti meg magának, a felhőbe költöztesse az alkalmazásait. Ennek egyik oka az említett adatbiztonsági szabályozás az EU tagjaként, de benne lehet a bizalmatlanság és a vélt forgalomhoz becsült árak és a szintén említett kiszámíthatatlanság. Sok cégnek még ma is jobban megéri egy VPS szolgáltatást igénybe venni, főleg ha nem akar a határokon kívülieket megszólítani. Az alacsony költségek főleg ott értelmezhetők, ahol speciális eszközök (TensorCore, GPU) kellenek rövid időre, illetve a cég felhőszolgáltató hiányában saját globális hálózatot építene ki magának a Google-höz és a Microsoft-hoz hasonlóan.
Ajánlott VPS szolgáltatók
A szolgáltatás árak egy cég számára talán nem magasak, ám egy tanuló informatikus számára, aki csupán azért szeretne bérelni egy szervert, hogy kipróbálja az iskolában tanultakat (esetleg máshol olvasottakat), neki minden fillér számítani fog. Amennyiben az egy éves próbaidőszakon túl is szeretnél szerverekkel, azok konfigurációjával foglalkozni, akkor a következő szolgáltatókat ajánlom figyelmedbe:
- Contabo - egy német cég, igen alacsony bérleti árakkal (évi 20.000HUF kb., természetesen Euróban). Hátránya, hogy Németországban lesz a szervered, ami földrajzilag távol esik, főleg ha VPN szerű alkalmazásokkal is próbálkozni szeretnél. Hozzá kell tenni, hogy a BIX (Budapest Internet Exchange), ami Magyarország fő kilépési pontja a világháló felé, Frankfurtból kapja szolgáltatását. Innen nézve Németország nincs is olyan messze...
Alkalmazások, amelyek segítségével felügyelhetjük a szerverünket
Az alkalmazások a felhőben létrehozott IaaS szolgáltatásokra is telepíthetők
- Zabbix - Telemetria rendszer, amely alkalmas konténerek és alkalmazások monitorozására a szerver alapvető (CPU, RAM, HDD) tulajdonságain túl.
- Ngios - a Zabbixhoz hasonló Telemetria rendszer
- OpenVAS - A szerveren futó alkalmazások verziószámát összeveti a CVE adatbázissal (pl. cve.mitre.org és naplózza a talált hibákat. Segítségével értesülhetünk a hibákat tartalmazó szoftvereinkről és még idejében frissíthetjük, lecserélhetjük azokat, mielőtt egy hacker találna rá. Nagyon fontos, hogy az információkat bejelentkezés nélkül szedi össze, tehát csupán a publikum számára is elérhető információk alapján keres. További információkért keresd fel az nmap scripts oldalt.
Felhő ökoszisztéma
Oldalszám: 13-40.
A skálázásnak mélyreható következményei vannak a menedzsmentet tekintve: egyik oldalon a rendszernek rugalmasnak kell lennie, tudnia kell kezelni a hirtelen megnövekvő terhelést is; míg a másik oldalon optimalizálnia kell az energiafelhasználást. Természetesen ezeket a nehézségeket el kell rejteni a felhasználó elől egy jól átlátható, könnyen használható felület mögé.
Szolgáltatási szintek
IaaS, azaz Infrastructure as a Service
Ez a szolgáltatásszint a tárhelyet, hálózatot és egyéb alapvető számítási erőforrásokat foglal magában. Ez esetben a bérlő természetesen nem fér hozzá a felhő belső infrastruktúrájához, de testreszabhatja a vásárolt virtuális gép erőforrásait: tárhelyméret, CPU, memória, operációs rendszer, terhelés elosztás (...) és saját virtuális hálózatot, internet kilépési pontot konfigurálhat köré. Ez a szolgáltatásszint hasonlít a korábban tárgyalt VPS-hez. A modell akkor lehet hasznos, ha egy induló vállalkozásnak számítási kapacitásra van szüksége, de nem akar saját szervereket karbantartani, vagy ha a szervezet gyorsan növekszik.
PaaS, azaz Platform as a Service
Lehetővé teszi, hogy a bérlő saját alkalmazásokat futtasson a felhőben, természetesen azzal a megkötéssel, hogy a szolgáltató támogatja az adott programkészletet. Ebben az esetben a bérlőnek nem kell üzemeltetési kérdésekkel foglalkoznia - operációs rendszer, CPU, memória, tárhely, hálózat (...) - csupán a saját programjára és az ahhoz kapcsolódó konfigurációs lehetőségekre kell koncentrálnia. Ez a szolgáltatásszint nem ésszerű választás, ha az alkalmazásnak hordozhatónak kell lennie, ha szabadalom alatt álló programozási nyelvet használunk vagy ha az alkalmazás erőforrásait konfigurálni szeretnénk. Gyakran szoftverfejlesztők használják, amikor több fejlesztő dolgozik együtt és mind a fejlesztési mind a tesztelési szolgáltatásokat automatizálni kell.
SaaS, azaz Software as a Service
A szolgáltatások ezen szintjén sem az alkalmazás kódját, sem az alatta futó infrastruktúrát nem ismerjük. Tipikus példa az email vagy a keresés, ahol használjuk az alkalmazást, esetleg testreszabhatjuk (kinézet, logó, név stb.), de többnyire nem rendelkezünk információkkal (vagy teljesen lényegtelen a használat szempontjából), hogy milyen programnyelven készültek és milyen közegben működnek. Lehetnek ilyen alkalmazások továbbá asztali / telefonos alkalmazások, de például számlázó végpontok is. Fontos figyelembe venni, hogy a felhőbe érkező kérések nem valósidőben kerülnek feldolgozásra, így csak azon programok esetén használható, amelyek ezt nem követelik meg.
DBaaS, azaz Database as a Service
Ez a szolgáltatás garanciát ad azonnali skálázhatóságra, teljesítményre; a legújabb technológiákat használja és rendelkezik hibakezeléssel. A legfontosabb tulajdonságai:
- Self-service: különösebb konfigurálás nélkül elindítható. Nem csökkentett teljesítménnyel rendelkezik és nincs telepítési díj.
- Eszköz és helyfüggetlen adatbázis erőforrás
- Rugalmasság és skálázhatóság
- Annyit fizetsz, amennyit használsz
- Zökkenőmentes váltás a verziók / technológiák között
A szolgáltatás réteges architektúrát alkalmaz:
- UI réteg: interneten keresztül elérhetővé teszi a szolgáltatást
- Alkalmazás réteg: A szoftver szolgáltatásait és a tároló réteget is eléri
- Adatbázis réteg: hatékony és megbízható szolgáltatást nyújt - például menti az utolsó lekérdezéseket, hogy ismétlődés esetén ne kelljen újra lefuttatnia azokat
- Adat tároló réteg: adatok titkosítása, biztonsági mentések és lemezfigyelők találhatók itt
IaC, azaz Infrastructure as Code
Az infrastukrúra vezérlése magas szintű leírónyelv segítségével. Egy erre alkalmas alkalmazások mikroarchitektúrára épülnek, ahol az egységek külön-külön konténerekbe vannak csomagolva. A IaC segítségével megadhatjuk, hogy mit szeretnénk elindítani, szabályokat definiálhatunk az egységek közötti kommunikációt illetően, az annak megfelelő struktúra pedig megjelenik a felhőben. A legsűrűbben használt eszköz az Ansible és a Terraform.
Összefoglalás
| SaaS | PaaS | IaaS |
|---|---|---|
| Felhaszálói hozzáférés | Felhaszálói hozzáférés | Felhaszálói hozzáférés |
| Adatok | Adatok | Adatok |
| Alkalmazások | Alkalmazások | Alkalmazások |
| Operációs rendszer | Operációs rendszer | Operációs rendszer |
| Hálózati forgalom | Hálózati forgalom | Hálózati forgalom |
| Hypervisor | Hypervisor | Hypervisor |
| Infrastruktúra | Infrastruktúra | Infrastruktúra |
Felhők típusai
Privát felhő
Az adatok nincsenek megosztva harmadik féllel, a kontrollt teljes egészében a struktúrát kialakító rendszergazda kezében van. Természetesen nem korlátozódik a cég helyszínén üzemeltetett szerverekre a fogalom, szóba jöhetnek harmadik féltől bérelt VPS, VDS, de komplett bérelt szerverek is, de általában az eszközök VPN alagúton keresztül cserélnek információt, ezzel védve az adatokat.
Publikus felhő
Az adatokat egy harmadik fél által kialakított hálózaton keresztül használjuk, ami a csomagokat a publikus IP hálózaton keresztül továbbítják egymás között. Óriási előnye, hogy nincs üzemeltetési költsége a szolgáltatást igénybe vevőnek, általában a CPU idő után kell fizetni, tehát flexibilis költséget hoz magával.
Hibrid felhő
A publikus és a privát felhő kombinációja, így a kiemelt biztonságot igénylő adatok nem kerülnek ki az internetre, míg a kevésbé érzékeny adatok továbbíthatók a publikus felhő segítségével, ezzel kihasználva annak minden előnyét.
AWS szolgáltatásai
Az AWS első körben IaaS szolgáltatásokat nyújt, nagy sebességű hálózaton összekötött feldolgozóegységet és tárolóegységeket tartalmazó infrastruktúrát és az ezeket támogató szolgáltatáshalmazt kínál.
Feldolgozás, adattárolás és kommunikációs szolgáltatások
Elastic Compute Cloud (EC2)
Egy szolgáltatás, amely egyszerű felület segítségével teszi lehetővé, hogy szerver példányokat futtassunk a felhőben. Létrehozáskor meg kell adnunk az operációs rendszert, amely lehet Linux alapú, OpenSolaris, FreeBSD, NetBSD, de akár a Windows Server különböző verziói közül is választhatunk. Szintén ki kell választanunk, hogy melyik régióban és melyik rendelkezésreállási zónában szeretnénk futtatni, ahogy az erőforrásigény szerint létrehozott különböző típusok közül is választatnunk kell. A nagyobb teljesítmény magasabb költségekkel rendelkezik.
A létrehozott szerver rendelkezik belső és külső IP címekkel és a hozzájuk tartozó domain nevekkel is. Ezeket a címeket leállításkor elveszíti és újraindításkor kap újat. A címek tehát dinamikusak, ami egy szerver esetében ritka jelenség. Van lehetőségünk azonban statikus IP címek igénylésére is, ahol a költségekre vonatkozóan az a szabály, hogy amíg használatban van, addig nincs plusz költsége, de minden olyan lefoglalt darabért fizetünk, ami nincs egyetlen futó szerverhez sem csatolva. Az IP címtartományok zónánként változnak.
A szerver példányok létrehozhatók előre definiált képfájlokból - Amazon Machine Image (AMI) -, vagy egy a felhasználó által létrehozott készletből. Az AMI képfájlok másolatot készítenek egy meglévő rendszerről - könyvtárak, applikációk, amelyeket a felhasználó saját maga telepített fel - kivéve a alsóbb szintű konfigurációs paramétereket, mint például a hostname vagy a MAC címek.
Egy EC2-ben létrehozott szerver interakcióba léphet egyéb más szolgáltatásokkal is, mint például S3, EBS, Simple DB stb.
Simple Storage System (S3)
Nagy objektumok tárolására alkalmaz szolgáltatás. A minimálisan szükséges funkciókkal rendelkezik: írás, olvasás és törlés. A szolgáltatás lehetővé teszi egy alkalmazás számára, hogy korlátlan mennyiségű objektumot kezeljen 1 bájt mérettől egészen 5 terabájtig. Az objektumok úgynevezett bucket-ban tárolódnak, amelynek egyedi azonosítója van és a felhasználó által kiválasztott régióban helyezkedik el. Az objektumokhoz állíthatunk be hozzáférési listát (ACL), amellyel kontrollálhatjuk, hogy ki milyen fájlokhoz, milyen módon férhet hozzá. Elérését egy REST illetve egy SOAP API biztosítja. Alapvetően HTTP alapon működik, de akár BitTorrent hozzáférés is elérhető. Az egyes fájlokhoz MD5 hash készül, így letöltés után ellenőrizhető a fájlok helyessége.
Elastic Block Store (EBS)
Tartós tár, amelyet az EC2-höz csatolva használunk: egy fizikai lemezként megjelenő meghajtó. Mérete 1 gigabájttól 1 terabájtig állítható. A meghajtók a rendelkezésreállási zónán belül csoportosításra kerülnek, majd replikációkat hoznak létre az egyéb zónákban. Egy EC2 több EBS-t is használhat, de egy EBS csak egy EC2-höz lehet aktívan hozzárendelve. Használható pillanatképek létrehozására egy szerverpéldányból, hogy később ezt felhasználva új EC2 példányt indíthassunk belőle.
Simple DB
Nem relációs adatbázis séma, amely web szolgáltatásokon keresztül teszi lehetővé a fejlesztők számára az adatok manipulálását. A szolgáltatás több, földrajzilag távol eső helyeken másolatot készít. Támogatja a nagy teljesítményigényű alkalmazásokat. Automatikusan skálázza a használat alapján az erőforrásokat, a táblában található indexeket és kezeli az adatbázis replikációkat.
Simple Queue Service (SQS)
Szolgáltatások szinkronizációjára szolgáló üzenetsor, amelybe bejelentkezés nélkül lehet adatokat küldeni. Az üzenetsorok megoszthatók különböző regisztrációk között is. Az egyes üzenetek feldolgozás alatt zárolásra kerülnek, hogy elkerüljék azok többszöri feldolgozását. Amennyiben az üzenet feldolgozása valamilyen okból kifolyólag sikertelen eredménnyel zárul, akkor feloldják, ezáltal újra kivehető a sorból. A hozzáférés IP és idő alapon is tiltható.
CloudWatch
Egy monitorozó rendszer, amely telemetria adatokat gyűjt. Segítségével optimalizálható az alkalmazás. Anélkül, hogy a felhasználó bármit telepítene, tucatnyi metrika közül választhat, majd megtekintheti a hozzájuk tartozó grafikonokat. Az alap monitorozás ingyenes, amely 5 percenként gyűjt adatot, de készíthetünk bővebb, 1 perces mintavételezéssel is jelentést. A szolgáltatás monitorozza a az EBS elérésének idejét, az adatbázis hozzáférés idejét és az SQS-ben tárolt adatokat is és természetesen még sok egyéb paramétert.
Virtual Private Cloud
A szolgáltatás hídként szolgál a meglévő informatikai infrastruktúra és az AWS között. A meglévő infrastruktúra általában VPN kapcsolaton keresztül csatlakozik a felhőhöz egy jól meghatározott, elkülönített erőforrás csoporthoz. A VPC lehetővé teszi, hogy ezek közé tűzfalat, IDS-t telepítsünk, hogy zökkenőmentesen tudjanak együttműködni.
Auto Scaling
Az Auto Scaling segítségével megadhatunk olyan szabályokat, amelyek segítségével az erőforrásaink dinamikusan változnak. Csoportokat hozhatunk létre, amelyben monitorozhatjuk az EC2 példányainkat, majd triggerek segítségével újabb és újabb példányokat indíthatunk el vagy éppen állíthatunk le, annak függvényében, hogy a csoportban megszabott szabályok szerint az erőforrás kevés vagy sok. A csoportban szereplő EC2 példányokra állíthatunk be teszteket, aminek segítségével információt nyújthatunk a terheléselosztást végző Load Balancer szolgáltatásnak: így biztosíthatjuk, hogy csak olyan gépek szerepeljenek annak listájában, amelyek elérhetők. A leggyakoribb trigger a CPU: ha a csoport CPU kihasználtsága magas, akkor újabb EC2 példány indul, ami egyúttal csökkenti a csoport CPU terhelését. Ha a csoport CPU terhelése nagyon alacsony (pl. 0%), akkor kevesebb EC2 példány is képes kiszolgálni az aktuális forgalmat, tehát leállít egyet. A létrehozáskor megadhatjuk, hogy milyen értékek között változhat a példányok darabszáma.
Cloud Formation
Elastic Beanstalk
Lambda Service
Régiók és rendelkezésre állási zónák
AWS hálózatok
Átjárhatóság a felhőszolgáltatók között
SLA
Adatközpontok belső hálózata
Oldalszám: 175-212.
Erőforrás virtualizálás
Oldalszám: 135-173.
Adattárolás a felhőben
Oldalszám: 215-230.
Felhőbiztonság
Oldalszám: 257-291.