AWSAWS ConfigSecurity & Identity

aws_config_configuration_recorder cost estimation

Records resource configuration changes into AWS Config, billed per configuration item. 10,000 items is ~$30; cost is driven by recording scope and churn.

An aws_config_configuration_recorder is the component that captures configuration items — snapshots of a resource's state each time it's created, changed, or deleted — into AWS Config. Cost is ~$0.003 per configuration item recorded. 10,000 items is ~$30/month. This is the foundational AWS Config cost; Config rules (evaluations) bill on top.

The bill is churn × recording scope. If the recorder is set to record all resource types in all regions, high-churn resources (Auto Scaling activity, network interfaces, ephemeral compute) stream configuration items at $0.003 each. Across a large multi-account organization, recording everything everywhere generates a steady, often-unnoticed cost for history nobody queries.

The single biggest lever is scope: record only the resource types you actually need for compliance and audit, exclude high-churn types that add noise without value, and limit recording to the regions you operate in. This is the same lesson as CloudTrail and CloudWatch metrics — governance services bill by volume, so scope is everything.

c3x prices the recorder from monthly configuration items as usage, so projected cost can be modelled.

Terraform example

A minimal but realistic configuration that C3X can estimate.

resource "aws_config_configuration_recorder" "main" {
  name     = "default"
  role_arn = aws_iam_role.config.arn

  recording_group {
    all_supported                 = false
    include_global_resource_types = false
    resource_types = [
      "AWS::IAM::Role",
      "AWS::S3::Bucket",
      "AWS::EC2::SecurityGroup",
    ]
  }
}

Pricing dimensions

What you actually pay for when you provision aws_config_configuration_recorder.

DimensionUnitWhat's being charged
Configuration itemsper item~$0.003 per configuration item — a snapshot recorded on each resource create/change/delete. Churn × recording scope drives volume.
$0.003/item → 10,000 = $30/month

Sample C3X output

10,000 configuration items recorded in a month:

aws_config_configuration_recorder.main
└─ Configuration items   10,000   $30.00
                         Monthly  $30.00

Optimization tips

Common ways to reduce aws_config_configuration_recorder cost without changing the workload.

Scope the recorder to needed resource types

Proportional to types excluded

Recording all types in all regions captures high-churn resources that stream config items. Set recording_group to the specific resource types your compliance and audit actually need — the biggest lever on Config cost.

Exclude high-churn noise

Per config item avoided

Resource types that change constantly (Auto Scaling, network interfaces, ephemeral compute) generate config items with little audit value. Exclude them from the recording group.

Limit to operating regions

Per-region item volume

Record in the regions you actually use, not all of them. Recording global resource types in only one region avoids duplicate items across regions.

FAQ

How is the AWS Config recorder billed?

~$0.003 per configuration item — a snapshot recorded whenever a tracked resource is created, changed, or deleted. 10,000 items is ~$30/month. This is the foundational Config cost; Config rule evaluations bill on top.

Why is my AWS Config bill high?

Recording scope and churn. Recording all resource types in all regions captures high-change resources that stream config items at $0.003 each. Scope the recorder to needed types, exclude high-churn noise, and limit to operating regions.

How does c3x estimate the cost?

It's usage-driven, so c3x models it from monthly configuration items in c3x-usage.yml. Pair with aws_config_config_rule for the full AWS Config bill.

Related resources

Estimate this resource in your own Terraform

Free, open source, no API key. C3X parses your Terraform and shows line-item cost for every resource, including aws_config_configuration_recorder.