AWS Terraform Resources
Cost estimation reference for 193 AWS resources supported by C3X. Each page covers pricing dimensions, Terraform examples, and optimization tips.
Analytics
aws_ athena_ workgroupServerless query engine for S3 data. $5 per TB scanned (standard). Provisioned capacity option starts at $0.30/DPU-hour with 24-hour minimum. Workgroups themselves are free; the queries within bill.
aws_ elasticsearch_ domainThe legacy Elasticsearch Service domain (now OpenSearch). Bills per data-node instance-hour plus storage. A single t3.small.search node is ~$26/month.
aws_ emr_ clusterManaged Hadoop, Spark, Hive, Presto, and HBase. Bills EC2 instance hours plus EMR service fee (typically $0.063-$0.27/instance-hour on top of EC2). EMR Serverless eliminates instance management; EMR on EKS allows reusing EKS clusters.
aws_ glue_ catalog_ databaseA Glue Data Catalog database is effectively free (the first million objects and requests are free) and the real cost is the querying, crawling, and ETL that use it.
aws_ glue_ crawlerA crawler that catalogs data sources into the Glue Data Catalog, billed per DPU-hour while it runs. 10 DPU-hours/month is ~$4.40, it only bills during crawl runs.
aws_ kendra_ indexA managed intelligent-search index. Priced as a flat hourly fee by edition, billed continuously, with a substantial monthly floor.
aws_ kinesis_ firehose_ delivery_ streamA managed stream that loads data into S3, Redshift, OpenSearch, or Splunk. Priced per GB ingested, with extras for format conversion and VPC delivery.
aws_ kinesisanalyticsv2_ applicationA managed Apache Flink (Kinesis Data Analytics) application billed per Kinesis Processing Unit-hour. Two KPUs run ~$161/month, billed while the application runs.
aws_ msk_ serverless_ clusterA serverless Apache Kafka cluster that scales automatically. Priced per cluster-hour plus partition-hours, storage, and data in/out.
aws_ mwaa_ environmentA managed Apache Airflow environment. Priced per environment-hour by size, plus additional worker and scheduler hours and metadata storage.
aws_ opensearchserverless_ collectionServerless OpenSearch billed per OpenSearch Compute Unit-hour, with a minimum capacity floor. The 4-OCU minimum is ~$701/month.
aws_ redshift_ parameter_ groupA set of engine parameters for a Redshift cluster. Parameter groups are free. The clusters they configure bill per node-hour, from $0.25/hour for dc2.large to $13/hour for ra3.16xlarge, plus Spectrum and concurrency scaling.
aws_ redshiftserverless_ workgroupServerless Redshift compute billed per RPU-hour only while queries run. 100 RPU-hours is ~$36; idle workgroups cost nothing for compute.
Application Integration
aws_ appsync_ graphql_ apiA managed GraphQL API with real-time subscriptions. Priced per query/mutation operation and per real-time update, plus connection minutes and optional caching.
aws_ mq_ brokerA managed ActiveMQ or RabbitMQ message broker. Priced per broker-instance-hour by instance type and deployment mode, plus storage.
aws_ sns_ topic_ subscriptionSubscribes an endpoint to an SNS topic. Creating the subscription is free, but SNS bills per message delivered, and the rate varies enormously by protocol: HTTP and email are cheap, SMS can be expensive.
aws_ sqs_ queue_ policyA resource policy that controls who can send to or receive from an SQS queue. The policy is free. The queue bills per request, and a policy that opens the queue too wide can enable a flood of billable requests.
Backup
Compute
aws_ apprunner_ serviceA managed container service that scales to zero between requests. Priced on provisioned memory plus active vCPU, with separate build minutes.
aws_ autoscaling_ groupAn Auto Scaling Group is free to create. Its cost is entirely the EC2 instances it launches, so the bill scales with desired_capacity times the instance type times uptime.
aws_ ec2_ hostA physical server dedicated to your account, billed per host-hour by instance family. An m5 dedicated host is ~$3,700/month, you pay for the whole host, not the instances on it.
aws_ instanceAn EC2 virtual machine. Priced per hour by instance type, OS, tenancy, and region, with separate charges for attached EBS volumes and data transfer.
aws_ launch_ configurationA launch configuration is free. It is a legacy blueprint for EC2 instances, so cost appears only when an Auto Scaling Group uses it to launch instances.
aws_ launch_ templateA launch template is free. It is a blueprint for EC2 instances, so its cost is realized only when an Auto Scaling Group or fleet uses it to launch instances.
aws_ lightsail_ instanceSimplified VPS bundles for small workloads. Flat monthly pricing from $3.50/month (512 MB) to $160/month (64 GB). Includes data transfer allowance. Much simpler than EC2 but limited features.
aws_ sfn_ state_ machineWorkflow orchestration. Standard workflows at $0.025 per 1,000 state transitions. Express workflows at $1 per 1M requests + duration fees. Standard for long-running workflows; Express for high-volume short workflows.
aws_ spot_ instance_ requestAn EC2 instance run at Spot prices, up to ~90% below on-demand, in exchange for possible interruption. c3x prices it at the on-demand ceiling (a t3.micro is ~$7.59/month).
aws_ ssm_ documentAn SSM document is free. It is a JSON or YAML definition of commands or an automation workflow. AWS charges nothing to store it. Cost comes from what its steps run.
Containers
aws_ ecr_ repositoryA container image registry. Priced per GB-month stored, with the first 500 MB free, plus data transfer charges.
aws_ ecs_ clusterAn ECS cluster. The cluster itself is free. Cost comes from the EC2 instances and Fargate tasks that run inside it.
aws_ ecs_ serviceA long-running ECS service. Cost depends on launch type: EC2 (pay for nodes), Fargate (pay per task vCPU/memory), or Fargate Spot.
aws_ ecs_ task_ definitionA task definition is free. It declares CPU and memory for a container task, and those numbers set the Fargate cost when an ECS service runs the task.
aws_ eks_ clusterA managed Kubernetes control plane. Flat $0.10/hour per cluster, with worker nodes and storage billed separately.
aws_ eks_ fargate_ profileA Fargate profile is free. It is a selector that decides which Kubernetes pods run on Fargate, and those pods are billed per vCPU-hour and per GB-hour while they run.
aws_ eks_ node_ groupManaged EC2 worker nodes for an EKS cluster. The node group has no charge of its own, it bills as the EC2 instances it launches. 3× m5.large is ~$210/month.
Database
aws_ dax_ clusterAn in-memory write-through cache for DynamoDB. Priced per node-hour by node type, multiplied across the cluster's node count.
aws_ db_ instanceA managed relational database instance on RDS. Priced per hour by instance class, engine, deployment option, and region, with storage and IOPS billed separately.
aws_ db_ option_ groupA container of optional features (like SQL Server native backup, Oracle OEM, or TDE) for an RDS instance. Option groups are free. The RDS instance bills per hour, and some options carry licensing or storage cost.
aws_ db_ parameter_ groupA DB parameter group is free. It is the engine configuration attached to an RDS instance, and the cost stays entirely on the instance it tunes.
aws_ db_ proxyA managed connection pool in front of RDS or Aurora. Priced per vCPU-hour of the proxied database instances, billed continuously.
aws_ db_ snapshotA manual snapshot of an RDS instance, billed per GB-month of backup storage beyond the free allowance. A 50 GB snapshot is ~$4.75/month.
aws_ db_ subnet_ groupA DB subnet group is free. It tells RDS which subnets a database can live in, and the cost is entirely the RDS instance it enables.
aws_ dms_ replication_ instanceA managed instance that runs database migration and replication tasks. Priced per instance-hour by class, doubled for Multi-AZ, plus storage.
aws_ documentdb_ clusterMongoDB-compatible managed document database. Instance-hour ($0.277/hour for db.r6g.large) plus storage ($0.10/GB-month) plus I/O ($0.20/M-requests). Backup storage above retention is $0.021/GB-month.
aws_ dynamodb_ tableA managed NoSQL table. Pay-per-request (on-demand) or provisioned capacity, plus storage. No instances to manage.
aws_ dynamodb_ table_ itemA DynamoDB table item is free to define, but it adds to the table's stored data and consumes write and read capacity, so its cost is realized on the table.
aws_ elasticache_ clusterManaged Redis or Memcached. Priced per node-hour by instance type, with no storage or request charges.
aws_ elasticache_ parameter_ groupA named set of engine parameters for ElastiCache (Redis or Memcached) clusters. Parameter groups are free. The clusters they configure bill per node-hour, from about $0.017/hour for cache.t3.micro to $0.90+/hour for large nodes.
aws_ elasticache_ replication_ groupA Redis (or Valkey) replication group with primary and replica nodes, optionally cluster-mode sharded. Priced per node-hour by node type across all shards and replicas.
aws_ elasticache_ serverless_ cacheA serverless Redis or Valkey cache that scales automatically. Priced per GB-hour of data stored plus per million ElastiCache Processing Units (ECPUs).
aws_ elasticache_ subnet_ groupAn ElastiCache subnet group is free. It tells ElastiCache which subnets a cache cluster can run in, and the cost is entirely the cache nodes it enables.
aws_ glue_ jobA managed ETL job using Spark or Python shell. Priced per DPU-hour with 1-minute billing minimum, plus development endpoint and Data Catalog costs.
aws_ lightsail_ databaseA simplified managed database (MySQL/PostgreSQL) sold as a flat monthly bundle. The micro bundle is ~$15/month, all-in; HA bundles cost more.
aws_ memorydb_ clusterA durable, Redis-compatible in-memory database. Priced per node-hour across all shards and replicas, plus per-GB data written and snapshot storage.
aws_ neptune_ clusterManaged graph database supporting Gremlin, openCypher, and SPARQL. Instance hours ($0.348/hour for db.r5.large) plus storage ($0.10/GB-month) plus I/O ($0.20/M requests). Neptune Serverless offers auto-scaling per-NCU.
aws_ neptune_ cluster_ instanceA compute instance in a Neptune graph-database cluster, billed per instance-hour by class. A db.r5.large runs ~$254/month, and a cluster usually has a writer plus readers.
aws_ opensearch_ domainA managed OpenSearch (formerly Elasticsearch) cluster. Priced per node-hour by instance type, plus storage and optional UltraWarm/Cold tiers.
aws_ qldb_ ledgerA serverless immutable ledger database billed by write IOs, read IOs, and journal/indexed storage, no instances. 10M write IOs + 20 GB is ~$12/month.
aws_ rds_ clusterAn Aurora cluster (MySQL or PostgreSQL compatible). Priced by per-instance compute, storage by GB used, and I/O (Standard) or compute (I/O-Optimized).
aws_ rds_ cluster_ instanceA compute instance in an Aurora cluster, billed per instance-hour by class. A db.r6g.large Aurora PostgreSQL instance is ~$247/month, and a cluster usually runs several.
aws_ redshift_ clusterA managed data warehouse. Two compute models: classic node-based pricing (per-hour) or Redshift Serverless (per-RPU-hour), plus managed storage.
aws_ timestreamwrite_ tableA serverless time-series table billed by writes, storage tier, and queries, no instances. 100M writes + 500 GB magnetic storage is ~$65/month.
Developer Tools
aws_ amplify_ appManaged hosting for web apps, billed by build minutes, served data, and storage. A small app (500 build min, 15 GB served, 5 GB stored) is ~$7/month.
aws_ codeartifact_ domainA package-registry domain billed by stored artifacts, requests, and cross-region data transfer. 100 GB + 1M requests is ~$10/month.
aws_ codebuild_ projectA managed build environment for CI/CD. Priced per build-minute by compute type, with no idle cost between builds.
aws_ codecommit_ repositoryA CodeCommit repository is free to create and free for the first five active users per month; beyond that it bills a flat rate per active user with generous included storage and requests.
aws_ codedeploy_ applicationA logical container for CodeDeploy deployment groups. Applications are free, and deployments to EC2 and Lambda are free too. Only on-premises instance deployments bill, at $0.02 per instance update.
aws_ codedeploy_ deployment_ groupA CodeDeploy deployment group is free, and deployments to EC2, Lambda, and ECS carry no CodeDeploy charge; the cost is the compute it deploys to.
aws_ codepipelineA managed CI/CD pipeline billed ~$1/month per active pipeline (V1). The cost is trivial; the spend lives in the compute the pipeline triggers.
End User Computing
aws_ appstream_ fleetA fleet of streaming application instances. Bills per instance-hour by type × fleet size. Two stream.standard.medium instances always-on are ~$146/month.
aws_ workspaces_ workspaceA managed cloud desktop billed monthly or hourly by bundle. An always-on Value bundle is ~$25/month; larger bundles run up to ~$220.
Integration
Machine Learning
aws_ sagemaker_ endpointReal-time ML inference endpoint. Bills instance hours 24/7 (e.g., $0.0532/hour for ml.t2.medium, up to $30+/hour for ml.p4d.24xlarge). Serverless inference bills per-invocation. Async inference for batch-like workloads.
aws_ sagemaker_ notebook_ instanceA managed Jupyter notebook instance billed per hour while running. An ml.t3.medium is ~$37/month if left on 24/7, and idle notebooks are the classic waste.
Management
aws_ appautoscaling_ targetAn Application Auto Scaling target is free. It registers a resource (ECS service, DynamoDB table, and others) as scalable, and the cost is the capacity that resource runs at.
aws_ grafana_ workspaceA managed Grafana workspace for dashboards. Priced purely per active user per month by role, with no always-on infrastructure fee.
aws_ ssm_ associationBinds an SSM document to target instances so State Manager keeps them in a desired configuration. The association is free on standard EC2, but hybrid on-premises nodes in advanced tier and heavy Automation use do bill.
aws_ ssm_ maintenance_ windowAn SSM maintenance window is free. It is a schedule for running automation on your fleet, and cost comes from what the tasks do on instances you already pay for.
aws_ ssm_ patch_ baselineAn SSM patch baseline is free. It defines which patches are approved for your fleet, and cost comes from the instances that run the patching, not the baseline.
Management & Governance
aws_ config_ delivery_ channelDefines where AWS Config delivers configuration snapshots and history (an S3 bucket, optionally an SNS topic). The channel is free. AWS Config bills $0.003 per configuration item recorded plus rule evaluations and S3 storage.
aws_ organizations_ accountA member account inside an AWS Organization. Creating and managing accounts is free. The cost lives inside each account: all EC2, S3, RDS, and data transfer usage rolls up to the organization's consolidated bill.
aws_ organizations_ organizationThe root container for multi-account AWS. AWS Organizations is free. It is the mechanism behind consolidated billing, Reserved Instance and Savings Plans sharing, and Service Control Policies that cap spend.
aws_ organizations_ policyService Control Policies, tag policies, and backup policies attached to an organization. The policies are free. Their job is to prevent spend: SCPs can block expensive instance families, regions, and untagged resources.
Messaging
aws_ kinesis_ streamA real-time data stream. Two capacity modes: Provisioned (priced per shard-hour) or On-Demand (priced per record and per GB).
aws_ msk_ clusterA managed Apache Kafka cluster. Priced per broker-hour by instance type, plus EBS storage per GB-month and data transfer.
aws_ sns_ topicA pub/sub topic for sending notifications. Priced per message published, per delivery, and by destination protocol.
aws_ sqs_ queueA managed message queue. Priced per request, with no per-queue or storage fee. Generous free tier.
Monitoring
aws_ cloudwatch_ log_ metric_ filterA metric filter is free. It scans log events for a pattern and emits a CloudWatch metric, and cost sits on the log group and the metric or alarm it feeds.
aws_ cloudwatch_ log_ streamA log stream is free. It is a named sequence of log events inside a log group, and cost comes from the bytes ingested and stored in the group, not the stream.
aws_ cloudwatch_ log_ subscription_ filterA subscription filter is free to define, but it streams matching log events in real time to a destination like Lambda or Kinesis, and that destination is where cost lands.
Networking
aws_ api_ gateway_ rest_ apiA REST API endpoint. Priced per request, with no base hourly fee. Cheaper than ALB at low volume.
aws_ apigatewayv2_ apiHTTP and WebSocket APIs. HTTP API is 70% cheaper than REST API: $1.00 per million requests vs $3.50. WebSocket connections billed separately by connection-minute and messages.
aws_ cloudfront_ distributionA CDN distribution. Priced by data transfer to viewers and request count, with rates varying by region.
aws_ customer_ gatewayA customer gateway is free. It just records the on-premises side of a VPN (public IP and BGP ASN). The cost is the VPN connection it participates in.
aws_ directconnect_ gatewayA Direct Connect gateway is free. It is a global routing hub for Direct Connect. The cost is the Direct Connect connection port hours and the data transfer out that flows over it.
aws_ dx_ connectionA dedicated physical network link to AWS, billed per port-hour by speed plus data transfer out. A 1 Gbps port is ~$219/month before egress.
aws_ ec2_ transit_ gatewayA network hub connecting multiple VPCs, VPNs, and Direct Connects. $0.05/hour per attachment plus $0.02/GB processed.
aws_ ec2_ transit_ gateway_ vpc_ attachmentAttaches a VPC to a Transit Gateway, billed ~$0.05/hour (~$36.50/month) per attachment plus the data the TGW processes for it.
aws_ eipA static public IPv4 address. Free while attached and in use, $0.005/hour while detached or unassociated. As of 2024, also charges per-hour for attached IPv4 in some scenarios.
aws_ eip_ associationAn EIP association is free. It binds an Elastic IP to an instance or network interface. The cost sits on the Elastic IP itself, which is free while attached to a running instance and billed when idle.
aws_ globalaccelerator_ acceleratorAnycast IPs that route users to the nearest healthy endpoint over the AWS backbone. Priced as a fixed hourly fee plus a per-GB data transfer premium.
aws_ internet_ gatewayAn internet gateway is free. Attaching one to a VPC and routing through it costs nothing. The cost is the data transfer out to the internet that it enables.
aws_ lbA managed load balancer (ALB or NLB). Priced per hour plus per LCU/NLCU based on processed traffic.
aws_ lb_ listenerA listener is free. It checks for connections on a port and forwards them, so the cost is the load balancer it belongs to, not the listener.
aws_ lb_ target_ groupA target group is free. It routes traffic to registered targets for an ALB or NLB, and the cost sits on the load balancer and the targets themselves.
aws_ lightsail_ distributionA simplified CDN fronting a Lightsail (or other) origin, sold as a flat monthly bundle with an included transfer allowance. The small bundle is ~$2.50/month.
aws_ main_ route_ table_ associationSets which route table is the main (default) table for a VPC. The association is free, but it decides the default path for any subnet without an explicit table, and that path can silently route traffic through paid NAT or transit gateways.
aws_ nat_ gatewayA managed NAT gateway for outbound internet access from private subnets. Notoriously expensive: $0.045/hour plus $0.045/GB processed.
aws_ network_ interfaceAn elastic network interface is free. AWS charges nothing for the ENI or its private IPs. Cost comes from the instance it attaches to, any Elastic IP left idle on it, and the traffic it carries.
aws_ networkfirewall_ firewallA managed VPC firewall billed per endpoint-hour plus traffic processed. One endpoint with 100 GB is ~$295/month, and multi-AZ deployments multiply the endpoint fee.
aws_ routeA single entry in a VPC route table. Routes are free, but they point traffic at targets like NAT gateways, transit gateways, and VPC peering, and those targets plus the data transfer they carry are where the cost is.
aws_ route_ tableA route table is free. It is a set of routing rules for a VPC, and AWS charges nothing for the table, its routes, or its associations. Cost lives in the targets those routes point at.
aws_ route53_ health_ checkA health check that monitors an endpoint for DNS failover, billed ~$0.50/month for AWS endpoints or ~$0.75 for external ones, plus optional feature add-ons.
aws_ route53_ query_ logEnables DNS query logging for a Route 53 public hosted zone. The logging config is free, but every query it records is written to CloudWatch Logs, which bills for ingestion and storage.
aws_ route53_ recordA Route 53 record is free to create. There is no per-record charge. Cost comes from DNS queries against the hosted zone and from any health checks the record uses.
aws_ route53_ resolver_ endpointAn inbound or outbound DNS resolver endpoint for hybrid name resolution, billed per elastic network interface (IP) per hour. Two IPs are ~$183/month, plus DNS query charges.
aws_ route53_ zoneA DNS hosted zone. Flat $0.50/month per zone, plus tiered per-query charges.
aws_ route53_ zone_ associationA zone association is free. It attaches a VPC to a private hosted zone so the VPC can resolve its records. Cost comes from the hosted zone and its query volume, not the association.
aws_ security_ groupSecurity groups are free. There is no charge for the group, its rules, or the traffic it allows. The cost sits in the resources it protects.
aws_ subnetA subnet is free. It carves an IP range out of a VPC in one Availability Zone, and AWS charges nothing for it. Cost comes from the resources you place in it and the traffic they generate.
aws_ vpcA VPC is free. The network itself, subnets, route tables, and security groups cost nothing. The cost comes from the paid components you run inside it.
aws_ vpc_ endpointA private endpoint into AWS services from your VPC. Gateway endpoints (S3, DynamoDB) are free; Interface endpoints are ~$7/month per AZ plus data fees.
aws_ vpc_ peering_ connectionA VPC peering connection is free to create and has no hourly charge. The cost is the data transfer that crosses it, which depends on whether the VPCs are in the same or different regions.
aws_ vpn_ connectionA site-to-site IPsec VPN connection between your VPC and on-premises network. $0.05/hour per active connection plus data transfer.
aws_ vpn_ gatewayA virtual private gateway is free to attach to a VPC. The cost is the Site-to-Site VPN connection you terminate on it, billed hourly, plus data transfer.
Networking & Content Delivery
aws_ apigateway_ methodAn HTTP verb (GET, POST, etc.) on a REST API resource. The method definition is free. The REST API it belongs to bills $3.50 per million requests plus data transfer, and optional caching adds $0.02 to $3.80 per hour.
aws_ apigatewayv2_ routeA route (like GET /items or a WebSocket action) on an HTTP or WebSocket API. Routes are free. The parent API bills $1.00 per million requests for HTTP APIs, or per message plus connection minutes for WebSocket APIs.
aws_ apigatewayv2_ stageA deployment stage (like prod or dev) for an HTTP or WebSocket API. Stages are free. They are where access logging and detailed metrics are enabled, and both of those feed billed CloudWatch Logs and metrics.
aws_ directconnect_ lagA Link Aggregation Group that bundles multiple Direct Connect connections into one logical link. The LAG object is free. Each member connection bills per port-hour, from about $0.30/hour for 1 Gbps to $22.50/hour for 100 Gbps, plus data transfer out.
Observability
aws_ cloudtrailAn audit log of AWS API calls. Management events are free. Data events and Insights are billed per event.
aws_ cloudwatch_ dashboardA CloudWatch dashboard for visualizing metrics, billed ~$3/dashboard/month. The first 3 dashboards (with limited metrics) are free.
aws_ cloudwatch_ log_ groupA log group for storing application and AWS service logs. Priced by ingestion ($0.50/GB), storage ($0.03/GB-month), and queries.
aws_ cloudwatch_ metric_ alarmAlarm that triggers actions when a metric breaches a threshold. $0.10/alarm-month for standard resolution. High-resolution alarms (10s) cost $0.30/month. Composite alarms are free per logical condition.
aws_ prometheus_ workspaceManaged Prometheus billed by samples ingested and metrics stored, no node cost. 1B samples + 100 GB storage is ~$93/month, and the bill scales with metric cardinality.
aws_ xray_ groupDistributed tracing billed per trace recorded plus per trace retrieved/scanned. 10M traces recorded + 1M scanned is ~$50.50.
Security
aws_ acm_ certificateTLS certificates for AWS services. Public certificates are free with auto-renewal. Private CA-issued certificates bill $400/month per private CA. Wildcard and SAN certificates included at no extra cost.
aws_ acmpca_ certificate_ authorityA managed private certificate authority. Priced as a flat monthly CA fee by mode, plus a per-certificate issuance charge.
aws_ cognito_ user_ poolA managed user directory for sign-up and sign-in. Priced per monthly active user (MAU) above a free tier, with the rate set by the feature tier.
aws_ iam_ groupAn IAM group is free. It bundles users so they share a set of policies. AWS charges nothing for the group. Cost comes from what the member users are permitted to do.
aws_ iam_ instance_ profileAn instance profile is free. It is the wrapper that passes an IAM role to an EC2 instance. AWS charges nothing for it. Cost lives in the instance and what its role lets it do.
aws_ iam_ policyAn IAM policy is free. It is a JSON permission document. AWS charges nothing for creating, attaching, or evaluating policies. Cost lives in the services the policy permits.
aws_ iam_ roleAn IAM role is completely free. IAM is a no-cost service. A role grants permissions to whatever assumes it, and the cost is whatever those services do, never the role.
aws_ iam_ userAn IAM user is free. Creating users, their access keys, and login profiles costs nothing. The cost is whatever AWS services the user is permitted to operate.
aws_ kms_ aliasA KMS alias is free. It is a friendly name pointing at a KMS key. AWS charges nothing for the alias. Cost comes from the underlying KMS key and its API requests.
aws_ kms_ keyA managed encryption key. Flat $1/month per key, plus per-request charges for cryptographic operations.
aws_ secretsmanager_ secretA managed secret with versioning, rotation, and IAM-controlled access. Flat $0.40/month per secret plus per-API-call charges.
aws_ secretsmanager_ secret_ versionA secret version is free. It is one stored value of a secret. Secrets Manager bills per secret and per API call, not per version, so adding versions adds nothing.
aws_ ssm_ parameterA standard SSM parameter is free to store and read at standard throughput. Cost only appears if you choose the advanced tier or higher-throughput API calls.
aws_ wafv2_ web_ aclA web application firewall. $5/month per Web ACL, $1/month per rule, plus $0.60 per million inspected requests.
Security & Identity
aws_ cloudhsm_ v2_ hsmA dedicated, single-tenant hardware security module billed per HSM-hour. One HSM is ~$1,168/month, and production needs at least two for HA.
aws_ config_ config_ ruleA compliance rule evaluated by AWS Config, billed per rule evaluation. 10,000 evaluations is ~$10; cost scales with resource changes and rule count.
aws_ config_ configuration_ recorderRecords resource configuration changes into AWS Config, billed per configuration item. 10,000 items is ~$30; cost is driven by recording scope and churn.
aws_ directory_ service_ directoryA managed directory (Microsoft AD, Simple AD, or AD Connector) billed per hour. Standard Microsoft AD is ~$88/month; Simple AD is cheaper.
aws_ fms_ policyA Firewall Manager policy that centrally manages WAF/Shield/security-group rules across accounts, billed ~$100/policy/region/month, plus the resources it deploys.
aws_ guardduty_ detectorManaged threat detection billed by the volume of CloudTrail events, VPC flow logs, and DNS logs analyzed. ~10M events + 100 GB logs is ~$140/month.
aws_ iam_ access_ keyA long-lived access key ID and secret for an IAM user. Access keys are free to create and use, but a leaked key is one of the most expensive incidents in AWS, capable of running up tens of thousands of dollars in hours.
aws_ iam_ role_ policyAn inline IAM policy embedded directly in a role. IAM is completely free, there is no charge for roles, policies, or evaluation. The cost lives in the AWS services the policy grants access to.
aws_ iam_ role_ policy_ attachmentLinks a managed IAM policy to a role. The attachment is free, as is all of IAM. What it grants determines how much the role can spend, so it is a cost-governance control point.
aws_ kms_ grantA temporary, scoped permission to use a KMS key. Grants are free. The key it points at costs about $1/month, and the encrypt/decrypt API calls the grant enables bill per request.
aws_ macie2_ accountManaged sensitive-data discovery for S3, billed per bucket evaluated plus per GB inspected. 50 buckets + 100 GB inspected is ~$105/month.
aws_ securityhub_ accountCentralized security posture management, billed per security check and per finding ingested. 100K checks/month is ~$100, with tiers lowering the rate at scale.
aws_ shield_ protectionEnrolls a resource in AWS Shield Advanced DDoS protection. Shield Advanced is a flat ~$3,000/month subscription per organization, shared across all protected resources.
Serverless
aws_ lambda_ aliasA Lambda alias is free. It is a named pointer to a function version used for stable references and traffic shifting, and cost stays on the function it points to.
aws_ lambda_ event_ source_ mappingAn event source mapping is free. It connects a stream or queue to a Lambda function, and the cost is the invocations it drives plus any polling charges on the source.
aws_ lambda_ functionA serverless function billed by request count and execution duration. Free tier covers 1M requests and 400,000 GB-seconds per month.
aws_ lambda_ function_ urlA Lambda function URL is free. It gives a function a public HTTPS endpoint with no API Gateway, and the cost is the function invocations that requests trigger.
aws_ lambda_ layer_ versionA Lambda layer version is free to publish and store. It packages shared dependencies for functions, and the cost stays on the Lambda functions that use it.
aws_ lambda_ permissionA Lambda permission is free. It grants a service or account the right to invoke a function, and cost comes from the invocations that permission then enables.
Storage
aws_ ebs_ snapshotA point-in-time backup of an EBS volume, stored in S3. $0.05/GB-month standard (incremental), or $0.0125/GB-month in the archive tier.
aws_ ebs_ volumeA persistent block storage volume. Priced per GB-month by volume type, with separate IOPS and throughput charges on certain types.
aws_ efs_ access_ pointAn EFS access point is free. It is an application-specific entry point into an EFS file system, and the cost is the EFS storage and throughput it maps into.
aws_ efs_ file_ systemA managed NFS file system for shared access from EC2, ECS, EKS, and Lambda. Priced per GB stored, with tiered storage classes.
aws_ efs_ mount_ targetAn EFS mount target is free. It gives an EFS file system a network endpoint in one subnet, and the real cost is the EFS storage and throughput behind it.
aws_ fsx_ file_ systemManaged file storage for Windows, Lustre, NetApp ONTAP, and OpenZFS workloads. Pricing varies wildly: from $0.025/GB-month (Lustre HDD) to $0.30+/GB-month (Windows SSD with deduplication).
aws_ fsx_ lustre_ file_ systemA high-performance Lustre file system for HPC and ML. Bills per GB of provisioned storage, with throughput coupled to capacity. 1.2 TB at 125 MB/s/TiB is ~$174/month.
aws_ fsx_ ontap_ file_ systemA managed NetApp ONTAP file system with multiprotocol access and NetApp features, billed per GB of SSD capacity plus throughput. 1 TB Multi-AZ is ~$256/month.
aws_ fsx_ openzfs_ file_ systemA managed OpenZFS file system for NFS workloads with ZFS features, billed per GB of SSD capacity plus throughput. 64 GB Single-AZ is ~$5.76/month.
aws_ fsx_ windows_ file_ systemA managed SMB file system with Active Directory integration. Bills per GB of provisioned storage plus throughput; 32 GB SSD Single-AZ is ~$4/month, scaling with capacity.
aws_ glacier_ vaultA vault for long-term archival storage, billed per GB-month at the deep-archive rate. 1 TB is ~$3.60/month, cheap to store, but retrieval costs time and money.
aws_ lightsail_ bucketSimplified object storage sold as a flat monthly bundle with included storage and transfer. The small bundle is ~$1/month, all-in.
aws_ s3_ bucketObject storage on S3. Priced by storage class, request count, and data transfer, with the bucket itself being free.
aws_ s3_ bucket_ aclSets the access control list on an S3 bucket. The ACL configuration is free. The bucket it governs bills for storage, requests, and data transfer, which is where all S3 cost lives.
aws_ s3_ bucket_ cors_ configurationDefines cross-origin resource sharing rules for an S3 bucket. The CORS config is free. It enables browsers to fetch objects directly, which drives the request and data transfer charges on the bucket.
aws_ s3_ bucket_ lifecycle_ configurationAn S3 lifecycle configuration is free, and it is one of the strongest cost levers in S3: it transitions objects to cheaper storage classes and expires old data automatically.
aws_ s3_ bucket_ loggingEnabling S3 server access logging is free, but it writes a stream of log objects into a target bucket that you pay to store and, eventually, to query or delete.
aws_ s3_ bucket_ notificationAn S3 bucket notification is free to configure. It routes bucket events to Lambda, SQS, or SNS, and cost lands on whichever destination processes the events.
aws_ s3_ bucket_ policyAn S3 bucket policy is free. It is an IAM resource policy attached to a bucket, and cost stays with the bucket and the requests the policy allows.
aws_ s3_ bucket_ public_ access_ blockA public access block is free. It is a safety toggle that stops a bucket from becoming public, and cost stays with the bucket and the requests it serves.
aws_ s3_ bucket_ server_ side_ encryption_ configurationSetting default encryption on a bucket is free. Encryption itself adds no charge, but choosing aws:kms means each object request also triggers a billable KMS call.
aws_ s3_ bucket_ versioningEnabling S3 versioning is free, but it multiplies storage cost by keeping every old version of an object as billable data until something deletes it.
aws_ s3_ objectAn S3 object is billed for the bytes it stores at its storage class rate, plus the request to upload it, so cost scales with object size and how many objects you keep.
aws_ storagegateway_ gatewayHybrid storage bridging on-premises to AWS. File Gateway ($0.023/GB-month + data transfer), Volume Gateway (per-GB cached or stored mode), Tape Gateway (VTL for backup). Pricing varies significantly by gateway type.
aws_ transfer_ serverManaged SFTP, FTPS, or FTP access to S3 and EFS. Priced per protocol-hour the endpoint is enabled, plus per-GB uploaded and downloaded.