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.
Quick answer
Amazon MWAA runs a base environment, scheduler, web server, and one worker, continuously, with no scale-to-zero. An mw1.small base is about $358/month before any extra workers, billed whether DAGs run or not. The cost is the always-on environment; autoscaling workers and metadata storage add on top. Right-sizing the environment class and keeping min_workers low are the main levers.
Managed Workflows for Apache Airflow removes the ops burden of running Airflow yourself, but the pricing model catches teams off guard: there's a substantial floor that exists the moment the environment is created.
The three components
1. Base environment hour (the floor)
Set by environment_class, billed continuously:
- mw1.small: ~$0.49/hour (~$358/month)
- mw1.medium: ~$0.88/hour (~$642/month)
- mw1.large: ~$1.65/hour (~$1,205/month)
The base includes one worker and one scheduler. There is no pause or scale-to-zero, this runs 24/7 while the environment exists.
2. Additional worker hours
Workers that autoscale beyond the included baseline bill per worker-hour at a class-specific rate (~$0.055/hour for mw1.small). This is usage-based, driven by DAG concurrency.
3. Metadata database storage
The Airflow metadata DB bills per GB-month. Usually small.
Why the floor exists
Airflow needs a scheduler and web server running continuously to evaluate DAG schedules and serve the UI. MWAA provisions these as a managed, always-on environment, so unlike serverless options there's no scaling to zero. The convenience of not operating Airflow is exactly what you pay the floor for.
Keeping it down
- Right-size the class to scheduler load: if your DAGs are numerous but light, mw1.small with more autoscaling workers beats jumping to mw1.medium.
- Keep min_workers low: let the environment scale workers down when idle so you pay the base plus only the workers you use.
- Consolidate environments: each environment carries its own floor. One well-organized environment beats several lightly-used ones.
See the floor before you apply
The ~$358 floor is invisible in the Terraform until you multiply it out. C3X prices an aws_mwaa_environment from environment_class so the base cost shows up in your pull request:
c3x estimate --path . --budget 500For lighter orchestration that doesn't carry an always-on floor, compare against Step Functions, and for the data-pipeline alternatives see AWS Glue jobs.
Share this post
Try C3X on your own Terraform
Free and open source. No API key required. One command to install, one command to estimate.