What You’ll Master Here
Your DAGs are portable across all four options. Your deployment tooling, networking and upgrade cadence are not.
Two decisions close the Scale and Production track, and both sit above everything else in it. Should your team be operating Airflow at all? And if you are on Airflow 2, how do you get to 3 without breaking your pipelines?
Start with the first. Compare what each option actually obliges you to run — the “you operate” row is the honest comparison.
- You operate: Everything — scheduler, database, workers, upgrades, backups.
- Upgrades: Whenever you choose. You control the version and the timing entirely.
- Cost shape: Infrastructure plus real engineering time.
- Lock-in: None. It is the upstream project.
- Choose it when: You already run Kubernetes well and want full control over version and configuration.
Your DAGs are portable across all four options. Your deployment tooling, networking and upgrade cadence are not.
Self-hosting looks cheaper on every price list and frequently is not, because the comparison usually omits the upgrade weekends, the database tuning, the on-call rota and the person who becomes the Airflow expert by accident. Counting those changes the answer for a lot of teams.
- MWAA
- Amazon Managed Workflows for Apache Airflow. AWS-native, with the upgrade cadence AWS chooses.
- Cloud Composer
- Google’s managed Airflow, running on GKE with a management fee on top of the cluster.
- Astronomer
- A managed Airflow vendor employing many Airflow committers; typically the fastest to new versions.
Comparing managed pricing against infrastructure cost alone. You compare a service bill against a server bill and conclude self-hosting wins, having priced the engineering time at zero. It is usually the largest term.
Count engineer-days honestly, including the ones spent on upgrades and incidents.
Check the version cadence before committing — waiting a year for a release is a real constraint.
Keep your DAGs free of vendor-specific tooling so the decision stays reversible.
Moving between managed services is mostly a deployment-tooling exercise. That is the argument for keeping configuration in connections and variables rather than in vendor-specific mechanisms.
The comparison is not price against price. It is price plus engineering time against price.
