Мазмуну[Жашыруу][Көрсөтүү]
Infracost DevOps, SRE жана Terraform сыяктуу код катары инфраструктуралык долбоорлор үчүн булуттук чыгымдарды баалоону каалаган иштеп чыгуучулар үчүн маанилүү. Infracost менен, ар кандай варианттарды салыштырып жатып, чыгашалардын бөлүштүрүлүшүн тез көрө аласыз, бул чоң чечимге чейин жакшыраак түшүнүктөрдү алууга жардам берет.
Infracost кантип иштейт?
Infracost сиздин Terraform кодуңузду сканерлөө менен 3 миллиондон ашык бааларды текшере алат жана ресурстарды ишке киргизүүдөн мурун жөнөкөй жана окууга оңой чыгымдардын сметасын түзөт.
Коддун кайсы саптары эң чоң чыгымга таасир этээрин билүү үчүн Infracostту да колдонсоңуз болот, анткени ал тартуу сурамдарыңыздагы ресурстарга кеткен чыгымды карталайт. Infracost'ту CI/CD'ге интеграциялоо менен, сиз өз командаңыз менен кызматташып, учурдагы иш процессиңиздеги өзгөрүүлөрдүн таасири боюнча талкууларды иштете аласыз.
Infracost өзүнүн Cloud Pricing API сервер кызматы аркылуу иштейт жана CLI куралы менен JSON форматында Terraform планын талдай аласыз. API колдонулуп жаткан ар бир булут ресурсунун жеке баасын, ошондой эле булут провайдерине негизделген алардын тиешелүү наркынын параметрлерин кайчылаш шилтеме кылат.
Программа иштөө үчүн эч кандай эсептик дайындарды талап кылбайт жана Terraform же талданган булут ресурстарына эч кандай өзгөртүүлөрдү киргизбейт. Terraform ресурс түрлөрүнүн эсебин колдонуу менен, API жаңы ресурстардын эсепке алынышын камсыздайт.
Infracost чыгымдардын бөлүштүрүлүшүн көрсөтүүнүн эки негизги жолу бар:
A) Чыгымдардын толук бөлүнүшү
B) Айлык чыгымдардын учурдагы жана пландаштырылган мамлекеттин ортосундагы айырмасы
Infracost менен баштоо (кадам-кадам)
Infracost орнотуу жана колдонуу үчүн бул кадам-кадам нускаманы аткарыңыз:
1. Infracost орнотуу
Баштоо үчүн биринчи кадам - Infracost орнотуу, бирок сизде мурунтан эле болушу керек Terraform орнотулган.
Бул жерде Infracostтун ар кандай версияларын карап көрөлү:
macOS Homebrew:
brew install infracost
infracost -версия # v0.9.7 көрсөтүү керек
macOS колдонмосу:
# OS/arch негизинде CLI жүктөп алып, аны /usr/local/bin ичине коет
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | ш
Linux:
# OS/arch негизинде CLI жүктөп алып, аны /usr/local/bin ичине коет
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | ш
Докер:
докер тартуу инфракост/инфракост
docker run –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/:/code/ infracost/infracost бузулушу -жол /код/
# Infracost же Terraform үчүн башка керектүү желектерди/энвтерди кошуңуз
# Мисалы, эгерде сиз AWS assume-role колдонуп жатсаңыз, булар талап кылынышы мүмкүн:
# -e AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN \
# -e AWS_REGION=$AWS_REGION \
Windows:
Жүктөп алып, архивден чыгарыңыз акыркы чыгарылыш. Аны Command Prompt же 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 мисал-terraform/sample1
# main.tf менен ойноп, чыгымдарды салыштыруу үчүн кайра иштетиңиз
инфракосттун бузулушу – жол.
# Айлык чыгымдардын айырмасын көрсөтүңүз, yml файлын түзөтүңүз жана чыгымдарды салыштыруу үчүн кайра иштетиңиз
infracost diff –path. –sync-usage-file –usage-file infracost-usage.yml
4. CI/CDге кошуңуз
Сиз азыр Infracost колдоно аласыз CI/CD интеграциялары автоматтык түрдө тартуу сурамынын комментарийлерин кошуу үчүн, алар сизге чыгымдардын сметалык айырмасын көрсөтөт. Бул ошондой эле коопсуздук тармагын камсыздайт, бул командаларга алардын иш процессинин бир бөлүгү катары өзгөрүүлөрдүн чыгымга тийгизген таасирин талкуулоого мүмкүндүк берет.
колдонуу
The infracost
CLI төмөнкү негизги буйруктарга ээ:
breakdown
: чыгымдардын толук бөлүштүрүлүшүн көрсөтүүdiff
: учурдагы жана пландаштырылган мамлекеттин ортосундагы айлык чыгымдардын айырмасын көрсөтүү
Эгерде репоңузда бир нече Terraform долбоорлору же жумушчу мейкиндиктер болсо, Infracost конфигурация файлын колдонуңуз. Алардын натыйжалары бирдей бөлүштүрүүгө же айырма чыгарууга бириктирилет.
Өркүндөтүлгөн колдонуу
Infracost ошондой эле үзгүлтүксүз колдонуу ыкмаларына кошумча колдонула турган ар кандай өнүккөн колдонуу ыкмаларына ээ. Бул өркүндөтүлгөн ыкмаларды Infracost конфигурация файлы аркылуу да колдонсо болот.
Terraform Plan File
Infracost Terraform план файлына каршы иштетилиши мүмкүн, бул сиз Terraformду иштеткениңизди билдирет init.
Infracost жөн гана Terraform иштететshow
бул учурда, бул булут эсептик дайындарын талап кылбайт дегенди билдирет --terraform-plan-flags
коюлушу керек.
CD жол/код
terraform init
terraform планы -чыккан tfplan.binary
инфракосттун бузулушу – жол tfplan.binary
infracost diff –path tfplan.binary
Терраформ штаты
Эгерде сиз учурдагы Terraform абалынын наркынын бөлүштүрүлүшүн көргүңүз келсе, анда билишиңиз керек infracost breakdown
команда бар --terraform-use-state
желек, бул учурда пайдалуу болот. Сиз буга чейин Terraform иштетишиңиз керек apply
, ошондуктан Infracost жөн гана Terraformду иштетет show
, булуттун эсептик дайындарын талап кылбайт же --terraform-plan-flags
коюлушу керек.
инфракосттун бузулушу – жол мисалдары/terraform –terraform-use-state
Terraform State JSON файлы
Сиз чуркай алат infracost breakdown
Terraform мамлекеттик JSON файлына каршы. Бул ички JSON өкүлчүлүгүнүн ордуна мамлекеттин [JSON чыгаруу форматы] болмок. Аны иштетүү аркылуу түзүш керек terraform show -json
Terraform долбоорунун ичинде жана учурдагы Terraform абалынын чыгымдарынын бөлүштүрүлүшүн көргүңүз келсе, бул өзгөчө пайдалуу. Бул учурда сиз Terraformду иштетип жатканыңызды билдирет apply
, эч кандай булут эсептик дайындарын билдирет же --terraform-plan-flags
талап кылынат.
Кайсы булуттар жана ресурстар колдоого алынат?
Infracost көбүрөөк колдойт 200 Terraform ресурстары AWS, Google жана Azure боюнча, ал эми башка IaC куралдары сыяктуу Пулуми жана Cloudformation жол картасына киргизилген. Жаңы ресурстарды колдоо тынымсыз кошулуп турат, андыктан репо релиздерин текшерүү маанилүү.
жыйынтыктоо
Infracost пайдалуу иштеп чыгуучулар үчүн курал, DevOps, SRE жана башкалар чыгымдардын бөлүштүрүлүшүн тез көрүүнү жана ар кандай варианттарды алдын ала салыштырууну көздөйт. Эгер сиз аны CI менен интеграциялоону каалап жатсаңыз жана/же AWS жана Google Cloud колдоого муктаж болсоңуз, бул жакшы тандоо. Эгерде сиз өзүңүздүн командаңыздын ортосунда жакшыраак кызматташууну түзгүңүз келсе, Infracost бул жагынан да жардам бере алат. Бул өзгөчөлүктөрдүн баары аны Terraform үчүн булуттук чыгымдардын сметасын ишке ашырууну катуу ойлонушуңуз керек болгон куралга айлантат.
Таштап Жооп