Automating Cost Management: Creating AWS Budgets with Terraform ⚙️

When it comes to monitoring, one of the most important things is to automate alarms, budget passes and always be aware of the price changes. I will show you how to create a Budget using AWS Billing and Cost Management with Terraform in this article. The main parts of this article: 1- About AWS Services 2- Architecture overview (Terraform) 3- Conclusion About AWS Services 1- AWS Billing and Cost Management provides a suite of features to help you set up your billing, retrieve and pay invoices, and analyze, organize, plan, and optimize your costs. To learn more about AWS Billing and Cost Management: Official Page Architecture Overview variable "region" { default = "eu-west-1" description = "AWS Region to deploy to" } terraform { required_version = "1.5.1" required_providers { aws = { source = "hashicorp/aws" version = "5.84.0" } } } provider "aws" { region = var.region } resource "aws_budgets_budget" "ec2" { name = "MonthlyBudget" budget_type = "COST" limit_amount = "10" limit_unit = "USD" time_unit = "MONTHLY" notification { comparison_operator = "GREATER_THAN" threshold = 80 threshold_type = "PERCENTAGE" notification_type = "FORECASTED" subscriber_email_addresses = [""] } tags = { Name = "MonthlyBudget" } } Now let's say you want to add a budget only for certain resources, you can add the following terraform code inside aws_budgets_budget. cost_filter { name = "Service" values = [ "Amazon Elastic Compute Cloud - Compute", ] } Conclusion Automating cost management and budget alerting is essential, especially as your team grows, activity on your account increases, and you scale up rapidly. Creating and maintaining budgets to stay on top of your costs is crucial. I hope this article was helpful and informative! Happy coding

Jan 26, 2025 - 15:04
 0
Automating Cost Management: Creating AWS Budgets with Terraform ⚙️

When it comes to monitoring, one of the most important things is to automate alarms, budget passes and always be aware of the price changes.

I will show you how to create a Budget using AWS Billing and Cost Management with Terraform in this article.

The main parts of this article:
1- About AWS Services
2- Architecture overview (Terraform)
3- Conclusion

About AWS Services

1- AWS Billing and Cost Management provides a suite of features to help you set up your billing, retrieve and pay invoices, and analyze, organize, plan, and optimize your costs.

To learn more about AWS Billing and Cost Management: Official Page

Architecture Overview

variable "region" {
  default     = "eu-west-1"
  description = "AWS Region to deploy to"
}

terraform {
  required_version = "1.5.1"
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "5.84.0"
    }
  }
}

provider "aws" {
  region = var.region
}

resource "aws_budgets_budget" "ec2" {
  name              = "MonthlyBudget"
  budget_type       = "COST"
  limit_amount      = "10"
  limit_unit        = "USD"
  time_unit         = "MONTHLY"

  notification {
    comparison_operator        = "GREATER_THAN"
    threshold                  = 80
    threshold_type             = "PERCENTAGE"
    notification_type          = "FORECASTED"
    subscriber_email_addresses = [""]
  }

  tags = {
    Name = "MonthlyBudget"
  }
}

Now let's say you want to add a budget only for certain resources, you can add the following terraform code inside aws_budgets_budget.

cost_filter {
  name = "Service"
  values = [
    "Amazon Elastic Compute Cloud - Compute",
  ]
}

Conclusion

Automating cost management and budget alerting is essential, especially as your team grows, activity on your account increases, and you scale up rapidly. Creating and maintaining budgets to stay on top of your costs is crucial. I hope this article was helpful and informative!

Happy coding