EDU::GAMF::Felhőalapú-szolgáltatások::AWS

Innen: Farkas Attila Wiki
A lap korábbi változatát látod, amilyen ApelPro (vitalap | szerkesztései) 2022. október 25., 12:54-kor történt szerkesztése után volt. (→‎Bucket kezelése awscli programmal)
Ugrás a navigációhoz Ugrás a kereséshez

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.

GAMFAWS search EC2.png.png

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.

GAMFAWS ec2 dashboard.png

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: GAMFAWS ec2 launch instance button.png

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
GAMFAWS ec2 setup name and tags.png
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).
GAMFAWS ec2 setup AMI choose2.png
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.
GAMFAWS ec2 setup instance type.png
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.
GAMFAWS ec2 setup keypair.png
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.
GAMFAWS ec2 setup networking.png
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.
GAMFAWS ec2 setup ebs.png
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.
GAMFAWS ec2 setup userdata.png
Ö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.
GAMFAWS ec2 setup summary.png
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.
GAMFAWS ec2 properties.png
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.
GAMFAWS ec2 connect linux.png
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. GAMFAWS ec2 keypair create.png

A gombra kattintva egy űrlapot kapunk, amely végig vezet minket a létrehozás lépésein.

  1. Név megadása
  2. Típus kiválasztása - RSA-val dolgozunk az órán
  3. Letöltendő kulcs típusa - Linux terminálból való csatlakozáshoz a .pem fájlra lesz szükségünk
  4. Esetleges tag-ek hozzárendelése
  5. A Create key pair gombra kattintva letölthetjük a kulcspárt

Kulcspár létrehozása

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:

  1. Általános adatok
    Á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.
  2. Bejövő csomagok szabályozása
    Inbound rules
    • 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)
  3. Kimenő csomagok szabályozása
    Outbound rules
    • 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.
  4. 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.
GAMFAWS ec2 secg context menu.png

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:

  1. 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
  2. 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.

  1. Kattintsunk jobb gombbal azon az elemen, amelyet menteni szeretnénk
  2. Nyissuk ki az Image and templates menüpontot
  3. Kattintsunk a Create image lehetőségre

GAMFAWS ec2 ami create.png

Nevezzük el a képfájlt tetszés szerint
GAMFAWS ec2 ami setup.png

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.
GAMFAWS ec2 ami list.png

Ha a mentés sikeresen elkészült, akkor az EC2 létrehozásánál kiválaszthatjuk azt.
GAMFAWS ec2 setup own ami select.png

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ő!
GAMFAWS ec2 launch conf setup name.png


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).
GAMFAWS ec2 launch conf setup ami.png


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.

GAMFAWS ec2 launch conf setup instance type.png


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.
GAMFAWS ec2 launch conf setup secg.png

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.
GAMFAWS ec2 launch conf setup keypair.png

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).
GAMFAWS ec2 launch templ setup name.png


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.
GAMFAWS ec2 launch templ setup ami.png


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!

GAMFAWS ec2 launch templ setup instancetype.png


A Key Pair blokkban megadhatjuk, hogy a gépek milyen kulcspárral engedélyezzék a belépést.
GAMFAWS ec2 launch templ setup key pair.png


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.
GAMFAWS ec2 launch templ setup network.png


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).

Végül kattintsunk a Create launch template nyomógombra a mentéshez!.

Target Group

A target group EC2-k azon csoportja, amelyeken valamilyen health check algoritmust futtatunk, ezzel meghatározva, hogy az adott csoportban hány használható, működő szerver fut. Ezt az információt elsőként a Load balancer használja ki.

A Target Group a bal oldali menüben, a Load Balancing szekcióban érhető el Target Groups néven.

Létrehozhatunk új csoportot, de meg kell adnunk, hogy milyen módon kerüljenek bele az EC2-k. Erre a következő metódusokat ajánlja fel az Amazon:

  1. Konkrét EC2 (Instance) kiválasztása
  2. EC2-k definiálása IP tartománnyal
  3. Lambda függvény hozzáadása
  4. Alkalmazás LoadBalancer, amely egy teljes VPC tartalmát magába foglalja.

