awsairflowdata-engineeringcost-optimization

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.

The C3X Team··5 min read

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 componentWhat drives it
Environment feeSize class (small/medium/large), billed hourly
Worker capacityAdditional workers as autoscaling adds them
Scheduler capacityExtra schedulers for high DAG volume
Metadata storageDatabase 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.

Try C3X on your own Terraform

Free and open source. No API key required. One command to install, one command to estimate.