Turinys[Slėpti][Rodyti]
Infracost yra svarbus „DevOps“, SRE ir kūrėjams, norintiems įvertinti debesų sąnaudas infrastruktūros kaip kodo projektams, pvz., „Terraform“. Naudodami „Infracost“ galite greitai pamatyti išlaidų paskirstymą ir lygindami skirtingas parinktis, o tai padeda geriau suprasti prieš priimant didelį sprendimą.
Kaip veikia Infracost?
„Infracost“ gali patikrinti daugiau nei 3 milijonus kainų, nuskaitydamas jūsų „Terraform“ kodą, ir prieš paleisdamas išteklius parengia paprastą ir lengvai skaitomą išlaidų sąmatą.
Taip pat galite naudoti „Infracost“, kad sužinotumėte, kurios kodo eilutės turi didžiausią poveikį sąnaudoms, nes ji susieja išlaidas su ištekliais jūsų ištraukimo užklausose. Integravę Infracost į savo CI / kompaktinį diską, galite bendradarbiauti su savo komanda ir įgalinti diskusijas apie esamos darbo eigos pakeitimų poveikį.
„Infracost“ veikia per „Cloud Pricing API“ vidinę paslaugą, o naudodami CLI įrankį galite išanalizuoti „Terraform“ planą JSON formatu. API kryžminės nuorodos į kiekvieno naudojamo debesies išteklių kainą ir su jais susijusius sąnaudų parametrus, pagrįstus debesijos paslaugų teikėju.
Programai nereikia jokių kredencialų, kad ji veiktų, ir ji neatlieka jokių Terraform ar analizuojamų debesies išteklių pakeitimų. Naudodama Terraform išteklių tipų skaičių, API užtikrina, kad būtų apskaitomi nauji ištekliai.
Yra du pagrindiniai būdai, kaip „Infracost“ parodo išlaidų paskirstymą:
A) Visas išlaidų paskirstymas
B) Mėnesinių išlaidų skirtumas tarp esamos ir planuojamos būklės
Darbo su Infracost pradžia (žingsnis po žingsnio)
Norėdami įdiegti ir pradėti naudoti „Infracost“, vadovaukitės šiuo nuosekliu vadovu:
1. Įdiekite Infracost
Pirmas žingsnis norint pradėti yra įdiegti Infracost, bet pirmiausia turite jau turėti Terraformas įdiegta.
Čia pateikiamos skirtingos „Infracost“ versijos:
macOS Homebrew:
brew install infracost
infracost – versija # Turėtų būti rodoma v0.9.7
macOS vadovas:
# Atsisiunčia CLI pagal jūsų OS/arch ir įdeda jį į /usr/local/bin
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sh
Linux:
# Atsisiunčia CLI pagal jūsų OS/arch ir įdeda jį į /usr/local/bin
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sh
Dokeris:
docker pull infracost / infracost
docker run –rm \
-e INFRACOST_API_KEY=žr. sekantį_ingsnį_kaip_gauti_tai \
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
-v $PWD/:/code/ infracost/infracost suskirstymas –kelias /kodas/
# Pridėkite kitas reikalingas vėliavėles / envs, skirtus „Infracost“ arba „Terraform“.
# Pavyzdžiui, jų gali prireikti, jei naudojate AWS prisiimtą vaidmenį:
# -e AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN \
# -e AWS_REGION=$AWS_REGION \
Langai:
Atsisiųskite ir išpakuokite naujausia versija. Paleiskite jį naudodami komandų eilutę arba „Powershell“. .\infracost.exe --no-color
kartu su kitomis reikalingomis komandomis / vėliavėlėmis (spalvos išvestis turi klaidą, kurią turime ištaisyti sistemoje Windows). Taip pat turėtumėte perkelti exe failą į aplanką, kuris yra jūsų PATH
aplinkos kintamasis, pvz C:\Windows
.
2. Gaukite API raktą
Kitas veiksmas – užsiregistruoti gauti nemokamą API raktą, kurį CLI naudoja, kad užklaustų debesies kainodaros API užklausoms, pvz., gauti egzempliorių tipų kainas.
Visos operacinės sistemos:
infrakaštų registras
Raktas išsaugotas ~/.config/infracost/credentials.yml
.
3. Paleiskite „Infracost“.
Dabar esate pasirengę paleisti „Infracost“, kuri nekeičia jūsų „Terraform“ būsenos ar debesies išteklių. Galite paleisti jį naudodami pateiktą Terraform projektą, kad išbandytumėte.
Visos operacinės sistemos:
git klonas https://github.com/infracost/example-terraform.git
cd pavyzdys-terraform/sample1
# Žaiskite su main.tf ir paleiskite dar kartą, kad palygintumėte išlaidas
infrakaštų suskirstymas – kelias .
# Rodyti mėnesinių mokesčių skirtumą, redaguoti yml failą ir paleisti iš naujo, kad palygintumėte išlaidas
infracost diff –path . –sync-usage-file –usage-file infracost-usage.yml
4. Pridėti į CI/CD
Dabar galite naudoti „Infracost“. CI/CD integracijos kad automatiškai pridėtumėte ištraukimo užklausų komentarus, rodančius išlaidų sąmatos skirtumus. Tai taip pat suteiks jums saugos tinklą, leidžiantį komandoms aptarti pakeitimų poveikį sąnaudoms kaip darbo eigos dalį.
Naudojimas
Šios infracost
CLI turi šias pagrindines komandas:
breakdown
: rodyti visą išlaidų suskirstymądiff
: rodyti esamos ir planuojamos būsenos mėnesinių išlaidų skirtumą
Naudokite „Infracost“ konfigūracijos failą, jei jūsų atpirkime yra keli „Terraform“ projektai arba darbo vietos. Jų rezultatai bus sujungti į tą patį suskirstymą arba skirtingą išvestį.
Išplėstinis naudojimas
„Infracost“ taip pat turi įvairių pažangių naudojimo būdų, kuriuos galima naudoti be įprastų naudojimo būdų. Šiuos išplėstinius metodus taip pat galima naudoti naudojant „Infracost“ konfigūracijos failą.
Terraform plano failas
„Infracost“ galima paleisti naudojant „Terraform“ plano failą, o tai reiškia, kad jūs jau paleidote „Terraform“. init.
„Infracost“ tiesiog veikia „Terraform“.show
šiuo atveju, tai reiškia, kad nereikia debesies kredencialų arba --terraform-plan-flags
būti nustatytas.
CD kelias/į/kodas
teraformos init
terraform plan -out tfplan.binary
infrakaštų suskirstymas – kelias tfplan.binary
infracost diff – kelias tfplan.binary
Terraforminė valstybė
Jei norite pamatyti dabartinės Terraform būsenos išlaidų paskirstymą, turėtumėte žinoti infracost breakdown
komanda turi a --terraform-use-state
vėliava, kuri šiuo atveju būtų naudinga. Jau turite paleisti „Terraform“. apply
, todėl „Infracost“ tiesiog veikia „Terraform“. show
, kuriai nereikia debesies kredencialų arba --terraform-plan-flags
būti nustatytas.
infrastruktūros sąnaudų suskirstymas – kelio pavyzdžiai/terraform – terraformos naudojimo būsena
Terraform State JSON failas
Galite paleisti infracost breakdown
prieš Terraform būsenos JSON failą. Tai būtų būsenos [JSON išvesties formatas], o ne vidinis JSON atvaizdas. Jis turi būti sugeneruotas paleidžiant terraform show -json
Terraform projekto viduje, ir tai ypač naudinga, jei norite pamatyti dabartinės Terraform būsenos išlaidų paskirstymą. Šiuo atveju tai reiškia, kad jau paleisite „Terraform“. apply
, tai reiškia, kad nėra debesies kredencialų arba --terraform-plan-flags
reikalaujama.
Kurie debesys ir ištekliai palaikomi?
Infracost palaiko daugiau nei 200 Terraform išteklių AWS, Google ir Azure, o kiti IaC įrankiai, pvz Pulumi ir Debesų susidarymas yra įtrauktos į veiksmų planą. Naujų išteklių palaikymas nuolat pridedamas, todėl svarbu patikrinti leidimų atpirkimą.
Išvada
Infracost yra naudinga įrankis kūrėjams, DevOps, SRE ir kiti, norintys greitai pamatyti išlaidų paskirstymą ir iš anksto palyginti skirtingas parinktis. Tai taip pat geras pasirinkimas, jei norite jį integruoti su CI ir (arba) jums reikia AWS ir „Google Cloud“ palaikymo. Jei norite sukurti geresnį komandos bendradarbiavimą, „Infracost“ taip pat gali padėti šiuo klausimu. Dėl visų šių funkcijų jis yra įrankis, kurį turėtumėte rimtai apsvarstyti, norėdami apskaičiuoti „Terraform“ debesies sąnaudas.
Palikti atsakymą