Az űrlap alján megadhatjuk, hogy milyen életjel ellenőrzés történjen.

Általában nem mi vesszük fel egyesével az Instancokat ebbe a csoportba, hanem az AutoScaling group regisztrálja őket bele. Ezért ezt az űrlapot nem használjuk.

Load Balancer

A Load Balancer terheléselosztást jelent, tehát a bejövő forgalmat több gép között osztjuk el. Ezzel növekszik a felhasználói élmény, ráadásul a rendszer megállítása (egy hacker által) nehezebbé válik: ha kettő t2.micro teljesítményű szerver fut, amelyek között elosztjuk a bejövő forgalmat, akkor a rendszerünk valójában 2xt2.micro teljesítményű.

Terheléselosztót a bal oldali menü Load Balancing szekciójának Load Balancers menüpontjában hozhatunk létre.

A támogatott szolgáltatási szintek:

  1. Alkalmazás terheléselosztás (HTTP, HTTPS)
  2. Hálózati terheléselosztás (TCP, UDP)
  3. Átjáró terheléselosztása (GW)
Alkalmazás terheléselosztása

Ebben a formában konfigurálhatjuk az eszközt úgy, hogy az internet felől elérhető legyen (internet-facing) és úgy, hogy csak belső hálózaton működjön (internal). A belső hálózatot mindig az aktuális VPC-re kell érteni, tehát annak minden alhálózatából elérhető alapértelmezetten. GAMFAWS ec2 loadbalancer setup basic.png

A hálózati beállításoknál választhatunk, hogy mely alhálózatokban szeretnénk végrehajtani a terheléselosztást, így csak az azokban futó EC2-k kaphatnak ezen keresztül csomagokat. Arra kell ügyelnünk, hogy legalább kettő különböző zónában lévő alhálózatot kell kiválasztanunk (pl. eu-west-1a, eu-west-1b stb.). GAMFAWS ec2 loadbalancer setup network.png

Természetesen a LoadBalancer internetfelőli végpontján létrehozhatunk Security Groupokat, amelyet szabályozzák, hogy milyen IP címről fogadunk el csomagokat. GAMFAWS ec2 loadbalancer setup secg.png

A Listeners and routing résznél megadhatjuk, hogy melyik target group fogja a terhelést fogadni, tehát hogy mely EC2-k között tudunk ténylegesen terhelést elosztani. Amennyiben a target group egy darab EC2-t tartalmaz, akkor a terheléselosztás gyakorlatilag nem valósul meg, csak az elméleti esélyét adtuk meg, hogy „amennyiben lenne még egy EC2 a target group-ban, akkor a terhelés egy részét az vinné el”. GAMFAWS ec2 loadbalancer setup routing.png

Végül kattintsunk a Create load balancer gombra, amennyiben a kívánt tag-eket is rögzítettük.

Auto Scaling Group

A szolgáltatás segítségével automatikusan skálázott rendszereket építhetünk ki, ahol a szerverek által nyújtott elérhető erőforrásokat minél közelebb tartja a bejövő terhelés által meghatározott erőforrásigényhez. Természetesen mindez akkor igaz, ha az Auto Scaling Group be regisztrálja az általa létrehozott EC2-ket egy Target Group-ba, ami felett Load Balancing van definiálva.

Előnyei:

  • Amikor nincs bejövő terhelés, akkor nincsenek nagy költségek
  • Amikor nagy a bejövő terhelés, akkor a költségek megugranak ugyan, de az ügyfeleket ki tudtuk szolgálni úgy, hogy elégedettek voltak a rendszer teljesítményével.

Hátrányai:

  • Kaotikus számlák, nem előre tervezhető költségek
  • Megnövekedett költségek DDoS és egyéb támadások esetén
A beállítás lépései

A szolgáltatást a bal oldali menü Auto Scaling Group szekciójában érjük el, az Auto Scaling Group menüpontban. A képernyő közepén vagy a képernyő jobb felső sarkában megjelenő Create auto scaling group gombra kattintva egy űrlap jelenik meg, ami végig vezet minket a telepítés lépésein.

