CI Bench

Sourced list · read 2026-10-27 · one measured configuration · Updated October 27, 2026

GitHub Actions on spot instances: which service does this?

What each option says about spot capacity, from its own page, plus the one spot-based configuration CI Bench v1 measured.

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

Spot-based GitHub Actions runner options
OptionWhat its page saysSource
RunsOnSelf-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-runnerOpen-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

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.