Innehållsförteckning[Dölj][Visa]
Infracost är viktigt för DevOps, SRE och utvecklare som vill uppskatta molnkostnader för infrastruktur-som-kod-projekt som Terraform. Med Infracost kan du snabbt se en kostnadsfördelning samtidigt som du jämför olika alternativ, vilket hjälper till att leda till bättre insikter inför ett stort beslut.
Hur fungerar Infracost?
Infracost kan kontrollera över 3 miljoner priser genom att skanna din Terraform-kod, och den producerar en enkel och lättläst kostnadsberäkning innan du startar resurser.
Du kan också använda Infracost för att veta vilka kodrader som har störst kostnadseffekt eftersom det mappar kostnaden till resurser i dina pull-förfrågningar. Genom att integrera Infracost i din CI/CD kan du samarbeta med ditt team och möjliggöra diskussioner om effekterna av förändringar i ditt befintliga arbetsflöde.
Infracost fungerar genom sin Cloud Pricing API backend-tjänst, och med CLI-verktyget kan du analysera en Terraform-plan i JSON-format. API:et korsrefererar den individuella kostnaden för varje molnresurs som används, såväl som deras relaterade kostnadsparametrar baserat på molnleverantören.
Programmet kräver inga inloggningsuppgifter för att fungera, och det gör inga ändringar i Terraform eller de analyserade molnresurserna. Genom att använda antalet Terraform-resurstyper säkerställer API:et att nya resurser tas i beaktande.
Det finns två huvudsakliga sätt som Infracost visar kostnadsfördelningen på:
A) Fullständig uppdelning av kostnader
B) Skillnaden mellan månatliga kostnader mellan nuvarande och planerade tillstånd
Komma igång med Infracost (steg-för-steg)
Följ denna steg-för-steg-guide för att installera och börja använda Infracost:
1. Installera Infracost
Det första steget för att komma igång är att installera Infracost, men du måste först redan ha det Terraform installerad.
Här är en titt på de olika versionerna av Infracost:
macOS Homebrew:
brygg installera infrakostnad
infracost –version # Bör visa v0.9.7
macOS manual:
# Laddar ner CLI baserat på ditt OS/arch och lägger den i /usr/local/bin
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sh
Linux:
# Laddar ner CLI baserat på ditt OS/arch och lägger den i /usr/local/bin
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sh
Hamnarbetare:
docker pull infracost/infracost
docker run –rm \
-e INFRACOST_API_KEY=se_följer_steg_på_hur_att_få_detta \
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
-v $PWD/:/code/ infracost/infracost uppdelning –sökväg /code/
# Lägg till andra obligatoriska flaggor/envs för Infracost eller Terraform
# Till exempel kan dessa krävas om du använder AWS anta-roll:
# -e AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN \
# -e AWS_REGION=$AWS_REGION \
Windows:
Ladda ner och packa upp den senaste släppningen. Kör det från kommandotolken eller Powershell med hjälp av .\infracost.exe --no-color
tillsammans med andra nödvändiga kommandon/flaggor (färgutdata har en bugg som vi måste fixa på Windows). Du bör också flytta exe-filen till en mapp som finns i din PATH
miljöfaktor, t.ex C:\Windows
.
2. Skaffa en API-nyckel
Nästa steg är att registrera dig för en gratis API-nyckel, som CLI använder för att fråga Cloud Pricing API för uppgifter som att få priser till exempel typer.
Alla operativsystem:
infrakostnadsregister
Nyckeln sparas i ~/.config/infracost/credentials.yml
.
3. Kör Infracost
Nu är du redo att köra Infracost, som inte gör några ändringar i ditt Terraform-tillstånd eller molnresurser. Du kan köra det med det medföljande Terraform-projektet för att testa det.
Alla operativsystem:
git-klon https://github.com/infracost/example-terraform.git
cd exempel-terraform/sample1
# Spela med main.tf och kör igen för att jämföra kostnader
infrakostnadsuppdelning – sökväg .
# Visa diff av månatliga kostnader, redigera yml-filen och kör igen för att jämföra kostnader
infracost diff –path . –sync-usage-file –usage-file infracost-usage.yml
4. Lägg till i CI/CD
Du kan nu använda Infracost's CI/CD-integrationer för att automatiskt lägga till kommentarer för pull-begäran, som visar skillnader i kostnadsberäkningar. Detta kommer också att ge dig ett säkerhetsnät som gör det möjligt för team att diskutera kostnadseffekterna av förändringar som en del av deras arbetsflöde.
Användning
Smakämnen infracost
CLI har följande huvudkommandon:
breakdown
: visa fullständig uppdelning av kostnaderdiff
: visa skillnaden mellan månatliga kostnader mellan aktuellt och planerat tillstånd
Använd en Infracost-konfigurationsfil om din repo har flera Terraform-projekt eller arbetsytor. Deras resultat kommer att kombineras till samma uppdelning eller diff-utgång.
Avancerad användning
Infracost har även olika avancerade användningsmetoder som kan användas utöver de vanliga användningsmetoderna. Dessa avancerade metoder kan också användas via en Infracost-konfigurationsfil.
Terraform planfil
Infracost kan köras mot en Terraform planfil, vilket innebär att du redan har kört Terraform init.
Infracost kör bara Terraformshow
i det här fallet, vilket betyder att det inte kräver molnuppgifter eller --terraform-plan-flags
som ska ställas in.
cd sökväg/till/kod
terraform init
terraform plan -out tfplan.binary
infrakostnadsuppdelning –sökväg tfplan.binary
infracost diff –path tfplan.binary
Terraform State
Om du vill se kostnadsfördelningen för det aktuella Terraform-tillståndet bör du känna till infracost breakdown
kommandot har en --terraform-use-state
flagga, vilket skulle visa sig vara användbart i detta fall. Du måste redan köra Terraform apply
, så Infracost kör bara Terraform show
, som inte kräver molnuppgifter eller --terraform-plan-flags
som ska ställas in.
infrakostnadsuppdelning – vägexempel/terraform –terraform-användningstillstånd
Terraform State JSON-fil
Du kan köra infracost breakdown
mot en Terraform state JSON-fil. Detta skulle vara [JSON output format] för tillståndet istället för den interna JSON-representationen. Den måste genereras genom att köra terraform show -json
inuti ett Terraform-projekt, och det är särskilt användbart om du vill se kostnadsfördelningen för det aktuella Terraform-tillståndet. I det här fallet innebär det att du redan kör Terraform apply
, vilket betyder inga molnuppgifter eller --terraform-plan-flags
krävs.
Vilka moln och resurser stöds?
Infracost stöder mer än 200 Terraform-resurser över AWS, Google och Azure, medan andra IaC-verktyg som Pulumi och Molnbildning ingår i färdplanen. Stöd för nya resurser läggs hela tiden till, så det är viktigt att kontrollera repet för releaser.
Slutsats
Infracost är till hjälp verktyg för utvecklare, DevOps, SRE och andra som vill snabbt se kostnadsfördelningen och jämföra olika alternativ i förväg. Det är också ett bra val om du funderar på att integrera den med CI och/eller behöver stöd för AWS och Google Cloud. Vill du skapa bättre samarbete mellan ditt team kan Infracost även hjälpa till i det avseendet. Alla dessa funktioner gör det till ett verktyg som du starkt bör överväga att implementera för molnkostnadsberäkningar för Terraform.
Kommentera uppropet