Infracost: la solución de la administración de costos de la nube para Terraform💰📉

Soy Roxs 👩💻| Software Developer | DevOps | DevSecOps | en @295DevOps 🖼 Content Creator. No se puede crecer si no estas dispuesto a saltar a la zona de peligro 🔥
Search for a command to run...

Soy Roxs 👩💻| Software Developer | DevOps | DevSecOps | en @295DevOps 🖼 Content Creator. No se puede crecer si no estas dispuesto a saltar a la zona de peligro 🔥
Hola, este sería el posible uso con la versión que es completamente gratis?... Qué tantas limitaciones o hasta dónde se puede hacer uso de la versión free?
Cada minuto que un dev espera un pipeline es un minuto de foco perdido. Multiplicalo por cada commit, cada MR, cada persona del equipo... y de repente ese pipeline de 25 minutos es el impuesto más car

Si venís siguiendo mi contenido hace rato, sabés que hay una frase que repito hasta el cansancio: la mejor forma de aprender cloud es rompiendo cosas en la cloud. El problema siempre fue el mismo: par

Si me seguís hace un tiempo ya sabés que estoy metida hasta con todo el power con Kiro IDE: demos, integraciones con GitLab CI, bootcamp y todo lo que se te ocurra. Así que cuando me crucé con este po

Build with fire, deploy with power 🔥

Por @roxsross · roxs.dev Introducción ¿Cuántas veces mergeaste un cambio de infraestructura y te enteraste del problema en producción? ¿Cuántos security groups abiertos al mundo, cuántos IAM con * en

On this page
El costo de la infraestructura es un tema crítico, especialmente cuando se trata del costo de la nube. Simplemente porque la mayoría de los gastos no son fijos, y es fácil complicar todo eligiendo las herramientas incorrectas. Sin embargo, siempre hay un ingeniero con superpower detrás de cada problema. El equipo de @infracost ha desarrollado una herramienta excepcional que escanea los cambios en el código de Terraform y crea una estimación de costos simple y comprensible antes de lanzar cualquier recurso.
Me gustaría compartir mi experiencia en la integración de la API de Infracost con Terraform. Se requiere experiencia técnica junto con algún conocimiento práctico de las acciones de GitHub, Terraform e Infracost API.
La API es una herramienta increíble para calcular el impacto de los costos en los proyectos de terraform. permite a DevOps, SRE y desarrolladores ver un desglose de costos y comprender los costos antes de realizar cambios, ya sea en la terminal o en los cambios mediante PR (pull request). También se puede usar para agregar automáticamente un comentario que muestre las diferencias de estimación de costos.
Repositorio Github
brew install infracost
infracost --version
$ infracost --version
Infracost v0.9.21
Para Registrarse
infracost register
Utiliza la CLI, La clave se puede recuperar con:
infracost configure get api_key
Ejecute Infracost usando nuestro proyecto Terraform de ejemplo para ver cómo funciona.
git clone https://github.com/roxsross/terraform-infracost.git
cd terraform-infracost/example-aws
#Dado que este Terraform no se ha aplicado, la línea de base es de $0, por lo que la diferencia es de $680
infracost diff --path .
# Actualiza el tipo de instance type to m5.8xlarge.
vi main.tf
# Vuelve aplicar y veras los nuevos cambios? Costing over $1100/month!
infracost diff --path .
rossanasuarez@ubuntu:~/295devops/terraform-infracost/example-aws$ infracost diff --path .
Detected Terraform directory at .
✔ Checking for cached plan... found
✔ Extracting only cost-related params from terraform
✔ Retrieving cloud prices to calculate costs
Project: infracost/example-terraform/example-aws
+ aws_instance.web_app
+$680
+ Instance usage (Linux/UNIX, on-demand, m5.4xlarge)
+$561
+ root_block_device
+ Storage (general purpose SSD, gp2)
+$5.00
+ ebs_block_device[0]
+ Storage (provisioned IOPS SSD, io1)
+$62.50
+ Provisioned IOPS
+$52.00
+ aws_lambda_function.hello_world
Monthly cost depends on usage
+ Requests
Monthly cost depends on usage
+$0.20 per 1M requests
+ Duration
Monthly cost depends on usage
+$0.0000166667 per GB-seconds
Monthly cost change for infracost/example-terraform/example-aws
Amount: +$680 ($0.00 → $680)
──────────────────────────────────
Key: ~ changed, + added, - removed
2 cloud resources were detected:
∙ 2 were estimated, all of which include usage-based costs, see https://infracost.io/usage-file
Hay múltiples CI/CD para integrar la API de Infracost.
Pero para esta entrada del blog nos centraremos solo en las acciones de GitHub. para obtener más información, consulte la documentación de infracost.io .
Dado que la clave se usará en las acciones de GitHub, debemos almacenarla en los secretos de acciones. Para hacerlo, vaya a Configuración-> secretos-> Acciones. Luego haga clic en Nuevo secreto de repositorio.

Publique su clave, recupérela usando
infracost configure get api_key
y luego haga clic en Agregar secreto.

En la documentación, hay una plantilla para integrar la infraestructura con la acción de GitHub.
on: [pull_request]
jobs:
infracost:
runs-on: ubuntu-latest
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
name: Run Infracost
steps:
- name: Check out repository
uses: actions/checkout@v2
- name: Install terraform
uses: hashicorp/setup-terraform@v1
with:
terraform_wrapper: false
- name: Setup Infracost
uses: infracost/actions/setup@v1
with:
api-key: ${{ secrets.INFRACOST_API_KEY }}
- name: Generate Infracost JSON
run: infracost breakdown --path=aws-example --format=json --out-file=/tmp/infracost.json
- name: Post Infracost comment
uses: infracost/actions/comment@v1
with:
path: /tmp/infracost.json
behavior: update

Luego aplican con PR o la configuración que le asignen en "on"
y verán los resultados

Para resumir , en esta publicación de blog echamos un vistazo a la funcionalidad de Infracost y las acciones de GitHub
Espero que hayas disfrutado leyendo este artículo, si es así, aplaude, comenta y comparte.
