Содержание[Скрывать][Показывать]
Infracost важна для DevOps, SRE и разработчиков, которые хотят оценить затраты на облако для проектов инфраструктуры как кода, таких как Terraform. С помощью Infracost вы можете быстро увидеть разбивку затрат при сравнении различных вариантов, что поможет лучше понять, прежде чем принимать важное решение.
Как работает Инфракост?
Infracost может проверить более 3 миллионов цен, сканируя ваш код Terraform, и выдает простую и удобочитаемую смету расходов перед запуском ресурсов.
Вы также можете использовать Infracost, чтобы узнать, какие строки кода имеют наибольшее влияние на стоимость, поскольку он сопоставляет стоимость с ресурсами в ваших запросах на вытягивание. Интегрировав Infracost в вашу CI/CD, вы сможете сотрудничать со своей командой и обсуждать влияние изменений на ваш существующий рабочий процесс.
Infracost работает через серверную службу Cloud Pricing API, а с помощью инструмента CLI вы можете анализировать план Terraform в формате JSON. API сопоставляет индивидуальную стоимость каждого используемого облачного ресурса, а также связанные с ними параметры стоимости в зависимости от поставщика облачных услуг.
Программа не требует никаких учетных данных для работы и не вносит никаких изменений в Terraform или анализируемые облачные ресурсы. Используя подсчет типов ресурсов Terraform, API обеспечивает учет новых ресурсов.
Есть два основных способа, которыми Инфракост показывает разбивку затрат:
A) Полная разбивка затрат
B) Разница ежемесячных затрат между текущим и плановым состоянием
Начало работы с Infracost (шаг за шагом)
Следуйте этому пошаговому руководству, чтобы установить и начать использовать Infracost:
1. Установите Инфракост
Первым шагом к началу работы является установка Infracost, но сначала вы должны уже иметь Terraform установлен.
Вот посмотрите на различные версии Infracost:
MacOS Homebrew:
варить установить инфракост
infracost –version # Должно отображаться v0.9.7
руководство по macOS:
# Загружает CLI на основе вашей ОС/архива и помещает его в /usr/local/bin
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | ш
Linux:
# Загружает CLI на основе вашей ОС/архива и помещает его в /usr/local/bin
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | ш
Докер:
docker pull инфракост/инфракост
докер запустить –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/ инфрарост/разбивка инфрароста –path /code/
# Добавьте другие необходимые флаги/окружения для Infracost или Terraform
# Например, это может потребоваться, если вы используете предполагаемую роль AWS:
# -e AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN \
# -e AWS_REGION=$AWS_REGION \
Windows:
Загрузите и разархивируйте последний релиз. Запустите его из командной строки или Powershell, используя .\infracost.exe --no-color
наряду с другими необходимыми командами/флагами (вывод цвета содержит ошибку, которую нам нужно исправить в Windows). Вы также должны переместить исполняемый файл в папку, которая находится в вашем 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-файл-использования –файл-использования infracost-usage.yml
4. Добавьте в CI/CD
Теперь вы можете использовать Infracost CI/CD интеграции чтобы автоматически добавлять комментарии к запросам на вытягивание, которые показывают разницу в смете затрат. Это также предоставит вам систему безопасности, позволяющую командам обсуждать влияние изменений на стоимость в рамках своего рабочего процесса.
Применение
Ассоциация infracost
CLI имеет следующие основные команды:
breakdown
: показать полную разбивку затратdiff
: показать разницу ежемесячных затрат между текущим и запланированным состоянием
Используйте файл конфигурации Infracost, если в вашем репозитории есть несколько проектов или рабочих областей Terraform. Их результаты будут объединены в одну и ту же разбивку или вывод различий.
Расширенное использование
Infracost также имеет различные расширенные методы использования, которые можно использовать в дополнение к обычным методам использования. Эти расширенные методы также можно использовать через файл конфигурации Infracost.
Файл плана Terraform
Infracost можно запустить с файлом плана Terraform, что означает, что вы уже запустили Terraform. init.
Infracost просто запускает Terraformshow
в этом случае это означает, что для него не требуются облачные учетные данные или --terraform-plan-flags
установить.
cd путь/к/коду
инициализация терраформирования
план терраформирования -out tfplan.binary
разбивка инфрастоимости –путь tfplan.binary
diff infracost –путь tfplan.binary
Состояние терраформы
Если вы хотите увидеть разбивку стоимости текущего состояния Terraform, вы должны знать infracost breakdown
команда имеет --terraform-use-state
флаг, который окажется полезным в этом случае. Вы должны уже запустить Terraform apply
, поэтому Infracost просто запускает Terraform show
, для которого не требуются облачные учетные данные или --terraform-plan-flags
установить.
разбивка инфраструктуры — примеры пути / terraform — terraform-use-state
JSON-файл состояния Terraform
Вы можете запустить infracost breakdown
против JSON-файла состояния Terraform. Это будет [выходной формат JSON] состояния вместо внутреннего представления JSON. Он должен быть сгенерирован запуском terraform show -json
внутри проекта Terraform, и это особенно полезно, если вы хотите увидеть разбивку стоимости текущего состояния Terraform. В этом случае это означает, что вы уже запустили Terraform. apply
, что означает отсутствие облачных учетных данных или --terraform-plan-flags
необходимы.
Какие облака и ресурсы поддерживаются?
Infracost поддерживает более 200 ресурсов Терраформ в AWS, Google и Azure, в то время как другие инструменты IaC, такие как Пулуми и Облакообразование включены в дорожную карту. Поддержка новых ресурсов постоянно добавляется, поэтому важно проверять наличие релизов в репозитории.
Заключение
Infracost — это полезно инструмент для разработчиков, DevOps, SRE и другие компании, которые хотят быстро увидеть разбивку затрат и заранее сравнить различные варианты. Это также хороший выбор, если вы хотите интегрировать его с CI и/или нуждаетесь в поддержке AWS и Google Cloud. Если вы хотите наладить сотрудничество между своей командой, Infracost также может помочь в этом отношении. Все эти функции делают его инструментом, который вам настоятельно рекомендуется использовать для оценки стоимости облака для Terraform.
Оставьте комментарий