Short answer
RunsOn runs each job on a fresh EC2 instance in your own AWS account, on spot by default with on-demand fallback; the open-source terraform-aws-github-runner module builds auto-scaling, ephemeral runners on AWS spot instances in your account; and Actions Runner Controller runs runners on a Kubernetes cluster you operate, where whether nodes are spot is your cluster's choice. In CI Bench v1, RunsOn (measured with its default spot setting) was 1.2x faster GitHub-hosted (ubuntu-latest), 75% lower cost per job at 10,000 jobs a month. Maintained by Vitko, Inc., which sells one of the products measured.
Options that use spot capacity
| Option | What its page says | Source |
|---|---|---|
| RunsOn | Self-hosted runners in your AWS account. "Jobs run on spot by default. With no spot capacity, the instance launches on-demand instead, and a job that loses its spot instance mid-run is rerun, with new capacity launched on-demand." Linux and Windows; macOS jobs stay on GitHub. Yearly license from €300 / $350, free for non-commercial use; AWS bills the instances at cost. | RunsOn, read 2026-10-27 |
| terraform-aws-github-runner | Open-source Terraform module: auto-scaling self-hosted runners on AWS spot instances, created on demand and terminated after use (ephemeral), scaling to zero when idle; bring your own AMI; Linux (x64 and arm64) and Windows. You deploy and operate it. | Module README, read 2026-10-27 |
| Actions Runner Controller (ARC) | GitHub-supported Kubernetes operator that scales self-hosted runners; runners can be ephemeral and container-based. Spot capacity is whatever your cluster’s node groups use; ARC itself does not choose it. | GitHub Docs, ARC, read 2026-10-27 |
Measured: RunsOn with its default spot setting
RunsOn: 1.2x faster GitHub-hosted (ubuntu-latest), 75% lower cost per job at 10,000 jobs a month. Its cost is all-in (spot or on-demand price paid, volume, IPv4, cache storage and requests, egress, control-plane cost and the license spread over 100,000 jobs a month). The self-hosted AWS configuration in CI Bench v1 ran on-demand, so the benchmark has no spot-versus-on-demand comparison of its own. Details: alternatives to RunsOn, self-hosted vs managed.
Trade-offs to weigh
- Spot instances can be reclaimed; check how the tool reruns or falls back (RunsOn states its behavior above).
- You pay the cloud bill and operate the setup; the benchmark's cost figures do not include operations time.
- Managed services that bill per minute (list prices) have no spot decision to make.
More: 12 options compared · ranked by speed · ranked by cost per job · price per minute, 2 and 4 vCPU · self-hosted vs managed · alternatives to GitHub-hosted.
Pages may have changed since October 27, 2026; they are the authority. Method: how the runs were made; data: results.json; every raw record: the repository. Maintained by Vitko, Inc., which sells one of the products measured. Page dated October 27, 2026.