Змест[Схаваць][Паказаць]
Infracost важны для DevOps, SRE і распрацоўшчыкаў, якія жадаюць ацаніць кошт воблака для праектаў інфраструктуры як кода, такіх як Terraform. З Infracost вы можаце хутка ўбачыць разбіўку выдаткаў, параўноўваючы розныя варыянты, што дапамагае атрымаць лепшую інфармацыю перад важным рашэннем.
Як працуе Infracost?
Infracost можа праверыць больш за 3 мільёны коштаў, адсканіраваўшы ваш код Terraform, і перад запускам рэсурсаў выдае простую і зручную для чытання ацэнку выдаткаў.
Вы таксама можаце выкарыстоўваць Infracost, каб даведацца, якія радкі кода найбольш уплываюць на кошт, паколькі ён адлюстроўвае кошт на рэсурсы ў вашых запытах на выцягванне. Інтэгруючы Infracost у свой CI/CD, вы можаце супрацоўнічаць са сваёй камандай і дазволіць абмеркаванне ўплыву змяненняў у вашым існуючым працоўным працэсе.
Infracost працуе праз бэкэнд-службу Cloud Pricing API, а з дапамогай інструмента CLI вы можаце разабраць план Terraform у фармаце JSON. API спасылаецца на індывідуальны кошт кожнага воблачнага рэсурсу, які выкарыстоўваецца, а таксама звязаныя з ім параметры кошту ў залежнасці ад воблачнага пастаўшчыка.
Праграма не патрабуе ніякіх уліковых дадзеных для працы, і яна не ўносіць ніякіх змяненняў у Terraform або прааналізаваныя воблачныя рэсурсы. Выкарыстоўваючы падлік тыпаў рэсурсаў Terraform, API забяспечвае ўлік новых рэсурсаў.
Ёсць два асноўных спосабу, як Infracost паказвае разбіўку выдаткаў:
A) Поўная разбіўка выдаткаў
B) Розніца штомесячных выдаткаў паміж бягучым і запланаваным станам
Пачатак працы з Infracost (крок за крокам)
Каб усталяваць і пачаць выкарыстоўваць Infracost, прытрымлівайцеся гэтага пакрокавага кіраўніцтва:
1. Усталюйце Infracost
Першым крокам да пачатку з'яўляецца ўстаноўка Infracost, але спачатку вы павінны ўжо мець яе Terraform усталяваны.
Вось агляд розных версій Infracost:
macOS Homebrew:
вараць усталяваць infracost
infracost –версія # Павінна паказваць v0.9.7
кіраўніцтва macOS:
# Спампоўвае CLI на аснове вашай OS/arch і змяшчае яго ў /usr/local/bin
завіток -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | ш
Linux:
# Спампоўвае CLI на аснове вашай OS/arch і змяшчае яго ў /usr/local/bin
завіток -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | ш
докер:
docker pull infracost/infracost
запуск докера -rm \
-e INFRACOST_API_KEY=гл.наступны_крок_як_атрымаць_гэта \
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
-v $PWD/:/код/ infracost/разбіўка infracost –шлях /код/
# Дадайце іншыя неабходныя сцягі/env для Infracost або Terraform
# Напрыклад, гэта можа спатрэбіцца, калі вы выкарыстоўваеце AWS accept-role:
# -e AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN \
# -e AWS_REGION=$AWS_REGION \
Windows:
Спампуйце і распакуйце апошні рэліз. Запусціце яго з каманднага радка або з дапамогай Powershell .\infracost.exe --no-color
разам з іншымі неабходнымі камандамі/сцягамі (у каляровым вывадзе ёсць памылка, якую мы павінны выправіць у Windows). Вы таксама павінны перамясціць файл exe у тэчку, якая знаходзіцца ў вашым PATH
зменная навакольнага асяроддзя, Напрыклад, C:\Windows
.
2. Атрымайце ключ API
Наступным крокам з'яўляецца рэгістрацыя для бясплатнага ключа API, які CLI выкарыстоўвае для запыту Cloud Pricing API для такіх задач, як атрыманне коштаў для тыпаў асобнікаў.
Усе аперацыйныя сістэмы:
рэгістр інфракаштоў
Ключ захаваны ў ~/.config/infracost/credentials.yml
.
3. Запусціце Infracost
Цяпер вы гатовыя запусціць Infracost, які не ўносіць ніякіх змяненняў у ваш стан Terraform або воблачныя рэсурсы. Вы можаце запусціць яго з прадстаўленым праектам Terraform, каб праверыць яго.
Усе аперацыйныя сістэмы:
git клон https://github.com/infracost/example-terraform.git
cd example-terraform/sample1
# Пагуляйце з main.tf і запусціце паўторна, каб параўнаць выдаткі
infracost breakdown –path .
# Паказаць розніцу штомесячных выдаткаў, адрэдагаваць файл yml і запусціць паўторна, каб параўнаць выдаткі
infracost diff –path . –sync-usage-file –usage-file infracost-usage.yml
4. Дадаць у CI/CD
Цяпер вы можаце выкарыстоўваць Infracost's Інтэграцыя CI/CD для аўтаматычнага дадання каментарыяў да запытаў на выцягванне, якія паказваюць адрозненні ў ацэнцы выдаткаў. Гэта таксама дасць вам сетку бяспекі, якая дазволіць камандам абмяркоўваць уплыў змяненняў на выдаткі ў рамках працоўнага працэсу.
Выкарыстанне
,en infracost
CLI мае наступныя асноўныя каманды:
breakdown
: паказаць поўную разбіўку выдаткаўdiff
: паказаць розніцу штомесячных выдаткаў паміж бягучым і запланаваным станам
Выкарыстоўвайце файл канфігурацыі Infracost, калі ў вашым сховішчы ёсць некалькі праектаў або працоўных прастор Terraform. Іх вынікі будуць аб'яднаны ў аднолькавую разбіўку або розніцу.
Пашыранае выкарыстанне
Infracost таксама мае розныя перадавыя метады выкарыстання, якія можна выкарыстоўваць у дадатак да звычайных метадаў выкарыстання. Гэтыя прасунутыя метады таксама можна выкарыстоўваць праз канфігурацыйны файл Infracost.
Файл плана Terraform
Infracost можна запусціць з файлам плана Terraform, што азначае, што вы ўжо запусцілі Terraform init.
Infracost проста запускае Terraformshow
у дадзеным выпадку гэта азначае, што для яго не патрэбныя ўліковыя дадзеныя для воблака або --terraform-plan-flags
быць усталяваны.
cd шлях/да/код
тэрафармаваць ініц
plan terraform -out tfplan.binary
infracost разбіўка –шлях tfplan.binary
infracost diff –шлях tfplan.binary
Тэраформная дзяржава
Калі вы хочаце ўбачыць разбіўку кошту бягучага стану Terraform, вы павінны ведаць infracost breakdown
Каманда мае a --terraform-use-state
сцяг, які апынуўся б карысным у гэтым выпадку. Вы ўжо павінны запусціць Terraform apply
, таму Infracost проста запускае Terraform show
, які не патрабуе ўліковых дадзеных у воблаку або --terraform-plan-flags
быць усталяваны.
infracost breakdown –path прыклады/terraform –terraform-use-state
Файл Terraform State JSON
Вы можаце запусціць infracost breakdown
супраць файла JSON стану Terraform. Гэта будзе [фармат вываду JSON] стану замест унутранага прадстаўлення JSON. Ён павінен быць згенераваны шляхам запуску terraform show -json
ўнутры праекта Terraform, і гэта асабліва карысна, калі вы хочаце ўбачыць разбіўку кошту бягучага стану Terraform. У гэтым выпадку гэта азначае, што вы ўжо запусцілі Terraform apply
, што азначае адсутнасць уліковых дадзеных у воблаку або --terraform-plan-flags
не патрабуецца.
Якія воблакі і рэсурсы падтрымліваюцца?
Infracost падтрымлівае больш чым 200 рэсурсаў Terraform у AWS, Google і Azure, а таксама ў іншых інструментах IaC Пулумі і Аблокаўтварэнне уключаны ў дарожную карту. Падтрымка новых рэсурсаў пастаянна дадаецца, таму важна правяраць рэпазіцыі на наяўнасць выпускаў.
заключэнне
Infracost - гэта карысна інструмент для распрацоўшчыкаў, DevOps, SRE і іншыя, якія жадаюць хутка ўбачыць разбіўку выдаткаў і загадзя параўнаць розныя варыянты. Гэта таксама добры выбар, калі вы хочаце інтэграваць яго з CI і/або патрэбна падтрымка AWS і Google Cloud. Калі вы хочаце палепшыць супрацоўніцтва паміж вашай камандай, Infracost таксама можа дапамагчы ў гэтым плане. Усе гэтыя функцыі робяць яго інструментам, які вам варта падумаць аб укараненні для ацэнкі кошту воблака для Terraform.
Пакінуць каментар