A Name szekcióban elnevezzük az új group-ot. GAMFAWS ec2 autoscaling setup name.png


A következő szekcióban két választási lehetőségünk van:

  • Launch Template-tel telepítjük az új group-ot, ez esetben csak ki kell választanunk a korábban létrehozott sablont, vagy az alatta található link segítségével készíthetünk újat. Amennyiben újat készítünk, a sablon létrehozása új ablakban nyílik meg, így a befejezést követően vissza kéne térnünk erre és a frissítést gombot megnyomva látni fogjuk az új lehetősége(ke)t.

GAMFAWS ec2 autoscaling setup lt.png

  • Launch Configuration-nel telepítjük az új group-ot, ez esetben át kell váltatnunk a Switch to launch configuration link segítségével a blokkot. A váltást követően hasonlóan az előzőekhez: vagy kiválasztjuk a már meglévő konfigurációs sémát, vagy hozhatunk létre újat.

GAMFAWS ec2 autoscaling setup lc.png


A Next gombra kattintva a hálózati beállítások szekcióhoz érünk, ahol megadhatjuk, hogy az indított EC2 milyen VPC-be kerüljön és azon belül milyen alhálózatokba. VPC-ből egy, alhálózatból több is kiválasztható. Ügyeljünk rá, hogy ha később erre Load Balancer szolgáltatás is kerül, akkor legalább kettő zónát jelöljünk ki!

Figyelem! A zóna nem egyezik meg az alhálózattal!

GAMFAWS ec2 autoscaling setup network.png


A Next gombra kattintva a Load Balancing beállítások következnek, ahol választhatunk:

  • Nincs terheléselosztás opciót,
  • Létező Load Balancer hozzáillesztését,
  • Új Load Balancer létrehozását.

Utóbbi esetében a Load Balancer konfigurálásánál leírt módon ki kell töltenünk a Load Balancer űrlapját is helyben.
GAMFAWS ec2 autoscaling setup lb setup.png

Hasonlóan a Target Group-ot is létrehozhatjuk helyben, amennyiben ezt nem tettük meg korábban. GAMFAWS ece autoscaling setup new lb new tg.png


A Next gombra kattintva a csoport méretét definiálhatjuk, azaz megszabhatjuk, hogy hány darab szervertől, hány darab szerverig engedélyezzük az automatikus skálázást. Ez egy hasznos funkció, hiszen ezzel korlátok közé szoríthatjuk a költségeinket, miközben a legkisebb terhelés esetén is előkészülhetünk egy hirtelen bejövő nagyobb terhelésre (ha a minimum nem 1).

  • Desired capacity: ennyi szervert fog elindítani az ASG mentés után
  • Minimum capacity: ennyi szerver esetén már nem állít le semmit az ASG
  • Maximum capacity: ennyi szerver esetén már nem indít el újabbat az ASG

GAMFAWS ec2 autoscaling setup group.png

Alatta a Scaling Policy blokkban megadhatjuk, hogy milyen paraméterek mentén indítson vagy épp állítson le szervereket az ASG. Ehhez aktiválnunk kell a szolgáltatást és a Metric type listából ki kell választani az számunkra megfelelőt. Mi általában CPU terhelés alapján döntünk az órán. GAMFAWS ec2 autoscaling setup scaling.png

A Next gombokkal lépkedve hozhatunk létre Tag-eket, majd végül létrehozhatjuk az ASG-t is és az Instances menüpontban ellenőrizhetjük, hogy ténylegesen elindult a kívánt darabszámú szerver.

RDS szolgáltatások

MySQL adatbázis telepítése

Csatlakozás MySQL adatbázishoz CLI-ből

VPC

A Virtual Private Cloud egy szolgáltatás, melynek segítségével össze köthetjük az összetartozó komponenseket, alkalmazásokat. A VPC-t modellezhetjük hétköznapibb értelemben, mint egy routert, amelynek vannak alhálózatai, route táblája és valamilyen gateway címe, amin keresztül a kliensei az internet más résztvevőivel tudnak kommunikálni.

