Korábban már olvastuk, hogy az a központi, hálózati kapcsolatokért és bizonyos felhő erőforrások közötti kapcsolatért a VNET a felelős. Ez a hálótat alapja. Azonban szükségünk van olyan erőforrásra is, ami a biztosítja, hogy virtuális gépeink kommunikáljanak az internettel, az Azure-ral és a egyéb, az előfizetésünkben lévő erőforrásokkal.
Ez az erőforrás a hálózati adapter (nic), amely olyan mint a saját számítógépünkben lévő hálózati kártyák (vezetékes vagy vezeték nélküli). Annak egy virtuális változata, ami vezetékes hálózati kapcsolatot emulál.
A hálózati kártyát úgy kell elképzelni mint egy kábelt, amely egyik fele a virtuális gépünkhöz csatlakozik, másik vége pedig valamelyik (ugyanabban az előfizetésben és régióban létező) virtuális hálózat egyik alhálózatához. (természetesen ez egy nagyon leegyszerűsített leírás, de ez a legegyszerűbb)
Egyedi IP-cím
A hálózati kártya, amint csatlakozik a hálózathoz kap egy IP-címet abból az alhálózatból amelyhez csatlakozik. Ez lehet IPv4-es vagy IPv6-os cím. Mivel minden hálózati kártya egyedi IP-címet kap, így minden virtuális gép, ezen keresztül, egyértelműen azonosítható. Ez azt jelenti, hogy a hálózati forgalom zavartalanul folyik a virtuális hálózatra csatlakoztatott erőforrások között.
Az IP-címet a hálózati kártya tárolja, de a virtuális gép is látja és kezeli.
IP-címet kétféleképpen kaphat egy hálózati kártya (virtuális gép):
Automatikusan kap egyet az alhálózaton eléthető IP-címek közül. Ezt DHCP-nek (Dynamic Host Configuration Protocol) nevezzük.
Manuálisan, kézzel állítjuk be az IP-címét a gépnek az alhálózaton eléthető IP-címek közül. Ennek kockázata, hogy ha nem figyelünk, akkor két virtuális gépnek is adhatjuk ugyanazt az IP-címet. Ez IP-cím ütközéshez vezet, amely elérhetetlenné teszi mindkét gépet, amelyek ugyanazt az IP-címet használják. Erre figyeljünk, ha kézzel szeretnénk beállítani egy gép IP-címét!
Nyilvános IP-cím
Ahhoz hogy egy virtuális gép elérhető legyen az internet felől, ahhoz egy úgynevezett nyilvános IP-címmel kell rendelkeznie. Ez egy külön erőforrás, amelyről a nyilvános IP-címnél részletezek.
Biztonság a hálózaton
Nagyon jó dolog, hogy minden virtuális gép zavartalanul kommunikálhat a virtuális hálózaton belül, de az esetek 99 százalékában kell valamilyen megszorítást, kontrolt alkalmaznunk, hogy megvédjük az alkalmazásainkat az illetéktelen behatolóktól, rosszindulatú támadásoktól és a szükségtelen hozzáférésektől.
Erre is sok lehetőségünk van az Azure-ban. Például:
Alhálózatok használata a hálózaton: Segít logikailag és/vagy szerepkörök alapján csoportosítani az erőforrásokat.
Hálózatbiztonsági csoport (NSG): Ez egy hálózati forgalom szűrő megoldás
Alkalmazásbiztonsági csoport (ASG): Ennek segítségével valamilyen feltétel alapján csoportosítani tudjuk a virtuális gépeinket, majd ezekre az ASG-kre tudunk hálózatbiztonsági csoportban szabályokat definiálni.
Virtuális hálózati kapcsolat (VNet Peering): Két virtuális hálózatot tudunk vele összekötni Azure-on belül.
VPN Gateway és ExpressRoute: Azure-on kívülről való biztonságos kapcsolathoz VPN kapcsolat használata.
Azure Firewall: Tűzfal alkalmazása a hálózaton, a magasabb biztonságért.
Házirendek (Policy) és jogosultságok (RBAC) alkalmazása az előfizetésen belül.
Azure Monitor: Segít azonosítani és naplózni a hozzáféréseket, amelyek alapján risztásokat állíthatunk be vagy riasztásokat hozhatunk létre.
Egy vagy több hálózati adapter
Amikor létrehozunk egy virtuális gépet a portálon, akkor alapértelmezetten csupán egy hálózati adapter jön létre. Ez azonban nem jelenti azt, hogy ne adhatnánk hozzá több hálózati kártyát is egy virtuális géphez.
Így attól függően, hogy milyen felhasználási esetre szeretnék egy gépet létrehozni, utólag is hozzáadhatunk több hálózati adaptert is. A hozzáadott hálózati adapterek, akár más-más virtuális hálózathoz is csatlakozhatnak.
Néhány ilyen felhasználási eset:
Nagyobb sávszélesség elérése: Ma már az operációs rendszerek támogatják, hogy több hálózati kártyát egy nagy hálózati kártyaként használnak. Ezzel nagyobb sávszélességet lehet elérni.
Hálózati redundancia és rendelkezésre állás: Habár a hálózati adapterek a felhőben szinte mindig elérhetőek, azért vannak esetek, amikor 100%-ra szeretnénk menni. Ez esetben több hálózati kártyát hozunk létre ugyanabban a virtuális hálózatban (alhálózatban)
Több virtuális hálózat összekapcsolása: Amikor az alkalmazásunknak több virtuális hálózatba és/vagy alhálózatba kell „belelátnia”. Ez akkor lehet valós eset, amikor egy szervernek több hálózathoz kell tudnia csatlakoznia (front-end, back-end).
Több ip-alapú szolgáltatás nyújtása: Egy virtuális gépen olyan alkalmazás fut, amely több IP-címen keresztül biztosítja az elérést a felhasználóknak.
Ha több hálózati adaptert használunk, akkor figyelnünk kell a forgalom irányításra (routing) is.
Hogyan csináljuk?
Ahogy minden Azure erőforrást, ezt is kezelhetjük többféle képpen:
Azure Portál
Azure-Cli
ARM template (sablon)
Vagy valamilyen infrastruktúra kezelő eszköz. (pl.: Terraform, OpenTofu)
Ennyire egyszerű a hálózati adapter, amin sok múlik a felhőben. 🙂
„A felhő is csak akkor gazdaságos, ha okosan használjuk”
Ezzel az idézetemmel, már sokszor találkozhatott aki ismer, vagy részt vett már valamelyik Mentor Klub képzésemen. Ezt azért is szoktam mondani, mivel a felhő sajátossága, hogy rugalmas és gyorsan lehet benne erőforrásokat létrehozni, magával hoz egy olyan szokást, amelyet a pénztárcánk bánhat. Ez pedig, a nem használt erőforrások kihasználatlanul hagyása. Mit jelent ez?
Tegyük fel beköltözünk a felhőbe, ahol a lehetőségek végtelen tárháza fogad minket. Percenként tudunk hatalmas teljesítményű virtuális gépeket létrehozni és letörölni. Ki tudunk próbálni olyan dolgokat, amelyekről nem is álmodhatunk egy hagyományos adatközpontban. És ebben a nagy szabadságban bekapcsolva hagyunk olyan gépeket, amelyek akkor is költséget generálnak nekünk, amikor mi éppen alszunk. Ez pedig nem jó.
Ha van egy vagy több fejlesztői szerverünk a felhőben, akkor azon általában hétfőtől – péntekig reggel 8 és délután 6 között dolgozunk. (napi kb. 10 óra), ami hetente 50 óra. A hét nagyobb részében azonban (kb. 118 óra) azonban ezek a gépek nincsenek használatban. Ha az egyserűség kedvéért számoljunk egy kicsit. Vegyünk a példa kedvéért egy olyan virtuális gépet, amely 50 Ft-ba kerül óránként. Ha ezt a fenti számokkal kiszámoljuk, akkor szomorú eredményt kapunk:
Gép használatából adódó költség:
Hetente: 50 x 50 Ft = 2 500 Ft
Havonta: kb. 10 000 Ft
Virtuális gép üresjárati költsége (éjszakák és hétvégék):
Hetente: 118 x 50 Ft = 5 900 Ft
Havonta: kb. 23 600 Ft
Amint látjuk a hasznos időben keletkezett költség az kevesebb mint a fele, annak a költségnek, ami akkor keletkezik, amikor pihenünk vagy alszunk. Ezért fontos, hogy
Ha nem használunk egy virtuális gépet, akkor kapcsoljuk le!
Ha a fenti példánál maradunk, akkor elmondhatjuk, hogy ha okosan használjuk a virtuális gépünket ,akkor egy gép teljes árából három gépet is tudunk okosan üzemeltetni. Ez természetesen irreleváns az olyan rendszereknél, amelyek sajátossága, hogy éjjel-nappal működnie kell. Itt most nem is erről van szó. 🙂
Mit tudunk tenni azonban, ha sietünk vagy elfelejtjük a gépeket lekapcsolni? Semmi baj, mert az Azure erre is gondolt. Minden virtuális gép esetén opcionálisan be tudjuk kapcsolni az Automatikus leállítás funkciót, amely egy időzítést fog nekünk létrehozni, amikor a gépet le fogja állítani automatikusan.
Ezt tudjuk engedélyezni a gép létrehozásakor, de utólag is lehetőség van ezt bekapcsolni.
Az utólagos beállításhoz:
Be kell mennünk a virtuális gép beállításaiba
Keressük meg a Műveletek részt
Majd azon belül találjuk az automatikus leállítást
Itt be- és ki- tudjuk kapcsolni. Ha a bekapcsolásra kattintunk, akkor az alábbi lehetőségeket állíthatjuk be:
Ütemezett leállítás időpontja (24 órás formátumban, másodperc pontossággal): mikor álljon le a gép (például 18:00:00)
Időzóna: mely időzóna szerint szeretnénk a leállítást
A rendszer küldjön értesítést 15 perccel az automatikus leállítás előtt?: ez a beállítás lehetőséget biztosít nekünk, hogy értesítést kapjunk emailben vagy egy felügyeleti rendszeren keresztül a leállítás előtt 15 perccel. Ekkor még van lehetőségünk elhalasztani a leállítást 1 órával, ami hasznos lehet amikor még benne vagyunk a munkában.
Webhook URL-címe: Ha a 15 percces értesítés be van kapcsolva, akkor egy külső webhook linkre tud értesítést küldeni. (Pl. felügyeleti rendszer)
E-mail cím: email címre tud küldeni egy levelet, amelyben értesít a gép leállításáról. A levél szintén tartalmazza az elhalasztáshoz szükséges linket.
Elhalasztani többször is lehet a leállítást, ami bizonyos esetekben hasznos lehet.
Miután elmentjük a beállításokat, létrejön egy új (rejtett!) erőforrás, abban az erőforráscsoporban, ahol a gép is létrejött. Ennek típusa: microsoft.devtestlab/schedules
Ez az erőforrás csak akkor látszik az erőforráscsoportban, ha a portálon a Rejtett típusok megjelenítése jelölőnégyzet be van pipálva.
Amint bekapcsoltuk és beállítottuk, a leállítás a megadott adatok alapján működésbe lép és segít nekünk kordában tartani a költségeinket.
Ugye milyen hasznos dolog ez, hogy akár 60 százalékot is spóroljunk egy gép listaárából? 🙂
Ha többet szeretnél még erről tudni, akkor javaslom, hogy olvasd el a hivatalos dokumentációt.
Jól ismeri mindenki a számítógépeket. Van benne processzor, memória, valamilyen háttértároló. Emellett van benne hálózati kártya, amellyel igény szerint csatlakozhatunk az internetre.
A felhőben lévő virtuálisgépek, virtuális szerverek is ilyenek. A különbség csupán annyi, hogy a felhőben ezeket a gépeket nem érinthetjük meg és egy-egy ilyen gépet akár percenként módosíthatunk, ha ahhoz van kedvünk. Adhatunk hozzá memóriát, virtuális processzormagot, lemezeket és még hálózati kártyát is. És ugyanilyen módon el is vehetjük ezeket, vag törölhetjük az egész gépet. Ugye milyen izgalmas?
Az a nagyszerű a virtuális gépekben, hogy rugalmasan létrehozhatunk és törölhetünk bármennyit amennyire csak szükségünk van. Nyilvánosan elérhetővé tudjuk őket tenni az interneten bárki számára, vagy biztonságosan elzárhatjuk őket a kíváncsi szemek elől. Ez csupán attól függ, milyen felhasználási esetre szeretnénk használni ezeket az erőforrásokat. Tudunk eléjük terheléselosztót konfigurálni, hogy ezzel magas rendelkezésre állású rendszereket építsünk. Lehetőségünk van több féle operációs rendszerrel kérni ezeket – Windows, Linux -, szintén attól függően, hogy mit ismerünk vagy mit szeretnénk megvalósítani. És ha kiválasztottuk az általunk ismert operációs rendszert, akkor pedig már túl is vagyunk a legnehezebb részén a dolgoknak. Miért? Mert onnan egy ismerős világba csöppenünk, hiszen miután bejelentkeztünk a virtuális gépünkre, azonnal otthon érezzük magunkat. Mivel a gépet pontosan ugyanúgy tudjuk használni, ahogy azt már megszoktuk a hagyományos számítógépeknél.
És mielőtt továbbmennénk szeretnék felsorolni néhány igen hasznos tulajdonságot, amire képesek a virtuális gépek:
Nagy teljesítmény
Automatikus skálázás
Több operációs rendszer támogatása (Windows, Linux)
Gyors biztonsági mentés és visszaállítás
Beépített figyelési és felügyeleti eszközök
Mesterséges intelligencia, videókártya és nagy teljesítményű adatfeldolgozás
Beépített biztonsági eszközök
És még rengeteg apróság, ami miatt a virtuálisgép az egyik legnépszerűbb felhő erőforrás az Azure-ban is. Mivel ez nevezhető hagyományos erőforrásnak és mellette egy valódi svájci bicska, így érthető, hogy amikor felhőbe költözésről beszélünk, a legnyilvánvalóbb megoldás, hogy „lift-and-shift” megközelítéssel virtuális gépekre költöztetjük a cégünk alkalmazásait.
Összetevők
A virtuális gép összetevőiről érintőlegesen már beszéltünk, hiszen hasonló mint az otthoni számítógépünk, csak ez a felhőben van. Azonban ennyivel mi nem elégszünk meg és mélyebbre szeretnénk ásni. Igaz?
A virtuális gép legfontosabb építőelemei a kövezkezők Azure-ban:
Virtuális gép: Maga az erőforrás, ami összefogja a többi erőforrást.
Virtuális processzor, virtuális mag: a számítási teljesítményt meghatározó egyik paramétere is a virtuális gépnek. Minél több virtuális mag van egy gépben, annál gyorsabb és annál több számítást tud elvégezni.
Memória: a memória, vagyis a RAM tárolja az aktuálisan futó alkalmazásokat és folyamatokat, így azok gyorsabban elérhetők a CPU számára, mint ha állandó tárhelyről (pl. lemezről) kellene őket betölteni. Ez valójában egy nagyon gyors átmeneti tároló a számítógép számára. Ha a gépet lekapcsoljuk, a memória tartalma elvész.
Tárhely (lemez): Ez lesz a gép helyi lemezmeghajtója, ahol az adatok tárolása történik. Kétféle lemezt különböztetünk meg. Az egyik, amelyen az operációs rendszer tárolódik, a másik pedig az adatlemez, amit opcionálisan adhatunk a géphez (akár többet is). Az adatlemezen fogjuk tárolni az alkalmazásaink adatait. Emellett van a gépek nagy részében egy úgynevezett átmeneti lemez, amelyen átmenetileg tárolhatunk fájlokat, amíg a gépünk fut. (vigyázz! az átmeneti lemez adatai törlődhetnek minden újraindítás után)
Hálózati kártya (NIC): A virtuális gépeknek szüksége van hálózati kapcsolatra, hogy elérhetőek legyenek, vagy ők érjenek el más szolgáltatásokat. (Pl.: internet). Ezért legalább 1 db hálózati kártyát hozzá kell adnunk a géphez. Ez a hálózati kártya csatlakozik majd egy általunk kiválasztott virtuális hálózat egyik alhálózatához. Ezután ezen keresztül folyik a kommunikáció. Ehhez a kártyához tudunk beállítani privát és nyilvános IP címet is.
Operációs rendszer: Ez határozza meg, hogy milyen alkalmazásokat futtatunk. Az operációs rendszer Azure-ban lehet Windows vagy Linux.
Monitorozás és diagnosztika: Az Azure Monitor és más eszközök segítségével nyomon követheted a virtuális gépek teljesítményét, hálózati forgalmát, és az alkalmazások állapotát, valamint riasztásokat állíthatsz be kritikus eseményekre. Ez lesz a szemünk és a fülünk.
Egyéb összetevők:
Mentés és helyreállítás (Backup, Restore): rendszeresen tudjuk menteni gépeinket
Biztonsági szabályok: Hálózatbiztonsági csoportokkal (NSG) tudjuk szűrni a hálózati forgalmat. Ezzel is biztonságosabbá tenni a gépeinket és alkalmazásainkat.
Automatikus leállítás: Lehetőségünk van, hogy gépeink leálljanak egy előre meghatározott időpontban. Ezzel is sok költséget tudunk megtakarítani.
Rendelkezésreállási zónák és -készletek: A virtuális gépek mögötti fizikai infrastruktúrában is lehetnek tervezett munkálatok vagy nem tervezett kiesések. Ezek áthidalása végett tudunk olyan alapvető rendelkezésre állá növelő eszközöket használni, amelyek egy-egy ilyen esemény bekövetkezésekor segítenek üzletmenetünk folytonosságának megtartásában.
Automatikus skálázás: Lehetőségünk van automatikusan is skálázni virtuális gépeinket. Ez a skálázás (teljesítmény növelés vagy csökkentés) történhet teljesítmény, idő vagy előrejelzés alapon.
Frissítési tartomány (Update Domain): Rendelkezésreállási készletek esetén, amikor frissítik a fizikai gépeket (gazda gép) az adatközpontban, akkor a meglévő VM-eink hány gazda gépre legyenek telepítve. Pl.: van 3 virtuális gépünk és update domain értéke 2, akkor 2 db virtuálisgép egyik gazdán és 1 db virtuális gép másik gazdán fut. Így minimum 1 db virtuális gép mindig elérhető lesz.
Tartalék tartomány (Fault Domain): Rendelkezésreállási készletek esetén, a gazda gépek hány rack szekrényben legyenek a szerverteremben. Pl.: 3 gép esetén a fault domain 2, akkor 2 db rack szekrényben lesz a 2 gazda szerver. Ha az egyik rack-ben valami tönkremegy, akkor is minimum 1 db gép elérhető marad.
Virtuális gépek típusai
Azt már tudjuk, hogy létrehozhatunk Windows és Linux alapú gépeket Azure-ban. Emellett azonban fontos számunkra, hogy alkalmazásaink számára mindig elegendő erőforrás álljon rendelkezésre.
Ahogy nincs két egyforma ember, úgy nincs két egyforma alkalmazás sem. Tehát az alkalmazásainknak lesz egy bizonyos karakterisztikája, ami meghatározza, milyen erőforrásokból van szüksége többre és melyekből kevesebbre.
Van olyan alkalmazásunk, amely nagy számítási igényű és nem kell túl sok memória az optimális működéshez. Ezen alkalmazásokhoz olyan virtuális gépre lesz szükségünk, amelyben több a virtuális CPU és nem feltétlenül sok a memória. És lesznek olyan alkalmazások – például az SQL szerverek – amelyek estén az a legjobb ha minél több memória van a virtuális gépben, mert akkor a lehető legtöbb adatot a memóriában tartva, nagyon gyorsan tudjuk visszaadni a sok-sok lekérdezett adatot.
Természetesen azért tipizálhatóak az alkalmazások, amelyekre minden felhőszolgáltató – és köztük a Microsft Azure is – ajánl nekünk virtuális gép típusokat.
Az alábbi virtuális gép típusokat különbözetünk meg:
Ezen géptípusokból több méretet is kiválaszthatunk amikor virtuális gépet hozunk létre. Általában az alábbi szempontok alapján választunk gépméretet:
CPU (virtuális processzormagok) száma
RAM (memória) mérete
Csatolható adatlemezek száma
Maximális IOPS-érték
Átmeneti tároló mérete
Prémium lemez támogatottsága
Költség (havonta)
Igen, a mértet befolyásolja a gép költségét. Minél jobb (több CPU, több RAM, stb.) gépet szeretnénk létrehozni, annak a havi díja annál magasabb lesz. Tehát azt javaslom, tervezzük meg alaposan, milyen gépre is van szükségünk, még azelőtt, hogy egy több százezer forintos számlát kapnánk. És hogy hogyan?
Ezzel készíthetünk nagyon jó megközelítéssel kalkulációkat, még mielőtt egy forintot is ki kellene adnunk.
Egyéb tudnivalók
Nagyjából mindent tudunk már a virtuális gépekről, mégis maradt néhány fontos dolog, amit szeretnék megemlíteni.
Saját licenc
Lehetőségünk van saját licenceinket (elsősorban Windows) felhasználni Azure-ban, így tovább csökkenthetjük a költségeket.
Ha nem használod, kapcsold le!
Mint minden felhőszolgáltatónál, itt is igaz, hogy ha egy számítógép nem fut, akkor nem növeli a költségeinket. Ezért kiemelten foltos, hogy minden olyan virtuális gépet, amit nem használunk, kapcsoljunk le!
Azure-ban ezzel kapcsolatban van egy sajátosság. Az Azure virtuális gépeknek 3 állapota van:
Fut – Run: Gép működik
Leállítva – Stopped: Gép le van állítva, de a futáshoz szükséges erőforrások zárolva vannak. Így továbbra is annyit fizetünk érte, mintha futna.
Leállítva (felszabadítva) – Stopped (deallocated): Gép le van állítva és erőforrásai fel vannak szabadítva. Ezen állapotban a virtuális gép nem növeli a költségeinket.
Tehát, ha valóban szeretnénk leállítani a gépet, akkor állítsuk Leállítva (felszabadítva) állapotba!
Különleges virtuális gépek
Vannak különleges gépek, illetve olyan lehetőségek, amelyekkel további felhasználási eseteket tudunk megvalósítani.
Dedikált kiszolgáló
Spot VM
Fenntartott példány
Virtuálisgép-méretezési csoport
Ezek azok az alapvető információk, amelyeket tudni érdemes a virtuális gépekről. Ahogy látod, ez egy elég nagy témakör és én is tudnék még írni erről rengeteget.
Azt javaslom, hogy próbáld ki magad is egy-egy virtuális gép létrehozásával, hogy belekóstolj ebbe a mesés világba. 🙂