Kubernetes vs. ECS for Scheduled ETL and BI Workloads
For scheduled ETL and BI work, ECS scheduled tasks with Step Functions are usually the faster route, while Kubernetes CronJobs with a workflow engine suit consultancies running many pipelines. A managed data platform may beat both. Almost none of this work is a long-running web service, which changes which orchestrator features matter.
Approach one: Kubernetes CronJobs and a workflow engine
Kubernetes CronJobs handle the basic scheduling, and most consultancies running many pipelines add a workflow engine such as Airflow on top for dependency management between steps, retries, and backfills across historical data. The tradeoff is real operational weight: you're now running a cluster and an orchestration layer on top of it, both of which need patching and monitoring.
The payoff shows up once you're running dozens of interdependent pipelines across several clients: a proper DAG-based scheduler makes dependency management and backfilling historical data far less painful than a pile of independent cron jobs would ever manage on their own.
Approach two: ECS scheduled tasks with Step Functions
ECS scheduled tasks, coordinated through Step Functions or EventBridge rules, cover the same ground with less infrastructure to run. For a smaller consultancy managing a handful of client pipelines, this is often the faster path to something reliable, since there's no cluster to operate and Step Functions' visual workflow view doubles as documentation.
The tradeoff shows up at scale: Step Functions state machines get harder to manage as pipeline count and interdependency grow, and you'll eventually be reimplementing pieces of what a dedicated workflow engine gives you for free.
Approach three: a managed data platform instead of either
Some consultancies skip container orchestration for their pipeline layer entirely and rely on managed services like AWS Glue or a client's existing data platform vendor, only using Kubernetes or ECS for the pieces those services don't cover, such as custom connectors or a client-facing API. This is worth naming explicitly because it's frequently the right answer, and teams sometimes reach for containers out of habit when a managed service would cost less engineering time and less ongoing attention from your own staff.
Use this approach when a client's pipelines are mostly standard extract-and-load patterns; reserve custom container orchestration for the genuinely custom parts of the work, the ones a managed service was never built to handle.
What idle compute actually costs you here
Data pipelines are a classic case of workloads that should scale to near zero between runs but often don't, because someone left a node pool or a fleet of Fargate tasks provisioned at a fixed size just in case. Say a nightly ETL job takes twenty minutes to run; a cluster or task fleet sized for that twenty minutes but billed for twenty-four hours a day is pure waste.
Across a subscription business's whole infrastructure, hosting costs typically run about 5% of ARR and devops spend adds about 4% more at the median12; idle batch compute is one of the more common, avoidable ways a client's bill drifts above that range without anyone noticing until a quarterly review turns it up.
Picking an approach for a given client
Start with the managed-service question first: does a client's pipeline genuinely need custom container orchestration, or would a managed ETL service cover it with less ongoing maintenance for both of you? If containers are genuinely needed and the client has a handful of pipelines, ECS scheduled tasks are the faster build. If the client's data engineering needs are large and growing, with real cross-pipeline dependencies, Kubernetes with a workflow engine is worth the added operational investment.
Kubernetes vs. AWS ECS vs. Nomad covers a third option if a client's data platform has to stay partly on-premises for data residency reasons.
Pick an approach for a given client in this order:
- Ask the managed-service question first: does this pipeline genuinely need custom container orchestration, or would a managed ETL service cover it with less maintenance?
- If containers are needed and the client has a handful of pipelines, use ECS scheduled tasks coordinated by Step Functions or EventBridge rules.
- Add a workflow engine such as Airflow on Kubernetes only when dependency management, retries, and backfills across many pipelines justify running a cluster.
- Review provisioned capacity against actual utilization regularly, so idle compute does not drift upward across clients.
How this decision tends to age over a client relationship
A client that starts with three simple pipelines rarely stays there. As a consultancy proves out value, clients ask for more sources, more transformations, and eventually a dashboard refresh cadence tight enough to need real dependency management between steps. What looked like the right call on Step Functions in month one can become a maintenance burden by month twelve once the state machine has grown past what anyone can hold in their head.
Build in a checkpoint, maybe every time pipeline count doubles, to ask whether the original approach still fits or whether it's time to move the client onto a proper workflow engine before the migration itself becomes painful.
What Good Looks Like
Every scheduled pipeline scales its compute down to near zero between runs, and actual utilization is reviewed against provisioned capacity on a set schedule, not left to drift.
Building The Capability (5-Stage Skill Ladder)
How to Get Started
Frequently Asked Questions
Do we need Kubernetes just to run Airflow for a client?
Not necessarily. Airflow can run on a single managed instance or a small ECS service for a modest number of pipelines. Kubernetes's KubernetesExecutor becomes worth the added complexity mainly once you're running many concurrent, resource-varied tasks that benefit from per-task scheduling.
How do we stop a client's idle pipeline infrastructure from running up costs?
Set explicit scale-to-zero or scheduled-shutdown behavior for any compute that only needs to run for a short window each day, and review actual utilization against provisioned capacity at least quarterly so drift gets caught before it compounds across many clients.
When is a managed ETL service the better call instead of containers?
When a client's pipelines are standard extract-and-load work against common sources with no unusual transformation logic. Reach for custom container orchestration only for the pieces a managed service genuinely can't handle, such as a bespoke connector or a client-specific API layer.
Sources
Where we quote a benchmark, we show its source. Other figures in this guide are estimates or general guidance, so check them against your own numbers.
- Hosting/cloud infrastructure spend as % of ARR (median, private B2B SaaS). SaaS Capital 2026 Spending Benchmarks for Private B2B SaaS Companies (15th annual survey, 1,000+ companies), 2026.
- DevOps spend as % of ARR (median, private B2B SaaS). SaaS Capital 2026 Spending Benchmarks for Private B2B SaaS Companies (15th annual survey, 1,000+ companies), 2026.
Related Guides
Kubernetes vs AWS ECS vs HashiCorp Nomad: Container Platforms Compared
Compare Kubernetes, AWS ECS, and HashiCorp Nomad for container orchestration, DevOps overhead, cluster autoscaling, deployment velocity, and hosting COGS.
Database Infrastructure for BI and Data Engineering Consultancies
Data analytics and BI consultancies need read scaling and ETL-friendly infrastructure. Here's how Supabase and AWS RDS compare for that workload.
Build a Cloud Comparison Worksheet for a BI or Data Engineering Client
A worksheet-style walkthrough for business intelligence and data engineering consultants comparing AWS against Google Cloud for a client warehouse.
AWS ECS vs Kubernetes for Tech Startups: Container Orchestration Compared
Compare AWS ECS and Kubernetes for tech startups: DevOps headcount spend, Fargate serverless containers, operational complexity, and deployment speed.
SOC 2 for BI and Data Engineering Consultancies
SOC 2 for business intelligence and data engineering firms building pipelines across client warehouses, and how Vanta, Drata and Secureframe compare.
Choosing Endpoint Security for a BI and Data Consultancy
Exported CSVs and cached query results sit on analytics consultants' laptops long after the work ends. How CrowdStrike and SentinelOne fit that gap.