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.
Quick answer
Airflow on AWS costs money in two ways: the orchestration environment itself, and the compute your tasks spin up. Managed MWAA charges an hourly environment fee (by size: small, medium, large), plus worker and scheduler capacity as it autoscales, plus storage for metadata, so a small always-on environment runs roughly a few hundred dollars a month before task compute. Self-managing on EC2 or EKS trades the managed fee for cheaper raw compute plus your own operational effort. Either way, the largest cost is usually the downstream compute tasks trigger, not Airflow itself.
Apache Airflow is an orchestrator, it schedules and coordinates work, so its own cost is only part of the picture. On AWS you pay for the Airflow environment (managed or self-hosted) plus the compute your DAGs actually launch. Understanding both halves is the key to a predictable bill, and the second half is usually the larger one.
MWAA: the managed option
Amazon Managed Workflows for Apache Airflow (MWAA) removes the operational burden and charges for it. You pay an hourly environment fee that scales with the environment size class you pick (small, medium, large), plus additional worker and scheduler capacity as MWAA autoscales under load, plus a small charge for the metadata database storage. A modest small environment running continuously lands in the low hundreds of dollars per month before any task compute, and larger classes or heavy autoscaling push that up.
| Cost component | What drives it |
|---|---|
| Environment fee | Size class (small/medium/large), billed hourly |
| Worker capacity | Additional workers as autoscaling adds them |
| Scheduler capacity | Extra schedulers for high DAG volume |
| Metadata storage | Database storage for task history |
Self-managed on EC2 or EKS
Running Airflow yourself on EC2 or EKS swaps the managed environment fee for raw compute, which is cheaper per unit but comes with operational effort: you patch, scale, and secure it. A small self-hosted setup can be a couple of modest instances (scheduler, webserver, workers), and on EKS you share cluster capacity. The tradeoff is real engineering time against the MWAA convenience premium, so self-hosting pays off mainly at scale or where you already run Kubernetes clustersand can absorb Airflow into existing capacity.
The hidden cost: what your tasks launch
The environment fee is often dwarfed by the compute your DAGs trigger: EMR clusters, ECS or Fargate tasks, Redshift queries, Athena scans, Lambda invocations. Airflow orchestrates these but you pay for them separately. A DAG that spins up a large EMR cluster hourly can cost far more than the entire MWAA environment. So when you audit Airflow cost, follow the tasks: a data pipeline hittingAthena or Redshift Spectrum or moving large volumes accrues data transfer and query charges that belong to the pipeline, not to Airflow.
Controlling Airflow cost
Right-size the MWAA environment class to your real DAG concurrency rather than over-provisioning, cap worker autoscaling so a runaway backfill does not scale workers indefinitely, and pause or shut down non-production environments off-hours. For self-hosted, use spot or right-sized instances for workers. Most importantly, optimize the downstream compute (right-size EMR, prefer serverless where task volume is bursty, avoid scanning more data than needed), because that is where the money goes. Airflow itself is a modest, mostly fixed cost; the pipelines it runs are the variable one to watch.
FAQ
How much does MWAA cost per month?
A small always-on MWAA environment typically runs in the low hundreds of dollars per month before task compute, driven by the hourly environment fee for its size class plus any additional worker and scheduler capacity autoscaling adds and a small metadata storage charge. Medium and large classes, or heavy autoscaling, cost more. The downstream compute your DAGs launch is usually a larger line item than the environment itself.
Is MWAA cheaper than self-managing Airflow on EC2?
Not always. MWAA charges a managed environment fee that is a premium over raw EC2 compute, so self-hosting on EC2 or EKS is cheaper per unit of capacity. But self-hosting adds operational effort (patching, scaling, securing), which has its own cost in engineering time. MWAA tends to win for small teams that value the managed convenience; self-hosting pays off at scale or where you already run Kubernetes and can absorb Airflow into existing clusters.
What actually drives the cost of running Airflow on AWS?
Two things: the orchestration environment (the MWAA fee or your self-hosted instances), and the compute your DAGs launch (EMR clusters, Fargate tasks, Athena scans, Redshift queries, Lambda invocations). The second is usually the larger cost, because Airflow orchestrates expensive downstream jobs that you pay for separately. Auditing Airflow cost means following the tasks, not just the environment.
How do I reduce MWAA cost?
Right-size the environment class to your real DAG concurrency instead of over-provisioning, cap worker autoscaling so a runaway backfill cannot scale workers indefinitely, and pause or shut down non-production environments off-hours. Then optimize the downstream compute your DAGs trigger, since that is usually where most of the spend is: right-size EMR, prefer serverless for bursty task volume, and avoid scanning more data than needed.
Does Airflow charge for idle time?
MWAA charges the hourly environment fee whenever the environment is running, whether or not DAGs are executing, so an always-on environment accrues cost even when idle. That makes shutting down or pausing non-production environments off-hours worthwhile. Self-hosted Airflow similarly charges for the instances running the scheduler and webserver regardless of task activity, so idle orchestration capacity is a real, if modest, cost in both models.
Does C3X help estimate Airflow infrastructure cost?
C3X prices infrastructure defined in Terraform before you deploy, so an MWAA environment or the EC2/EKS resources backing a self-hosted Airflow setup are costed in the pull request. That gives you the environment cost upfront. The variable downstream compute your DAGs launch at runtime is separate, but knowing the fixed orchestration cost before deploy is a solid start on a predictable Airflow bill.
What to do next
Price your MWAA or Airflow infrastructure before you deploy. C3X reads your Terraform and prices your resources against a live catalog. Start with the quickstart.
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.