A VPC szolgáltatásait a keresőbe írt VPC kulccsal érhetjük el.

VPC létrehozása

Navigáljunk a 'Your VPCs' menüpontra a bal oldali menüben és kattintsunk a jobb felső sarokban látható Create VPC' gombra. Ezután megnyílik egy űrlap, amely végig vezet minket a telepítés lépésein.

Az űrlap elején választhatunk, hogy VPC only vagy VPC and more módban szeretnénk folytatni. Előbbi csak a VPC-t hozza létre nevéből is adódóan, míg a másik opcióval létrehozhatjuk az alhálózatokat is, igaz, a tervezés szabadságáról le kell ilyenkor mondanunk, cserébe grafikán láthatjuk az eredményt. Számunkra az órán utóbbi nem lesz megfelelő, hiszen szükségünk lesz a tervezés szabadságára.
GAMFAWS vpc setup.png

A VPC beállításainál mindig a teljes hálózatot átfogó IP/MASZK párost kell megadnunk, később az alhálózatok nem lóghatnak ki az itt megadott tartományból.

Alhálózatok

Az alhálózatok lehetőséget biztosítanak arra, hogy az egyes komponenseket el is szigeteljük egymástól, meg engedélyezzünk is közöttük bizonyos kommunikációt.

Alhálózatok típusai:

  • Publikus: az alhálózatban létrehozott EC2-k és egyéb szolgáltatások alapértelmezetten kapnak publikus IP címet
  • Privát: az alhálózatban létrehozott EC2-k és egyéb szolgáltatások alapértelmezetten nem kapnak publikus IP címet
Alhálózatok létrehozása

Navigáljunk a Subnets menüpontra. A képernyő jobb felső sarkában kattintsunk a Create subnet gombra, így megkapjuk a létrehozási űrlapot.

Először a VPC-t kell kiválasztanunk, aminek eredményeképp kiírja segítségképp annak tartományát. Ezen a tartományon kívül nem léphetünk.
GAMFAWS vpc subnet setup.png


A VPC kiválasztása után aktívvá válik az alhálózatok űrlap, ahol megadhatjuk annak nevét, hálózati címét és maszkját.
GAMFAWS vpc subnet setup new.png

Figyelem! A rendszer csak hálózati címet fogad el! Minden más esetben hibát ír ki.

A Remove gombbal eltávolíthatjuk az aktuális konfigurációt a listából, míg a lentebb található Add new subnet segítségével újabbat vehetünk fel.

Befejezésül nyomjuk meg a Create subnet gombot, így az összes definiált alhálózat létrejön a kiválasztott VPC-hez.
Publikus/Privát alhálózat beállítása

Az alhálózat típusának átállításához navigáljunk a Subnets menüpontra. Kattintsunk jobb gombbal a kívánt alhálózat során és válasszuk ki az Edit subnet settings opciót.
GAMFAWS vpc subnet edit s settings.png

Az űrlapon keressük meg az Auto-assign IP settings blokkot és a kívánt típusnak megfelelően módosítsuk azt. GAMFAWS vpc subnet edit type.png

Különböző route tábla minden alhálózaton

A VPC támogatja, hogy minden subnet saját route táblával rendelkezzen. Ez lehet akár egy biztonsági funkció is, hogy ne ismerje minden EC2 az útvonalat egy adott szerverhez, de egyes esetekben kötelezően létre kell hoznunk. A route táblákat a Route tables menüpontban hozhatjuk létre és a Subnets menüben, a módosítani kívánt soron jobb gombbal kattintva és az Edit route table association opciót kiválasztva szerkeszthetjük.

Figyelem! A route táblák cseréje okozhat internetelérési problémákat szerver oldalon, aminek következtében a futó szolgáltatások számunkra is elérhetetlenekké válnak (pl. SSH és/vagy HTTP/HTTPS stb.), így legyünk körültekintőek.

Internet Gateway

