EDU::GAMF::Felhőalapú-szolgáltatások::AWS
Amazon Web Services regisztráció
Az AWS mindenki számára biztosít 1 év ingyenes próbaverziót. Ehhez regisztrálnunk kell a rendszerbe, amihez szükségünk lesz egy email címre, egy telefonszámra a megerősítéshez és egy netes vásárlásra alkalmas bankkártyára. A regisztráció során az AWS 1$-ral meg terheli a számlát, de később erre nem tart igény, így a tranzakció lejáratakor jóváíródik a számlán.
Ingyenes verzió korlátai
Az ingyenes verzióban nem minden érhető el és ami mégis, az sem korlátlan ideig (750 óra EC2 futási idő például), amit ha átlépünk, akkor fizetési kötelezettségünk jelentkezik a szolgáltató felé. Igyekezzünk mindent leállítani az órai munka illetve az otthoni gyakorlás után, hogy lehetőleg ne kerüljön pénzbe a féléves munkánk. A hallgatók által elszenvedett károkért sem az iskola sem Én nem tudunk felelősséget vállalni, de azt meg tudjuk ígérni, hogy fizetős szolgáltatást nem használunk és nem is kérünk számon.
Felhő alapok
Szolgáltatási szintek
A felhőszolgáltatások, így az AWS is, alapvetően 3 szolgáltatási szintet különböztetnek meg:
IaaS, azaz Infrastructure as a Service
Ez a legalacsonyabb szintű szolgáltatás. Ebben az esetben a szolgáltató infrastruktúráját vesszük igénybe: nem kell virtualizálással, szerverezéssel és L1-L2 szintű hálózati beállításokkal foglalkoznunk, ezt készen kapjuk. Efölött azonban mindenért mi, a vevő felelünk, tehát mi tartjuk karban az operációs rendszert, mi döntjük el, hogy milyen alkalmazásokat telepítünk rájuk és azok frissítését hogyan oldjuk meg; mi felelünk az alkalmazásunk működéséért. Például: EC2
PaaS, azaz Platform as a Service
Egy szinttel az IaaS felett van: csupán az applikációért és az adatok helyességéért felelünk, minden alsóbb szintet a szolgáltató tart karban. Hozzáférést is csak az applikációhoz tartozó eszközök segítségével kapunk, az alsóbb szinteket nem érjük el (nem tudunk be SSH-zni a szerverre pl.). Például: RDS
SaaS, azaz Service as a Service
Ez a legmagasabb szintű szolgáltatás. Ez esetben egy konkrét alkalmazást veszünk igénybe, tehát az alkalmazás és az annak működését biztosító adatok menedzselése is a szolgáltató hatáskörében marad. Tipikusan ilyen az email, a közösségi média, de ilyen lehet az Office 365 által kínált online tér is, ahol gyakorlatilag dokumentumot is tudunk szerkeszteni a gépre telepített alkalmazások nélkül is, online eszközökkel (bár ez nem AWS-en belüli példa, talán ezek a legismertebb szolgáltatások).
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 alapok
Figyelem! Az iskolai hálózatból csak az eu-west-1 és az eu-central-1, azaz Írország és Frankfurt IP címei vannak engedélyezve, ezekre fogunk tudni SSH kapcsolaton keresztül csatlakozni.
Figyelem! Próbaidőszak alatt minden szolgáltatás mellett keressük a Free tier eligible megjegyzést, különben fizetési kötelezettségünk adódhat!
EC2 szolgáltatásai
Az EC2 gyakorlatilag egy VPS-nek feleltethető meg és nem is tévedünk vele hatalmasat. A neve az Elastic Cloud Compute szavak kezdőbetűiből kialakuló ECC-ből fakad, a 2-es a végén jelzi, hogy a C betűből kettő van.
A különbséget a VPS-hez az EC2 futási ideje okozza: bár nem feltétlen, de meg van a lehetősége, hogy egyik napról a másikra megszűnjön egy EC2 úgy, hogy az alkalmazásunk mégis működőképes marad. E tulajdonsága miatt kapta az Elastic nevet, amit körültekintően kell kezelni: semmilyen adatot nem tárolhatunk úgy egy alkalmazáson belül, mint egy VPS esetén: a dinamikus adatok (pl. PHP Session, feltöltött fájok) egy EC2 csere esetén elvesznek, így ezeket nem helyben fogjuk tárolni.
Az EC2 szolgáltatásait a keresőmezőbe írt „EC2” kulcsszóval és az eredményekben megjelenő EC2-re való kattintással érhetjük el.
Az alapértelmezetten megjelenő menüpont a Dashboard, ahol információkat találhatunk az EC2 köré felhúzható szolgáltatásokról, melyeknek egy részét a továbbiakban tárgyalni is fogunk. Az összefoglaló táblázat az alább látható módon jelenik meg. Figyelem, a táblázat csak az adott régióban elindított/elérhető szolgáltatásokat mutatja, régió váltása előtt érdemes az esetlegesen létrehozott, régió függő elemeket leállítani, hogy később ne jelenjen meg fizetési kötelezettség.
EC2 telepítése és beállítása
EC2 létrehozásához meg kell nyomnunk a Launch instance gombot, melyet több helyen is elérhetünk:
- A Dashboardon
- A bal oldali menüben található Intances menüpont megnyitása után jobb felül
A gomb minden esetben a következőképp néz ki:
A gombra kattintva egy űrlap jelenik meg, amely segítségével elvégezhetjük a szükséges beállításokat:
Név és tag beállítok
Megadása nem kötelező, de több szerver futtatása esetén könnyebben azonosíthatjuk be őket ezek segítségével![]()
Az Add additional tags gombra kattintva további kulcs=érték párokat adhatunk hozzá, amivel dinamikusan csatolhatjuk össze egyéb szolgáltatásokkal, amelyek egy-egy kulcsot keresve döntik el, hogy melyik szolgáltatásokkal kell együttműködniük (például monitorozás bekapcsolása 'monitoring=true' kulcs=érték pár alapján.
Kezdeti képfájl kiválasztása
Az Amazon többféle indítóképpel is rendelkezik, így nagy valószínűséggel meg fogjuk találni a hozzánk közelálló operációs rendszert. Új hozzáadására nincs lehetőségünk, de készíthetünk az alapképfájlokból olyan verziót, ami már tartalmazza a saját konfigurációnkat (lásd itt).
Az órákon az Ubuntu legújabb verzióját használjuk, mivel ennek a Desktop változata az egyik legelterjedtebb a Linux felhasználók körében, így nem kell más környezetet megszoknia egy átlag hallgatónak. Érdemes lehet azonban egyéb disztribúciók kipróbálása is, különösen a Debian-t, Suse-t/OpenSuse-t, ReadHat-et és annak ingyenes változatait (AlmaLinux, RockyLinuxtm, amelyek az egykori CentOS-t hivatottak váltani), mivel céges környezetben ezek sűrűbben előfordulnak: némelyik a kisebb erőforrásigénye, míg másik az Enterprise szolgáltatásai miatt.
Szerver típusának meghatározása
Különböző erősségű szerverkonfigurációk közül választhatunk, de természetesen nem mindegyik érhető el az ingyenes verzióban. A számítógépek ára a konfiguráció függvényében változik, de csak azért az időért kell fizetni, amíg a szerver Running állapotban volt. Az órán az alapértelmezett t2.micro-t használjuk.
![]()
Kulcspár hozzárendelése
Az Amazonon belüli szolgáltatásokat felhasználónév/jelszó páros helyett SSH kulcspárok segítségével érjük el. Minden felhasználó számára készíthetünk egyet és jogosultságok segítségével korlátozhatjuk, hogy mihez férhet hozzá (IAM).
Ebben a szekcióban ki kell választanunk, hogy a telepíteni kívánt EC2-höz milyen kulcspárral lehet majd hozzáférni. Amennyiben nem rendelkezünk még kulcspárral, úgy van lehetőségünk helyben elkészíteni a Create new keypair gomb segítségével, amelynek lépési megegyeznek az itt leírtakkal.
![]()
Hálózati és biztonsági beállítások
Az EC2-k közötti kommunikációs csatornák kialakításához definiálnunk kell, hogy melyik virtuális hálózatba akarjuk elhelyezni és milyen alkalmazásokat szeretnénk elérhetővé tenni. Ezt a VPC és a Security Group beállításával tehetjük meg. Előbbi a virtuális hálózatnak felel meg, míg utóbbi hasonlóan egy tűzfalhoz, meghatározza, hogy a szerveren milyen portokat érhetünk el. Érdemes az SSH-t engedélyezni és ha webes alkalmazást szeretnénk rajta futtatni a későbbiekben, akkor a HTTP és/vagy HTTPS szolgáltatást/szolgáltatásokat is, így később nem kell szerkeszteni ezeket a beállításokat.
![]()
Tárhely beállítások
Ebben a részben adhatjuk meg, hogy a szerverünk mekkora tárhellyel rendelkezzen. Egy Linux alapú operációs rendszernek nem kell 8GB-nél több, így az alapértéken hagyhatjuk. Az itt megadott érték inkább csak egy korlát, valójában csak akkora tárhelyet vesz igénybe, amennyire ténylegesen szüksége van a rendszernek. Ez az érték alatt látható figyelmeztetés miatt lényeges, hiszen a 30GB-t elhagyva fizetőssé válik a tárterület is, ám ez nem jelenti, hogy csak 4 szervert tudnánk elindítani az ingyenes keretek között.
![]()
Ezt a szolgáltatást EBS-nek nevezik (Elastic Block Store) és az EC2 megszűnésekor minden erre mentett adat elveszik, így általában az OS-t és az applikáció kódját tároljuk ezen - semmi dinamikus adatot.
Haladó beállítások
Ebben a szekcióban különböző beállításokat végezhetünk el, ám ezeket az órán nem módosítjuk. Érdekes lehet azonban a menüt lenyitva legalul található User data opció, amivel parancsokat adhatunk meg az új operációs rendszer számára, hogy miket futtasson le. Ennek segítségével lehetőségünk nyílik applikációk telepítésére - pl. git - és a kód letöltésére egy másik szerverről, amennyiben a kiválasztott képfájl nem tartalmazta azt.
Az órai keretek között ezt a funkciót nem használjuk ki, de érdemes lehet kipróbálni, mivel valós alkalmazások üzemeltetésekor jól jöhet.
![]()
Összefoglaló
A beállító panel mellett jobbra találhatjuk az összefoglaló ablakot, amelyben megtalálható a Launch Instance gomb. Ennek segítségével kezdhetjük meg a végleges telepítést, ha erre rá nyomunk, akkor a rendszer megkezdi a kiválasztott konfiguráció telepítését. Ha ebben az ablakban pénzösszegeket látunk, akkor az egészen biztosan fizetési kötelezettséget vonz magával, legyünk körültekintőek.
![]()
Az elkészült instance tulajdonságai
A futó szerverek az Instances menüpontban érhetők el. Az egyes sorokra kattintva alul megtekinthetjük a beállításait, amely tartalmazza az AWS által kiosztott publikus és privát IP címeket és domain neveket. Ezeken keresztül tudunk kommunikálni szerverünkkel.
Jelen példában a külső IP címünk: 3.252.168.207, amit a mellette található ikonnal egyszerűen a vágólapra másolhatunk.
Csatlakozás Linux terminálból
A csatlakozáshoz nyissunk meg egy terminált a CTRL+T billentyűkombinációval, majd navigáljunk a cd parancs segítségével a letöltött kulcsfájl mappájába. Az SSH megköveteli, hogy a csatlakozáshoz használt kulcsfájlhoz csak a tulajdonos felhasználó férjen hozzá, így a következő parancsot futtassuk le rajta: chmod 600 test.pem
A következő paranccsal tudunk kapcsolódni: ssh -i test.pem ubuntu@3.252.168.207
Ha a fenti parancs kéri, fogadjuk el a tanúsítványt. Amennyiben Permission error hibát kapunk, akkor a fenti chmod parancsra van szükségünk, vagy nem mi vagyunk a kulcsfájl tulajdonosai (ls -l segíthet).
A test.pem az AWS rendszerből letöltött .pem formátumú kulcsfájl, az ubuntu a szerveren elérhető felhasználó. A különböző disztribúcióknál használt felhasználónevekről ezen a linken tájékozódhatsz.
![]()
Csatlakozás Putty használatával
Amennyiben a .pem kiterjesztésű állományt töltöttük le az AWS rendszeréből, akkor a puttygen eszköz segítségével ki kell exportálni belőle a privát kulcsot. Ezen a linken részletes segédlet található a programcsomaghoz, ahol további funkciók is bemutatásra kerülnek (pl. kulcsgenerálás).
Kulcspár létrehozása
A kulcspárok kezeléséhez a Key Pairs linket nyissuk meg a bal oldali menüből. Újat a jobb oldalon látható Create key pair gomb segítségével készíthetünk.
A gombra kattintva egy űrlapot kapunk, amely végig vezet minket a létrehozás lépésein.
- Név megadása
- Típus kiválasztása - RSA-val dolgozunk az órán
- Letöltendő kulcs típusa - Linux terminálból való csatlakozáshoz a .pem fájlra lesz szükségünk
- Esetleges tag-ek hozzárendelése
- A Create key pair gombra kattintva letölthetjük a kulcspárt
Figyelem! A kulcspár csak a létrehozás után tölthető le egyetlen egyszer, az elvesztett fájlok nem reprodukálhatók! Amennyiben egy EC2 csak az elhagyott kulcspárral érhető el, úgy annak (EC2) törlése és újrakonfigurálása szükséges egy új kulccsal.
Security Group
A Security Group-ok segítségével kontrollálhatjuk, hogy a szervereinkhez milyen portokon férhetnek hozzá, tehát mintegy tűzfal működik. Egy Security Group több gépre is ráhúzható és függetlenül működik, azaz a megadott szabályokat nem másolja át az operációs rendszer konfigurációs állományaiba, mintegy a szerver elé telepített eszköz működik. Ennek köszönhetően futási időben változtathatjuk a szabályokat, életbelépésükhöz nem kell újracsinálni az EC2-ket.
A bal oldali sávban, a Network & Security csoportban érhető el.
Security Group hozzáadása
Egy új szabályrendszer felvételét kezdeményezhetjük az EC2 telepítésekor, ahogyan azt itt is láthattuk, de készíthetünk előre meghatározottakat is.
Az előre definiált csoportokat a Create Security Group gomb segítségével hozhatjuk létre, amelyet a jobb felső sarokban találhatunk meg.
[[Fájl:GAMFAWS ec2 secg new button.png|bélyeg]sdfsad]
A gomb megnyomását követően egy űrlapot kapunk, melynek 3 fő része van:
- Általános adatok
- A név és a leírás mező megadása is kötelező
- Itt választhatjuk ki, hogy mely VPC-ben szeretnénk elérhetővé tenni.
- Bejövő csomagok szabályozása
- Az itt megjelenő szabályok lesznek engedélyezve a szerverünk felé, minden más csomag eldobásra kerül
- Háromféle szabályból választhatunk:
- Anywhere (IPv4, IPv6): A megadott IP típusból mindenhonnan elfogadjuk a csomagokat
- Custom: Csak a megadott IP címekről/IP tartományokból érjük el az adott portot
- MyIP: automatikusan beillesztésre kerül az felhasználó aktuális IP címe (hasonló a custom lehetőséghez)
- Kimenő csomagok szabályozása
- A kimenő forgalom szabályozása biztonsági szempontból megfontolandó, de természetesen a publikus alkalmazások esetében (pl. web) nem tudunk ilyen szűrést alkalmazni.
- Alkalmazhatjuk például SSH-ra, hogy megszüntessük annak a lehetőségét, hogy egy esetleges fertőzésből kifolyólag SSH-t hackelgető botnetté változzunk (volt már hasonló tapasztalat).
- Az órán ezzel bővebben nem foglalkozunk, de éles környezetben ne felejtsünk el ezen szabályok definiálására időt szánni.
- Tag-ek megadása
Security Group szerkesztése
A szerkeszteni kívánt soron kattintsunk jobb gombbal és válasszuk ki a szerkeszteni kívánt szabályok csoportját:
- Edit inbound rules, ha a bejövő csomagok szűrését szeretnénk módosítani,
- Edit outbound rules, ha a kimenő forgalmat szeretnénk szűrni.
A megnyíló ablakban ugyanazon a módon vehetünk fel szabályokat, ahogyan a létrehozásnál. A módosítások mentés után életbe lépnek.
AMI
Az AMI gyakorlatilag egy bitről-bitre lemásolt HDD képfájl, amely tömörítve lett. Így tárolja az összes elmentett adat- és konfigurációs állományt. Ha egy alkalmazást készítünk, akkor a következő okokból készítünk ilyen képfájlt:
- Biztonsági mentés a telepített szolgáltatásokról, így később nem kell egy esetleges hiba miatt újrakonfigurálni az egészet
- AutoScaling group-ba szeretnénk rendezni az alkalmazásunkat, annak pedig meg kell mondani, hogy melyik képfájlt indítsa el
Figyelem! A képfájlok úgynevezett snapshot-okat hoznak létre, amelyek tárolásáért fizetni kell, ha az összméret meghaladja a 8GB-ot. (A snapshotok az éppen futó rendszer miatt készülnek: minden írási műveletet lezár, majd a snapshot készítés után elindított írási műveletek már a háttértár egyéb területeire történik, amelyet a mentés nem fog tartalmazni, így garantálható, hogy nem lesznek félig lezárt fájlok a mentésben. Lásd bővebben: BTRFS (linux) és NTFS support). A pillanatképek nem törölhetők, amíg a belőlük készült AMI létezik!
AMI létrehozás lépései
Navigáljunk az Instances menüpontra, ahol láthatjuk, hogy milyen EC2 szolgáltatások vannak a rendszerünkben.
- Kattintsunk jobb gombbal azon az elemen, amelyet menteni szeretnénk
- Nyissuk ki az Image and templates menüpontot
- Kattintsunk a Create image lehetőségre
Nevezzük el a képfájlt tetszés szerint
Navigáljunk a bal oldalon található menüben az Images szekcióhoz és válasszuk ki az AMIs elemet. Itt megtekinthetjük és törölhetjük a létrehozott képfájljainkat.
Ha a mentés sikeresen elkészült, akkor az EC2 létrehozásánál kiválaszthatjuk azt.
Indítási konfigurációk elkészítése
Az indítási konfigurációk mind egy célt szolgálnak: egységes profilba rendezi az EC2-ről készült képfájlokat. Míg az AMI nem tárolt információt a mentett gép erőforrásáról, egy indítási konfigurációban megadhatjuk ezeket. Később ezek felhasználásával egyszerűbben indíthatunk újabb szervereket és vannak olyan esetek is, amikor a rendszer megköveteli, hogy a képfájl megadása helyett konkrét, hardverinformációkat is tároló konfigurációs sablonokat adjunk meg.
Az Auto Scaling Group például megköveteli, hogy a következő kettő elem közül az egyiket megadjuk, ebből fogja tudni, hogy milyen típusú EC2-t, mekkora tárhellyel és milyen VPC-ben indítson el.
Launch configuration
Egy kifutóban lévő konfigurációs séma, amely 2022. December 31-e után nem kapja meg a frissítéseket. Az AWS javaslata szerint érdemes ezeket a beállításokat a következőkben tárgyalt Launch template alá migrálni.
A Launch configuration'-nek nevezett séma egy egyszerűsített változata a sablonoknak. Jóval kevesebb beállítási lehetőséget tartalmaz, mint a párja, de tökéletesen elegendőt az Auto Scaling Grouphoz.
A beállítás menete
Keressük meg a bal oldali menüben az Auto Scaling group szekciót és válasszuk ki a Launch Configuration menüpontot. A jobb felső sarokban található Create launch configuration gombra kattintva egy űrlapot kapunk, ami végig vezet minket a telepítés menetén.
Név megadása, aminek segítségével később hivatkozhatunk erre az elemre. Kitöltése kötelező!
AMI kiválasztása, tehát azok képfájl megadása, amit a kiválasztott EC2 konfiguráció futtatni fog. Lehetőségünk van a saját készítésű (My AMIs) és a közösségi képfájlok közül választani (Marketplace).
Instance típus alatt megadhatjuk, hogy a konfiguráció milyen teljesítményű legyen.
Ne feledjük el, hogy a t2.micro az ingyenes, a többi használata után fizetési kötelezettségünk jelenhet meg.
Az Additional configruation részben megadhatunk különböző paramétereket, amelyeket az EC2 fog felvenni - pl. mindenképp kapjon IP címet, a subnet beállításaitól függetlenül, vagy éppen ne kapjon; itt adhatjuk meg a telepítéskor lefuttatott scripteket (User data).
A Storage szekcióban megadhatjuk, hogy milyen lemezek és milyen méretűek legyenek a rendszerhez csatolva.
A Security Group részben kiválaszthatunk egy már meglévő szabályrendszert, vagy készíthetünk újat.
A Key pairs blokkban megadhatjuk, hogy milyen privát kulccsal léphetnek be a szerverekre. Ennek meglétét jóvá kell hagyni az alul található checkbox-szal.
Végül kattintsunk a Create launch confgiration gombra a létrehozáshoz.
Launch template
A Launch template jóval gazdagabb a beállítási lehetőségekben, mint párja. A konfigurációs adatlap tartalmaz segédletet az AutoScaling Group-pal történő használathoz, amely required, azaz kötelező mezőként jelöli meg azokat az adatbeviteli elemeket, amelyeket az automata skálázó rendszer használ. Érdemes ezt bekapcsolni, amennyiben ilyen célzattal készítjük el a sablonunkat.
A beállítás menete
Keressük meg a bal oldali menüben az Instances szekciót és válasszuk ki a Launch template menüpontot. Az oldal közepén vagy a jobb felső sarokban található Create launch configuration gombra kattintva egy űrlapot kapunk, ami végig vezet minket a telepítés menetén.
A sablon neve és leírása blokkban megadhatjuk a nevet és a leírást, de ugyanakkor itt választhatjuk ki azt a checkboxot is, ami később a segítségünkre lesz a konfigurációs sablon AutoScaling Group-hoz való illesztését is (Auto Scaling guidence).
Az Application and OS images szekcióban megadhatjuk, hogy milyen AMI-val települjön az EC2. Itt választhatunk a sajátunkból, vagy az EC2-nél is megtalálható egyebekből.
Az Instance type csoportban megadhatjuk, hogy milyen teljesítményű gépet szeretnénk indítani.
Ne feledjük el, hogy az ingyenes változatban a t2.micro érhető el, másik lehetőség választása esetén fizetési kötelezettségek léphetnek fel!
A Key Pair blokkban megadhatjuk, hogy a gépek milyen kulcspárral engedélyezzék a belépést.
A Network Confguration részben definiálhatjuk, hogy milyen VPC-be szeretnénk lerakni az EC2-ket, milyen security group legyen rajtuk. Természetesen utóbbi helyben is létrehozható, ha korábban ezt nem készítettük volna el.
A Storage-nél megadhatjuk, hogy milyen kötetek, milyen méretben legyenek hozzácsatolva a rendszerhez.
'A Tags blokkban felvehetjük a kívánt kulcs=érték párokat.
Az Additional Configuration szekcióban különböző haladó beállításokat eszközölhetünk a sablon által létrehozott EC2-n, többet között itt adhatjuk meg az indításkor lefuttatandó parancsok listáját (User data).


















