aws_ mwaa_ environment cost estimation
A managed Apache Airflow environment. Priced per environment-hour by size, plus additional worker and scheduler hours and metadata storage.
An aws_
The base price includes one worker and one scheduler. Autoscaling workers beyond max_
c3x prices the base environment from environment_
Terraform example
A minimal but realistic configuration that C3X can estimate.
resource "aws_mwaa_environment" "data" {
name = "data-pipelines"
environment_class = "mw1.small"
airflow_version = "2.10.1"
dag_s3_path = "dags/"
execution_role_arn = aws_iam_role.mwaa.arn
source_bucket_arn = aws_s3_bucket.dags.arn
max_workers = 10
min_workers = 1
network_configuration {
security_group_ids = [aws_security_group.mwaa.id]
subnet_ids = aws_subnet.private[*].id
}
}Pricing dimensions
What you actually pay for when you provision aws_.
| Dimension | Unit | What's being charged |
|---|---|---|
| Environment hours | per hour | Base rate for the environment_ $0.49/hour for mw1.small |
| Additional worker hours | per worker-hour | Autoscaling workers beyond the included baseline. Usage-based; depends on DAG concurrency. Define expected worker-hours in c3x-usage.yml. $0.055/worker-hour for mw1.small |
| Additional scheduler hours | per scheduler-hour | Schedulers beyond the one included. Most environments run a single scheduler. |
| Metadata database storage | per GB-month | Airflow metadata DB storage. Usually small; usage-based. $0.10/GB-month |
Sample C3X output
Example output from c3x estimate (base environment only):
aws_mwaa_environment.data
└─ Environment (mw1.small) 730 hours $357.70
OVERALL TOTAL $357.70
(additional workers usage-based; add to c3x-usage.yml)Optimization tips
Common ways to reduce aws_ cost without changing the workload.
Right-size environment_ class to scheduler load, not worker load
Up to 50% of baseThe class sets scheduler/web-server capacity. If your DAGs are light but numerous, mw1.small with more autoscaling workers is cheaper than jumping to mw1.medium.
Tune min_ workers to zero-idle where possible
Worker-hours during idleMWAA scales workers down to min_
Consider self-managed Airflow on ECS for very large fleets
Workload-dependentAbove a few large environments, running Airflow yourself on ECS/EKS can be cheaper, trading the managed convenience for control. Estimate both with c3x before deciding.
FAQ
How does c3x estimate MWAA cost?
It reads environment_
Why does an idle MWAA environment still cost ~$358/month?
The base environment (scheduler + web server + one worker) runs continuously and bills per hour whether or not DAGs are executing. There is no scale-to-zero for the base environment.
How are autoscaling workers priced?
Workers above the included baseline bill per worker-hour at a class-specific rate. Because actual worker-hours depend on DAG concurrency, c3x treats them as usage-based; set expected worker-hours in the usage file.
Does the Airflow version affect cost?
No. Pricing is by environment_
Is the underlying VPC / NAT cost included?
No. MWAA runs in your VPC, so any aws_
Related resources
More AWS resources
Further reading
- Airflow cost in the cloud: managed vs self-hosted
Running Airflow costs the always-on scheduler, webserver, and workers plus the metadata database, whether self-hosted or on a managed service (MWAA, Cloud Composer) that adds a premium. Right-sizing and worker autoscaling cut it. Here is the model.
- Airflow cost on AWS: MWAA vs self-managed pricing
Running Apache Airflow on AWS costs money whether you use managed MWAA or self-host on EC2 or EKS. The bill is driven by environment size, worker scaling, and the compute your tasks actually launch. Here is how to size and control it.
- MWAA cost: why managed Airflow starts at $350/month
Amazon MWAA bills a continuous base environment fee with no scale-to-zero, so even an idle environment costs ~$350/month. Here's the cost breakdown, why the floor exists, and how to keep it down.
- Self-hosted Airflow vs MWAA cost: managed orchestration or run your own?
Managed Airflow (MWAA or Cloud Composer) removes the operational burden of running schedulers and workers, but charges a flat environment fee on top of compute. Self-hosting on your own cluster is cheaper per unit but adds real ops. Here is when each wins, with numbers.
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_.