Ahhoz, hogy a VPC-n belül legyen internet, ahhoz egy IGW-t kell hozzá csatolnunk. Ezt megelőzően azonban létre kell hoznunk egyet.

Figyelem! A VPC-hez nem kapcsolt IGW-k pénzbe kerülhetnek, mivel feleslegesen foglalnak le egy publikus IPv4 címet.
Internet Gateway létrehozás

Az IGW az Internet Gateways menüpont alatt érhető el és a jobb felső sarokban található Create internet gateway gombbal hozhatunk létre újat. Csupán egy nevet kell megadnunk, illetve rakhatunk rá tag-eket igény szerint.

A létrehozást követően hozzá kell rendelnünk egy létező VPC-hez, amit az Internet Gateways menüben, a módosítani kívánt soron jobb gombbal kattintva és az Attach to VPC opciót kiválasztva tudunk megtenni. Amennyiben a soron az Attached (zöld színű) felirat jelenik meg a (szürke színű) Detached helyett, akkor nem tudjuk VPC-hez csatolni (ilyenkor először a Detach from VPC opciót kell választanunk).
GAMFAWS vpc igw attach.png

Az IGW VPC-hez rendelése után a kívánt route táblákba fel kell vennünk, hogy minden csomagot arra irányítson. GAMFAWS vpc igw route setup.png

NAT Gateway

Lehetőség van Internet Gateway helyett NAT Gateway létrehozására is, de ez egy fizetős szolgáltatás. A nevének megfelelően ez lehetőséget biztosít, hogy azok az EC2-k, amelyek privát alhálózatba kerültek, kilássanak az internet felé (pl. frissítések keresése, telepítése), miközben védve vannak a kívülről érkező támadásoktól.

Ez egy lehetséges oka lehet, hogy külön válasszuk a route táblákat az alhálózatokon, hiszen az egyiknek minden csomagot az IGW felé, míg a másiknak minden csomagot a NAT Gateway felé kell továbbítania. Ha nem használunk NAT Gatewayt, akkor is érdemes lehet leválasztani az IGW-ről a privát alhálózatokat.

AWSCLI

Az AWSCLI egy konzolos alkalmazás, amelynek segítségével menedzselhetjük környezetünket: hozhatunk létre új EC2-t akár, vagy kapcsolhatunk hozzá egyéb szolgáltatásokat (Security Group, ASG, LB stb.).

Az awscli program elérhető linux és windows környezetben egyaránt.

AWSCLI telepítése

A program telepítéséhez a következő parancsot kell futtatnunk: apt install awscli.

Access Key management

Az awscli hozzáférési kulcsokon keresztül kap jogosultságot a szolgáltatások adataihoz, így használata előtt készítenünk kell egy újat. Ez a nevünkre kattintva (jobb felül), majd a Security credentials menüpontot kiválasztva tehetjük meg, az Access keys szekcióban. Nyissuk ezt le és kattintsunk a Create New Access Key gombra.

GAMFAWS UserMenu.png GAMFAWS SecurityCredentials.png

A gomb megnyomása után egy felugró ablak fogad, amelyben megtalálható az Access Key és a Security Access Key értéke. Érdemes a fájlt letölteni, hogy később is elérhetők legyenek ezek az adatok, az AWS többet nem fogja engedélyezni ezek megjelenítését! Ha az adatokat később nem tudjuk megadni, akkor újat kell készíteni.

GAMFAWS SecurityCredentials ShowData.png

AWS CLI konfigurálás autentikációs adatokkal

Az eszköz telepítése annak konfigurálásával ér véget: meg kell adnunk az autentikációs tokeneket.
Ezt az aws configure parancs kiadásával tehetjük meg, ahol egyesével bekéri a szükséges adatokat. Ahol nem szeretnénk változtatni az előző értéken (szögletes zárójelek között láthatjuk ezt), ott hagyjuk üresen a sort és csupán entert nyomjunk.

GAMFAWS AWSCLI config.png
Az adatok megadása után menedzselhetjük az aws parancsokkal a környezetünket. Az aws parancsairól az aws help szolgáltat információt.

S3

Ez a szolgáltatás fájlok tárolására alkalmas.

