Supported resources

The quickest way to find out if your Terraform resources are supported is to run infracost breakdown with the --show-skipped flag. This shows the unsupported resources, some of which might be free.

You could also run the following command to only see the unsupported resources: infracost breakdown --format=json --log-level=warn | jq ".summary.unsupportedResourceCounts".

Infracost supports the following Terraform resources. We do not take into account free tiers that apply to some resources as it can be difficult to detect which accounts they apply to; you can still see costs going up or down based on changes since we're consistent.

Amazon Web Services (AWS)#

On-demand prices are used by default unless specified otherwise in the usage file.

Service nameMain Terraform resourcesNotes
API Gatewayaws_api_gateway_rest_api, aws_api_gateway_stage, aws_apigatewayv2_api
Certificate Manager (ACM)aws_acmpca_certificate_authority, aws_acm_certificate
CloudFrontaws_cloudfront_distribution
CloudWatchaws_cloudwatch_dashboard, aws_cloudwatch_log_group, aws_cloudwatch_metric_alarm
CodeBuildaws_codebuild_project
Configaws_config_config_rule, aws_config_configuration_recorder, aws_config_organization_custom_rule, aws_config_organization_managed_rule
Data transferUse aws_data_transfer.my_region in the usage fileMost expensive price tier is used.
Database Migration Service (DMS)aws_dms_replication_instance
Direct Connectaws_dx_gateway_association, aws_dx_connection
DocumentDBaws_docdb_cluster, aws_docdb_cluster_instance, aws_docdb_cluster_snapshot
DynamoDBaws_dynamodb_tableDAX is not yet supported.
EventBridgeaws_cloudwatch_event_bus
Elastic Compute Cloud (EC2)aws_instance, aws_ebs_volume, aws_ebs_snapshot, aws_ebs_snapshot_copy, aws_autoscaling_group, aws_eipCosts associated with marketplace AMIs are not supported. For non-standard Linux AMIs such as Windows, operating_system should be specified in the usage file, windows, rhel and suse are supported. Reserved instance settings can also be set in the usage file. EC2 detailed monitoring assumes the standard 7 metrics and the most expensive price tier for CloudWatch. If a root volume is not specified then an 8Gi gp2 volume is assumed. Most expensive price tier is used for EBS IOPS.
Elastic Container Registry (ECR)ecr_repository
Elastic Container Service (ECS)aws_ecs_serviceWhen using with EC2, number of instances in aws_autoscaling_group can be set in the usage file
Elastic File Storage (EFS)aws_efs_file_system
Elastic Load Balancingaws_alb, aws_lb, aws_elb
Elastic Kubernetes Service (EKS)aws_eks_cluster, aws_eks_fargate_profile, aws_eks_node_groupReserved instance settings can be set in the usage file.
ElastiCacheaws_elasticache_cluster, aws_elasticache_replication_group
Elasticsearch Serviceaws_elasticsearch_domain
FSx for Windows File Serveraws_fsx_windows_file_systemData deduplication is not supported by Terraform.
Key Management Service (KMS)aws_kms_external_key, aws_kms_key
Lambdaaws_lambda_functionProvisioned concurrency is not yet supported.
Lightsailaws_lightsail_instance
Managed Streaming for Apache Kafka (MSK)aws_msk_cluster
Secrets Manageraws_secretsmanager_secret
Simple Storage Service (S3)aws_s3_bucket, aws_s3_bucket_inventory, aws_s3_bucket_analytics_configurationMost expensive price tier is used. S3 replication time control data transfer, and batch operations are not supported by Terraform.
Simple Notification Service (SNS)sns_topic sns_topic_subscriptionSMS and mobile push are not yet supported.
Simple Queue Service (SQS)aws_sqs_queueMost expensive price tier is used.
Simple Systems Manager (SSM)aws_ssm_parameter, aws_ssm_activation
Redshiftaws_redshift_cluster
Relational Database Service (RDS)aws_rds_cluster, aws_db_instance, aws_rds_cluster_instance
Route 53aws_route53_record, aws_route53_zone, aws_route53_resolver_endpoint, aws_route53_health_check
Virtual Private Cloud/Network (VPC, VPN, PrivateLink, Transit Gateway)aws_ec2_client_vpn_endpoint, aws_ec2_client_vpn_network_association, aws_ec2_traffic_mirror_session, aws_ec2_transit_gateway_peering_attachment, aws_ec2_transit_vpc_attachment, aws_nat_gateway, aws_vpc_connection, aws_vpc_endpoint

Google Cloud Platform (GCP)#

Service nameMain Terraform resourcesNotes
Cloud DNSgoogle_dns_managed_zone ,google_dns_record_setMost expensive price tier is used.
Cloud Functionsgoogle_cloudfunctions_function
Cloud Logginggoogle_logging_billing_account_bucket_config, google_logging_billing_account_sink, google_logging_folder_bucket_config, google_logging_folder_sink, google_logging_organization_bucket_config, google_logging_organization_sink, google_logging_project_bucket_config, google_logging_project_sink
Cloud Monitoringgoogle_monitoring_metric_descriptor
Cloud NATgoogle_compute_router_nat
Cloud Pub/Subgoogle_pubsub_topic, google_pubsub_subscription
Cloud Storagegoogle_storage_bucketMinimum storage duration is assumed.
Cloud SQLgoogle_sql_database_instanceCloud SQL network, SQL Server license, 1-3 years commitments costs are not yet supported.
Compute Enginegoogle_compute_image, google_compute_machine_image, google_compute_instance, google_compute_disk, google_compute_address, google_compute_global_address, google_compute_snapshotSustained use discounts are applied to monthly costs, but not to hourly costs. Costs associated with non-standard Linux images, such as Windows and RHEL are not supported. Custom machine types are not supported. Sole-tenant VMs are not supported.
Container Registrygoogle_container_registry
Key Management Service (KMS)google_kms_crypto_key
Kubernetes Engine (GKE)google_container_cluster, google_container_node_poolThe free zonal cluster is not supported. Notes from Compute Engine also apply to the instances used in the clusters' node pools.
Memorystore Redisgoogle_redis_instance

Microsoft Azure#

Coming soon! Please 👍 this issue to receive updates.

The resource I want isn't supported#

We regularly add support for new resources so we recommend watching our repo for releases: goto the repo page, click on the Watch button > select Custom > Releases and click on Apply.

You can help by:

  1. Creating an issue and mentioning the resource names you need; we'll try to prioritize it depending on the community feedback.
  2. Contributing to Infracost. You can join our community Slack channel if you need help contributing.

We plan to add support for other IaC tools such as Pulumi and CloudFormation. Please 👍 them if you'd like us to work on them sooner.