Post

Azure infrastruktúra költségek Terraformmal

A FinOps nagyon népszerűvé vált az elmúlt időszakban, ami nem is csoda, hiszen a felhőben a költségek nagyon könnyen megugorhatnak. A Microsoft is nagyon sokat fejlesztett ezen a téren, így már a költségek monitorozása és a számlázás is sokkal egyszerűbb és átláthatóbb lett. Mindenkivel előfordult már, aki rakott már össze 1-1 nagyobb infrastruktúrát terraformmal, hogy a végén jól meglepődött a számla összegén, hogy mennyibe is fog kerülni a megoldás. Itt maradt default érték, ott inkább berakok valami erősebbet, mert így biztosan menni fog… a végén pedig jön a számla. A következőkben bemutatom, hogyan tudjuk a Terraformmal létrehozott infrastruktúra költségeit kiszámolni plusz erőforrás befektetése nélkül VSCode ban.

Infracost

Az Infracost egy nyílt forráskódú eszköz, amely segít a felhő alapú infrastruktúra költségeinek kiszámításában. Nagyvállalati környezetet célozzák főleg a szolgáltatásukkal, de szerencsére gondoltak a community, illetve az egyszerű felhasználókra is, így ingyenes, igaz korlátozott verzióban elérhető. Havonta 1000 hívást intézhetünk hozzá, ami alkalmi használatra, ha nem minden nap csak terraformot használsz, elegendő is lehet.

Szerencsére VSCode kiegészítőként is elérhető, így a terraform kódunkat nem kell teljesen elhagynunk, hogy megnézzük, hogy mennyibe is fog kerülni a megoldásunk. A telepítése csak pár kattintás, a VSCode Marketplace-ből. Telepítsük is fel.

Infracost

Majd a telepítés után jelentkezzünk is be az Infracost fiókunkba. Ha még nincs fiókunk, akkor regisztráljunk egyet, mert a kiegészítő csak a bejelentkezés után fog működni.

Infracost

Konfiguráció

Az alap beállítások nagyrésze megfelelő is az alap felhasználási módnak, de azért vannak olyan beállítások is, amiket érdemes átnézni. Ilyen az egyik legfontosabb, az euro, mert alapból dollárral számol. Szerencsére ezt gyorsan át is lehet állítani.

Nyissuk meg a “~/.config/infracost/configuration.yml” file-t és adjuk hozzá az alábbi sort.

1
2
version: "0.1"
currency: EUR

El is készültünk az alap beállításokkal (vscode restart itt nem árt), most már csak a terraform kódunk kell hozzá. Egy sima régebbi kódomat fogom használni, amivel egy egyszerű function-t hozok létre, de mivel egy komplett infrastruktúrát hozok létre, így van benne egy FW, ami megdobja a költségeket…

Valóságban

Nyissunk meg egy tetszőleges Terraform kódot és már meg is jelennek az első költségek. A kiegészítő automatikusan érzékeli, hogy a kódunkban van egy Azure Provider és megjeleníti annak költségeit. Amennyiben rákattintunk a költségekre, akkor megjelenik a részletezése is.

Infracost

Amint megváltoztatjuk a kódot, majd el is mentjük azt, azonnal frissíti a kalkulációt és megjeleníti a változásokat. Nagyon egyszerű és gyorsan használható.

Infracost

Nem is kell még a listát sem bezárnunk, mert ott is azonnal frissíti a várható költségeket. Mint látszódik, a felhasználás alapú költségeket megjeleníti, de 0-val számol. Természetesen erre is vannak lehtőségek, hogy becsült értékeket megadjunk, de ennyire nem megyünk most bele. Részletesebben itt lehet róla olvasni Infracost.

De térjünk vissza még, hiszen egy másik nézetben összesítve is láthatjuk ezeket. Oldalt a VSCode-ban megjelenik egy új fül, ahol a kalkulációk összesítve is megjelennek. A kép kedvéért egy kicsit újrarendeztem a kódot, hogy látszódjon a különbség mondjuk egy dev és egy prod környezet között.

Infracost

Látszik is mennyi a várható költsége az egyes környezetnek anélkül, hogy plusz energiát kellene belefektetnünk.

Fontos, hogy Én csak az alap erőforrásokkal számoltam, nem állítottam be most semmilyen extra paramétert, tehát pl. az, hogy az Azure Firewall-nak nem csak /óra költsége van, hanem a feldolgozott adamennyiség után is kell fizetni, az igen fontos tényező, mégis sokan elsiklanak felette.

Összefoglalás

Kezdőknek, akiknek a felhős kalkulációk még újdonság, de a tapasztaltabbaknak is hasznos lehet, hiszen a kalkulációk gyorsan és egyszerűen elérhetőek. 1-1 félrekonfigurálást is könnyen észrevehetünk, mielőtt a végszámla megérkezik. Ha másnak nem, akkor a fejlesztőknek, akiknek a számlázás nem a fő feladatuk, de a költségek ismerete fontos lehet.

VSCode kívül cli-ban és Azure DevOps-ban is használható, könnyen implementálható és használható, de erről majd talán máskor.

This post is licensed under CC BY 4.0 by the author.