Inhoudsopgave[Zich verstoppen][Laten zien]
Infracost is belangrijk voor DevOps, SRE en ontwikkelaars die cloudkosten willen schatten voor infrastructure-as-code-projecten zoals Terraform. Met Infracost kunt u snel een kostenoverzicht zien terwijl u verschillende opties vergelijkt, wat leidt tot betere inzichten voordat u een grote beslissing neemt.
Hoe werkt Infrakosten?
Infracost kan meer dan 3 miljoen prijzen controleren door uw Terraform-code te scannen en het produceert een eenvoudige en gemakkelijk leesbare kostenraming voordat u bronnen start.
U kunt Infracost ook gebruiken om te weten welke regels code de grootste kostenimpact hebben, aangezien het kosten toewijst aan resources in uw pull-aanvragen. Door Infracost in uw CI/CD te integreren, kunt u samenwerken met uw team en discussies mogelijk maken over de impact van wijzigingen in uw bestaande workflow.
Infracost werkt via zijn Cloud Pricing API-backend-service en met de CLI-tool kunt u een Terraform-plan in JSON-indeling ontleden. De API verwijst naar de individuele kosten van elke cloudresource die in gebruik is, evenals de bijbehorende kostenparameters op basis van de cloudprovider.
Het programma heeft geen inloggegevens nodig om te werken en het brengt geen wijzigingen aan in Terraform of in de geanalyseerde cloudresources. Door het aantal Terraform-resourcetypen te gebruiken, zorgt de API ervoor dat er rekening wordt gehouden met nieuwe resources.
Er zijn twee belangrijke manieren waarop Infracost de uitsplitsing van de kosten weergeeft:
A) Volledige uitsplitsing van de kosten
B) Verschil in maandelijkse kosten tussen huidige en geplande staat
Aan de slag met Infracost (stap voor stap)
Volg deze stapsgewijze handleiding om Infracost te installeren en te gebruiken:
1. Installeer Infracost
De eerste stap om aan de slag te gaan is het installeren van Infracost, maar dat moet je eerst al hebben gedaan Terraform geïnstalleerd.
Hier is een blik op de verschillende versies van Infracost:
macOS Homebrew:
brouw installeren infracost
infracost –versie # Zou v0.9.7 moeten tonen
macOS-handleiding:
# Downloadt de CLI op basis van uw besturingssysteem/arch en plaatst deze in /usr/local/bin
krul -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sch
Linux:
# Downloadt de CLI op basis van uw besturingssysteem/arch en plaatst deze in /usr/local/bin
krul -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sch
Docker:
docker pull-infracost/infracost
docker-run –rm \
-e INFRACOST_API_KEY=see_following_step_on_how_to_get_this \
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
-v $PWD/:/code/ infrakosten/uitsplitsing infrakosten –pad /code/
# Voeg andere vereiste vlaggen/envs toe voor Infracost of Terraform
# Deze kunnen bijvoorbeeld vereist zijn als u AWS-aanname-rol gebruikt:
# -e AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN \
# -e AWS_REGION=$AWS_REGION \
Windows:
Download en pak het uit nieuwste release. Voer het uit vanaf de opdrachtprompt of Powershell met behulp van .\infracost.exe --no-color
naast andere vereiste commando's/vlaggen (kleuruitvoer heeft een bug die we in Windows moeten oplossen). U moet het exe-bestand ook verplaatsen naar een map in uw PATH
variabele omgeving, bijv C:\Windows
.
2. Krijg een API-sleutel
De volgende stap is het registreren voor een gratis API-sleutel, die de CLI gebruikt om de Cloud Pricing API te doorzoeken voor taken zoals het verkrijgen van prijzen voor instantietypen.
Alle besturingssystemen:
infrakosten register
De sleutel is opgeslagen in ~/.config/infracost/credentials.yml
.
3. Voer Infracost uit
Nu bent u klaar om Infracost uit te voeren, wat geen wijzigingen aanbrengt in uw Terraform-status of cloudresources. U kunt het uitvoeren met het meegeleverde Terraform-project om het uit te testen.
Alle besturingssystemen:
git kloon https://github.com/infracost/example-terraform.git
cd voorbeeld-terraform/sample1
# Speel met main.tf en voer het opnieuw uit om de kosten te vergelijken
uitsplitsing infrastructuurkosten -pad .
# Toon diff van maandelijkse kosten, bewerk het yml-bestand en voer het opnieuw uit om de kosten te vergelijken
infrakosten diff –pad . –sync-gebruiksbestand –gebruiksbestand infracost-gebruik.yml
4. Toevoegen aan CI/CD
U kunt nu Infracost's gebruiken CI/CD-integraties om automatisch opmerkingen over pull-aanvragen toe te voegen, die verschillen in kostenramingen laten zien. Dit biedt u ook een vangnet, waardoor teams de kostenimpact van wijzigingen kunnen bespreken als onderdeel van hun workflow.
Gebruik
De infracost
CLI heeft de volgende hoofdopdrachten:
breakdown
: toon een volledig overzicht van de kostendiff
: toon verschillen van maandelijkse kosten tussen huidige en geplande status
Gebruik een Infracost-configuratiebestand als uw opslagplaats meerdere Terraform-projecten of werkruimten heeft. Hun resultaten worden gecombineerd tot dezelfde uitsplitsing of diff-output.
Geavanceerd gebruik
Infracost kent ook verschillende geavanceerde gebruiksmethoden die naast de reguliere gebruiksmethoden kunnen worden gebruikt. Deze geavanceerde methoden kunnen ook worden gebruikt via een Infracost-configuratiebestand.
Terraform-planbestand
Infracost kan worden uitgevoerd tegen een Terraform-planbestand, wat impliceert dat u Terraform al hebt uitgevoerd init.
Infracost draait gewoon Terraformshow
in dit geval betekent dit dat er geen cloudreferenties nodig zijn of --terraform-plan-flags
er klaar voor zijn.
cd pad/naar/code
terraform begin
terraform plan -out tfplan.binary
uitsplitsing infrakosten –pad tfplan.binary
infracost diff –pad tfplan.binair
Terraform staat
Als u de kostenverdeling van de huidige Terraform-status wilt zien, moet u de infracost breakdown
commando heeft een --terraform-use-state
vlag, wat in dit geval handig zou zijn. U moet Terraform al uitvoeren apply
, dus Infracost draait gewoon Terraform show
, waarvoor geen cloudreferenties nodig zijn of --terraform-plan-flags
er klaar voor zijn.
uitsplitsing van infrastructuur –padvoorbeelden/terraform –terraform-use-state
Terraform State JSON-bestand
Je kunt het infracost breakdown
tegen een JSON-bestand met een Terraform-status. Dit zou het [JSON-uitvoerformaat] van de staat zijn in plaats van de interne JSON-representatie. Het moet worden gegenereerd door te draaien terraform show -json
binnen een Terraform-project, en het is vooral handig als u de kostenverdeling van de huidige Terraform-status wilt zien. In dit geval betekent dit dat u Terraform al uitvoert apply
, wat betekent dat er geen cloudreferenties of --terraform-plan-flags
nodig.
Welke clouds en resources worden ondersteund?
Infracost ondersteunt meer dan 200 Terraform-bronnen over AWS, Google en Azure, terwijl andere IaC-tools zoals Pulumi en Wolkenvorming zijn opgenomen in het stappenplan. Ondersteuning voor nieuwe bronnen wordt voortdurend toegevoegd, dus het is belangrijk om de repo te controleren op releases.
Conclusie
Infracost is een hulpmiddel hulpmiddel voor ontwikkelaars, DevOps, SRE en anderen die snel de kostenverdeling willen zien en verschillende opties vooraf willen vergelijken. Het is ook een goede keuze als u het wilt integreren met CI en/of ondersteuning nodig heeft voor AWS en Google Cloud. Als u een betere samenwerking tussen uw team wilt creëren, kan Infracost u daar ook bij helpen. Al deze functies maken het een tool die u sterk moet overwegen om te implementeren voor cloudkostenramingen voor Terraform.
Laat een reactie achter