Runners

RunsOn for GitHub Actions

Self-hosted GitHub Actions runners on AWS with 10x cost savings


RunsOn provides self-hosted GitHub Actions runners deployed entirely within your AWS account. It offers the ephemeral runner experience of GitHub-hosted runners at substantially lower cost while maintaining complete data sovereignty and security.

Why RunsOn?#

Cost savings

RunsOn delivers significant savings compared to GitHub-hosted runners. A 2-CPU Linux instance costs approximately $0.0011 per minute on RunsOn versus GitHub's $0.0080 per minute—roughly 7x cheaper using spot pricing. Larger configurations show even greater advantages.

InstanceRunsOn (Spot)GitHub-hostedSavings
2-CPU Linux$0.0011/min$0.0080/min~7x
4-CPU Linux$0.0019/min$0.0160/min~8x
64-CPU Linux$0.0147/min$0.2560/min~17x

Full control

  • 100% self-hosted within your AWS account
  • No external control plane dependency
  • Code, secrets, and logs remain in your VPC
  • No third-party access required

Performance

  • Blazing fast cache downloads via Amazon S3 endpoint
  • S3-integrated caching with unlimited storage
  • NVMe storage options
  • Consistent, fast boot times under 10 seconds with warm pools

Flexibility

  • Support for 1 to 896 vCPU instances
  • Compatible with x64, ARM64, and GPU instance types
  • Access to any AWS EC2 instance
  • Spot and on-demand pricing options
  • Linux and Windows support

How it works#

RunsOn deploys a lightweight management layer in your AWS account using CloudFormation. When a GitHub Actions workflow requests a RunsOn runner:

  1. The RunsOn controller receives the job request
  2. A new EC2 instance launches with your specified configuration
  3. The job executes on the ephemeral instance
  4. The instance terminates after the job completes

This ephemeral model provides the same security guarantees as GitHub-hosted runners—each job runs on a fresh machine with no residual data from previous jobs.

Quick start#

Replace your existing runs-on label with a RunsOn configuration:

1
# Before
2
jobs:
3
build:
4
runs-on: ubuntu-latest
5
6
# After
7
jobs:
8
build:
9
runs-on: runs-on=${{ github.run_id }}/runner=2cpu-linux-x64

Runner types#

RunsOn supports multiple runner configurations:

Linux x64

  • 1-64 vCPUs available
  • Ubuntu 22.04 and 24.04 images
  • Instance families: m7a, m7i, c7a, c7i

Linux ARM64

  • 1-64 vCPUs available
  • Graviton-based instances
  • Instance families: m7g, c7g

Windows

  • x64 architecture
  • Windows Server images
  • Full Visual Studio support

GPU

  • NVIDIA and AMD GPU instances
  • CUDA and ROCm support
  • ML/AI workload optimized

Pricing#

RunsOn uses a simple pricing model:

LicenseCostFeatures
DemoFree (15 days)Full features, email support
Commercial€300/yearFull features, email support
Sponsorship€1,500/yearPriority support, source code access, private Slack

Non-profit organizations qualify for complimentary licenses.

Beyond the license fee, you pay AWS directly for:

  • RunsOn stack infrastructure: $1.50–$5/month
  • EC2 compute: Billed per-second after first minute
  • Storage and networking: Variable based on usage

Next steps#