Miroslav Holec

Miroslav Holec { Software Architect & Dev Evangelist }

miroslavholec.cz / blog / Infrastruktura-kolem-azure-virtual-machines

Infrastruktura kolem Azure Virtual Machines

Miroslav Holec

Miroslav Holec

Publikován 18. července 2017 | Microsoft Azure, Nezařazené

Pokud se rozhodnete jít cestou IaaS a založíte si virtuální stroj (Azure VM) na základě některého řešení z marketplace, můžete být překvapeni tím, co vše se kolem takového stroje vytvoří. V tomto článku popíšu základní stavební kameny kolem virtuálních strojů.

.NET Core

Školení Entity Framework Core

Praktické školení pro vývojáře, během kterého se bude mít každý příležitost seznámit se základními principy, modelováním, toolingem, optimalizací dotazů a praktickým použitím v moderních webových aplikacích.

Veškerý popis infrastruktury vychází ze zkušeností s VM a OS Win. Je možné, že v případě Linuxových VMs se mohou některé části lišit.

Infrastruktura (high-level)

V tomto článku nebudu zacházet do detailů a budu se držet high-level pohledu na služby, které se paralelně s virtuálním strojem vytváří.

Infrastruktura

Computing

Samotný virtuální stroj může být součástí Availabily Setu (který musí být samozřejmě ve stejné resource group a je nutné jej mít připraven již před vytvářením VM). Availability Set slouží primárně k zajištění dostupnosti v případech, kdy dochází k údržbě virtuálního stroje (ať už plánované nebo neplánované). V případě, že virtuální stroj používá Managed Disky, pak i přichystaný Availability Set musí být "Managed". V rámci Availability Setu lze zvolit počet fault domén (skupina VM sdílejících systémové zdroje) a počet update domén.

Storage

Každý virtuální stroj pracuje se dvěma virtuálními disky (dále už budu psát jen VHD). Na jednom je operační systém a na druhém dočasná data. Druhý zmíněný VHD je mountován jako Temporary Disk a je důležité mít na paměti, že slouží pouze pro systém a nikoliv pro trvalé uchování dat. Systém na tento VHD dává například pagefile a další soubory s dočasnou životností. K VM je samozřejmě možné skrze portál připojovat i vlastní VHD a ty jsou společně se všemi ostatními ukládány v Azure Storage jako page blobs (zamčené a určené pouze pro čtení).

Networking

Oblast networkingu kolem virtuálních strojů je velmi zajímavá a dobře vymyšlená.

Network Interfaces / NIC

Důležitým prvkem je NIC (Network Interface), který tvoří propojení mezi virtuálním strojem a dalšími síťovými prvky. NIC musí být připojen do jedné podsítě v rámci virtuální sítě (VNet) a tato síť musí být ve stejné lokalitě (a subscription) jako NIC. Po tom, co je NIC založen, lze měnit subnet ale pouze v rámci stále stejné virtuální sítě. NIC má svou vlastní MAC adresu, která se nemění po dobu propojení NIC s virtuálním strojem (nemění se ani při restartu). NIC musí mít dále jednu primární IPv4 adresu (statickou nebo dynamickou) a může mít i veřejnou IP adresu. V rámci některých scénářů se lze setkat s ním, že je více NIC připojených k jednomu virtuálnímu stroji (Azure to sám pokud vím nikdy nedělá). NIC je možné k virtuálnímu stroji připojit pouze tehdy, když je VM zastaven a každý VM má právě jednu primární NIC.

Nastavení NIC

IP Adresy

Pokud má NIC nastavenou IP adresu, která je dynamická, pak je virtuální stroj s každým zastavením a následným spuštěním dostupný pod jinou veřejnou IP adresou (při založení dynamické IP adresy není alokována žádná veřejná IP adresa a při zastavení VM je aktuální uvolněna). Proto při vytváření virtuálního stroje dostává k dispozici vývojář i DNS, které se skládá mimo jiné z názvu virtuálního stroje a lokality. V případě statických IP adres se platí poplatek a IP adresa je alokována a zaručena i po restartu virtuálního stroje.

Network Security Group / NSG

NSG si lze představit jako sadu pravidel, kterými se musí připojený prvek řídit. NSG lze připojit přímo k NIC nebo k subnetu. Při vytváření VMs Azure automaticky vytvoří i NSG a tu propojí s podsítí. Zjednodušeně NSG plní funkci firewallu a lze jím řídit co se bude dít se síťovými pakety v závislosti na nastavení.

Azure NSG

Pokud zakládáte VMs s cílem provozovat na něm webový server, bude nezbytné se nastavení NSG věnovat.

Nastavení Azure NSG

Správa a závěrečné poznámky

Při práci s virtuálními sítěmi a virtuálními stroji se občas stane, že se něco dostane do nekonzistentního stavu a GUI je poté nepoužitelné. Například není výjimkou, že virtuální stroj se zastaví, ale tlačítko Start v portálu je disablované. Stejně tak přidělování NIC pro VMs a nastavení primární NIC. Pro práci s VM se mi tedy osvědčilo (resp. mě zachránilo) používání Azure CLI.


Podobné a související články