Lisi o Mataupu[Natia][Fa'aali]
Infracost e taua tele mo DevOps, SRE, ma atinaʻe o loʻo vaʻavaʻai e faʻatusatusa tau o ao mo atinaʻe-as-code projects pei o Terraform. Faatasi ai ma Infracost, e mafai ona e vave vaʻai i se tau faʻaititia aʻo faʻatusatusa filifiliga eseese, lea e fesoasoani e taʻitaʻia ai faʻamatalaga sili atu aʻo leʻi faia se filifiliga tele.
Fa'afefea ona galue Infracost?
E mafai e Infracost ona siaki le silia ma le 3 miliona tau e ala i le su'esu'eina o lau Terraform code, ma maua mai ai se tau fa'atatau faigofie ma faigofie ona faitau ae e te le'i fa'alauiloa punaoa.
E mafai fo'i ona e fa'aogaina le Infracost e iloa ai po'o fea laina fa'ailoga e sili ona tele le a'afiaga talu ai fa'afanua tau i punaoa i au toso talosaga. E ala i le tu'ufa'atasia o Infracost i lau CI/CD, e mafai ona e galulue fa'atasi ma lau 'au ma fa'atagaina talanoaga i le a'afiaga o suiga i lau fa'agasolo galuega.
Infracost e galue e ala i lana Cloud Pricing API backend service, ma faʻatasi ai ma le meafaigaluega CLI, e mafai ona e faʻavasega se fuafuaga Terraform i le JSON format. O lo'o fa'asinoina e le API le tau ta'ito'atasi o puna'oa ta'itasi o lo'o fa'aogaina, fa'apea fo'i ma a latou tau fa'atatau e fa'atatau i le tu'uina atu o ao.
E le mana'omia e le polokalame ni fa'ailoga e fa'agaioi ai, ma e le faia ai ni suiga i Terraform po'o le su'esu'eina o puna'oa ao. I le fa'aogaina o le faitau aofa'i o ituaiga punaoa a Terraform, e fa'amautinoa e le API o lo'o fa'amauina punaoa fou.
E lua auala autu e faʻaalia ai e le Infracost le vaevaeina o tau:
A) Vaeluaga atoa o tau
B) Eseesega o tau ta'i masina i le va o le setete o lo'o i ai nei ma le tulaga fuafuaina
Amataina i Infracost (Laasaga-ma-Laasaga)
Mulimuli i lea laasaga taʻitasi taʻiala e faʻapipiʻi ma amata faʻaaoga Infracost:
1. Fa'apipi'i Infracost
O le laasaga muamua e amata ai o le faʻapipiʻi Infracost, ae tatau ona e muamua iai Terraform faʻapipiʻi.
Ole va'aiga lea ile fa'aliliuga eseese ole Infracost:
macOS Homebrew:
brew install infracost
infracost –version # E tatau ona fa'aalia v0.9.7
tusi lesona macOS:
# Faʻapipiʻi le CLI faʻavae i luga o lau OS / arch ma tuʻu i totonu /usr/local/bin
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sh
Linux:
# Faʻapipiʻi le CLI faʻavae i luga o lau OS / arch ma tuʻu i totonu /usr/local/bin
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sh
Faʻamau:
toso fa'atauva'a infracost/infracost
taufetuli taufeau –rm \
-e INFRACOST_API_KEY = va'ai_mulimuli_laasaga
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
-v $PWD/:/code/ infracost/ infracost breakdown –ala/code/
# Fa'aopoopo isi fu'a/envs mana'omia mo Infracost po'o Terraform
# Mo se faʻataʻitaʻiga, atonu e manaʻomia pe afai o loʻo e faʻaogaina le AWS assume-role:
# -e AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN \
# -e AWS_REGION=$AWS_REGION \
pupuni:
La'u mai ma tatala le sipuni le toe tatala lata mai. Fa'asolo mai le Command Prompt po'o le Powershell fa'aoga .\infracost.exe --no-color
faʻatasi ma isi faʻatonuga / fuʻa manaʻomia (o le lanu lanu o loʻo i ai se pusa e manaʻomia ona faʻaleleia i luga o Windows). E tatau foi ona e siitia le faila exe i se faila o loʻo i totonu o lau faila PATH
fesuiaʻiga o le siʻosiʻomaga, eg C:\Windows
.
2. Maua se API Key
O le isi la'asaga o le resitalaina mo se ki API e leai se totogi, lea e fa'aoga e le CLI e fesiligia ai le Cloud Pricing API mo galuega e pei o le mauaina o tau mo fa'ata'ita'iga ituaiga.
Fa'atonuga uma:
tusi resitala infracost
O le ki ua sefe i totonu ~/.config/infracost/credentials.yml
.
3. Fa'afoe Infracost
O lea ua e sauni e fa'atino Infracost, lea e le faia ni suiga i lau Terraform state po'o le ao punaoa. E mafai ona e fa'atautaia i le poloketi Terraform e tu'uina atu e su'e ai.
Fa'atonuga uma:
git clone https://github.com/infracost/example-terraform.git
cd faataitaiga-terraform/sample1
# Taaalo ma main.tf ma toe tamoe e faatusatusa tau
infracost breakdown –alaala .
# Fa'aali ese'esega o tau fa'alemasina, fa'asa'o le faila yml ma toe ta'e e fa'atusatusa tau
infracost diff –alaala . –sync-usage-file –usage-file infracost-usage.yml
4. Fa'aopoopo ile CI/CD
E mafai nei ona e fa'aogaina le Infracost's CI/CD tu'ufa'atasiga e otometi le fa'aopoopoina o fa'amatalaga o talosaga, e fa'aali atu ai ia te oe le eseesega o tau fa'atatau. O le a tu'uina atu ai fo'i ia te oe se upega saogalemu, e mafai ai e 'au ona fa'atalanoa le tau o a'afiaga o suiga o se vaega o la latou galuega.
faaaogaina
le infracost
CLI o loʻo i ai tulafono autu nei:
breakdown
: fa'aalia le vaeluaga atoa o taudiff
: fa'aali ese'esega o tau fa'alemasina i le va o lo'o iai nei ma le tulaga fuafuaina
Fa'aoga se faila fa'akomipiuta Infracost pe a fai e tele galuega fa'atino a le Terraform po'o avanoa faigaluega i lau repo. O a latou fa'ai'uga o le a tu'ufa'atasia i le va'aiga tutusa po'o le 'ese'ese mea e maua.
Faʻaaogaina Sili
O le Infracost e iai fo'i auala fa'aoga fa'apitoa e mafai ona fa'aopoopo i auala fa'aoga masani. O nei auala faʻapitoa e mafai ona faʻaogaina e ala i le Infracost config file foi.
Faila Fuafuaga Terraform
Infracost e mafai ona fa'asaga i se faila o fuafuaga a Terraform, o lona uiga ua uma ona e fa'atautaia Terraform init.
Infracost na'o le fa'aogaina o Terraformshow
i lenei tulaga, o lona uiga e le manaʻomia ni faʻamatalaga ao poʻo --terraform-plan-flags
e setiina.
cd ala/to/code
terraform init
fuafuaga fa'afanua -out tfplan.binary
infracost malepe –path tfplan.binary
infracost diff –path tfplan.binary
Terraform State
Afai e te manaʻo e vaʻai i le tau o le tulaga o loʻo iai nei Terraform, e tatau ona e iloa le infracost breakdown
o le poloaiga e iai a --terraform-use-state
fu'a, lea e fa'amaonia le aoga i lenei tulaga. E tatau ona e fa'atautaia Terraform apply
, o le Infracost na'o le fa'agaoioia o Terraform show
, lea e le mana'omia ai fa'ailoga ao po'o --terraform-plan-flags
e setiina.
infracost breakdown –faʻataʻitaʻiga auala/terraform –terraform-use-state
Terraform State JSON File
E mafai ona e tamoe infracost breakdown
faasaga i le Terraform state JSON faila. O le a avea lea ma [JSON output format] o le setete nai lo le sui o le JSON i totonu. E tatau ona gaosia e ala i le tamoe terraform show -json
i totonu o se poloketi Terraform, ma e sili ona aoga pe afai e te manaʻo e vaʻai i le faʻaititia o tau o le Terraform state o loʻo iai nei. I lenei tulaga, o lona uiga ua uma ona e taʻavale Terraform apply
, o lona uiga e leai ni fa'ailoga ao po'o --terraform-plan-flags
e manaʻomia.
O fea Ao ma Punaoa e Lagolagoina?
Infracost lagolago sili atu nai lo 200 Terraform punaoa i luga ole AWS, Google, ma Azure, ae o isi meafaigaluega IaC pei Pulumi ma Cloudform o lo'o aofia i le fa'afanua auala. Lagolago mo punaoa fou o loʻo faʻaopoopoina i taimi uma, o lea e taua ai le siakiina o le repo mo faʻasalalauga.
iʻuga
Infracost ose fesoasoani meafaigaluega mo tagata atiae, DevOps, SRE, ma isi o loʻo vaʻavaʻai e vave vaʻavaʻai i le faʻaititia o tau ma faʻatusatusa filifiliga eseese i luma. Ose filifiliga lelei foi pe afai o lo'o e va'ai e tu'ufa'atasia ma le CI ma/pe mana'omia le lagolago mo AWS ma Google Cloud. Afai e te manaʻo e faʻaleleia atili le galulue faʻatasi i le va o lau 'au, e mafai foi e Infracost ona fesoasoani i lena tulaga. O nei vaega uma e avea ma meafaigaluega e tatau ona e mafaufau malosi e faʻatino mo faʻatusatusaga tau tau mo Terraform.
Tuua se tali