Több típusa is elérhető:

  • Standard:
    • Magas rendelkezésre állás jellemzi (99.99%)
    • Az alkalmazásban sűrűn használt objektumok tárolására alkalmas
    • A régiók közötti szinkronizáció megoldott
  • Instant Glacier:
    • Magas rendelkezésre állás jellemzi (99.99%)
    • Az alkalmazásban ritkábban használt, hosszú élettartamú, de azonnali hozzáférést igénylő objektumok tárolására alkalmas
  • Flexible Glacier:
    • Magas rendelkezésre állás jellemzi
    • Az alkalmazásban ritkán használt (évente 1x-2x), a mérettől független költséggel rendelkező megoldás
  • Deep Archive Glacier:
    • 7-10 évig tárolt adatokhoz optimalizált költségvonzat
    • Előnyös a backup adatok tárolásához
A szolgáltatás a keresőben S3 füzérrel kereshető.

Bucket létrehozása

Új tárolót a Create bucket gomb segítségével hozhatunk létre. A megjelenő űrlapon a nevet kell kitölteni és érdemes egy pillantást vetni a publikusság beállításaira is, hogy ez ténylegesen a célunknak megfelelő legyen.

Figyelem! A névnek nem csupán a mi környezetünkön belül kell egyedinek lennie, hanem a teljes AWS-en belül.
GAMFAWS S3 new name.png
GAMFAWS S3 new public.png

Bucket kezelése awscli programmal

Az aws s3 help parancs segítségével további információt szerezhetünk az egyes utasításokról.

Bucket tartalmának listázása

aws s3 ls [bucket_name]
GAMFAWS S3 CLI LS.png

Adatok másolása Bucket-ba

aws s3 cp LOCAL_PATH s3://REMOTE_PATH

Ahol:

  • LOCAL_PATH a lokális fájlrendszeren belüli elérési útvonala a forrásfájlnak (vagy könyvtárnak)
  • REMOTE_PATH a cél helye az S3-ban
    • Az s3:// jelzi, hogy a cél az S3-ban van (S3Uri)
    • A mappák helyett PREFIX-ek vannak (/folder/to/my/file esetében /folder/to/my a PREFIX)
    • A mappákat nem kell S3-ban létrehoznunk (az előző pontból következik), a fájlnév előtti prefix dönti el a hova tartozását
    • A PREFIX-eket az ls úgy kezeli, mint egy mappát
GAMFAWS S3 AWSCLI cp2s3.png

Adatok másolása rekurzívan S3-ba

aws s3 cp --recursive LOCAL_PATH s3://REMOTE_PATH

Ahol:

  • --recursive jelzi, hogy a LOCAL_PATH alatt minden bejegyzést töltsön fel
GAMFAWS S3 AWSCLI copy recursive2s3.png

Adatok másolása rekurzívan S3-ból helyi fájlrendszerbe

aws s3 cp --recursive s3://REMOTE_PATH LOCAL_PATH
GAMFAWS S3 AWSCLI cp2local.png

Bucket kezelése grafikus felületen keresztül

Az S3 tartalmát elérhetjük az AWS grafikus felületén keresztül is, így tölthetünk fel, törölhetünk és módosíthatunk fájlokat anélkül, hogy saját számítógépünkre telepítenénk az awscli programot.

  1. Nyissuk meg az S3 szolgáltatás vezérlőpultját
  2. Kattintsunk a szerkeszteni kívánt tárhely nevére
    GAMFAWS S3f list.png

  3. A vezérlőgombok segítségével végezzük el a kívánt műveletet (feltöltés, törlés), vagy válasszunk ki egy PREFIX-et az „almappák” tartalmának megtekintéséhez.
    GAMFAWS S3 control.png

Alkalmazás létrehozása AWS-ben

S3 létrehozás

VPC létrehozása

MySQL létrehozása

API létrehozása

Szerver konfigurálása

ASG létrehozása terheléselosztással

UI létrehozása

Szerver konfigurálása

ASG létrehozása terheléselosztással

Alkalmazás tesztelése