- 250k+
- daily jobs
- Zero
- k8s headaches
- 90%
- cost savings
Self-hosted GitHub Actions runners for AWS
Faster build times, shocking cost savings
Easy to setup. 85% cheaper than GitHub Actions.
Enterprise-grade runners without the complexity
⚡️ Blazing fast builds
- Native x64 & ARM64 runners
- At least 30% faster than GitHub-hosted
- Windows & GPU support
- Optimized boot time under 30s
💰 Maximum cost savings
- Up to 90% cheaper with AWS Spot instances
- Across multiple AZs
- Automatic fallback to on-demand
- Use your existing AWS credits
📈 Scales with your needs
- Hundreds of concurrent jobs at once
- 250k+ daily jobs across users
- Multi-AZ for high availability
- Only limited by your AWS quotas
✨ Supercharged caching
- VPC-local S3 cache backend
- Up to 5x faster transfers
- Unlimited storage for caching
- All caching actions supported
🔒 Enterprise-ready
- VPC peering for private resources
- Static IPs for firewall rules
- Custom images & SSH access
☸️ Complete control
- 100% self-hosted in your AWS account
- No third-party dependencies
- Full audit capabilities
🛡️ Secure
- Real EC2 VMs for complete isolation
- Ephemeral, recycled after each job
- Regularly maintained and patched
- Security taken seriously
🔄 Best alternative to
- GitHub-hosted runners
- Actions Runner Controller (ARC) for Kubernetes
- Philips terraform-aws-github-runner
- Homegrown solutions
We're in the process of moving from CircleCI to Github Actions. We've been using Actions Runner Controller on EKS, but hit a number of scaling issues, job pickup delays, and job cancellations.
We started trialing RunsOn to see how other options might fair compared to ARC and have been thoroughly impressed.
Flat license fee that won’t break the bank
Evaluate for free for 15 days.
Per-second billing
No middleman markup
Use your AWS credits
Been using RunsOn for a quarter. We saved around 75% our costs, and our tests now run around 5x faster because we can use gigantic spot instances cost-effectively.
Perfectly right-size your runners, with dynamic runner configuration
Forget rigid runner configurations. No one wants to pay for a 2CPU/8GiB machine when your workflow can run with a 2CPU/4GiB instance. Take advantage of the wide selection of AWS instances to get even more savings and stop wasting resources. Specify RAM, CPU, GPU, DISK size, instance type, static IP support, and more at runtime:
runs-on: ubuntu-latest # ⤵️ replace with
A compatible 2-CPU x64 runner:
runs-on: - runs-on=${{ github.run_id }} - runner=2cpu-linux-x64
A 2-CPU ARM64 runner:
runs-on: - runs-on=${{ github.run_id }} - runner=2cpu-linux-arm64
A 16-CPU x64 runner with a custom image:
runs-on: - runs-on=${{ github.run_id }} - family=c7a+c7i - cpu=16 - image=custom-image-x64
c7gd instance (950GB of NVMe local storage), using Ubuntu24 for ARM64:
runs-on: - runs-on=${{ github.run_id }} - family=c7gd.4xlarge - image=ubuntu24-full-arm64
A runner with a static egress IP, and SSH disabled:
runs-on: - runs-on=${{ github.run_id }} - runner=2cpu-linux-x64 - private=true - ssh=false
A runner targetting a specific environment:
runs-on: - runs-on=${{ github.run_id }} - runner=2cpu-linux-x64 - env=staging
Less than 10 min to test, install and use the product. You can finetune any workflow (CPU, RAM, machine type/size..) depending on your needs. The cache download speed is blazing fast thanks to amazon s3 endpoint. Pricing is transparent, pay only what you use with no overage.
Battle-tested CloudFormation stack. Maintenance-free.
Available in 10 AWS regions. Install now in 10 minutes or watch the demo:
Join companies that get faster CI, at lower cost
I've been testing Kubernetes with ARC: more complex, each runner takes ~25 seconds to boot (on an existing node), far less attractive than the simplicity of RunsOn.
With RunsOn, we have increased CI/CD performance and reliability at a fraction of the cost of official or private hosted runners – it's a no-brainer for any DevOps team using GitHub actions at scale.
10x cheaper, for 10 minutes of work
You can always switch back to official runners at any time.
Get started →
FAQ
Is RunsOn for me?
Most likely YES: If you spend more than $100/month on GitHub Actions, or find yourself constantly babysitting your own self-hosted runners, then you will definitely get a meaningful return on investment by switching to RunsOn. You also get access to custom ARM runners and GPUs, irrespective of your GitHub plan, even on the free tier.
Is this better than Action Runner Controller (ARC)?
If you are already heavily invested into Kubernetes, then ARC might not be too much work for you to setup and operate. However, RunsOn is much simpler to install, requires zero maintenance, and has a much better feature set than ARC: flexible runner types, 1-1 compatible images, integrated caching, real VMs, static IPs, fast boot times.
Is this better than the Philips Terraform AWS GitHub Runner?
Philips Terraform module is entirely Open-Source and free, contrary to RunsOn where you pay a small license fee for commercial use (non-commercial use is free). The terraform module is harder to setup and operate, and has a more limited feature set: no image compatibility with GitHub, slower boot times in ephemeral mode, fixed runner types, no integrated caching, hard to debug failure modes due to extensive use of lambdas.
Is this better than [other 3rd-party provider]?
There are great 3rd-party providers for self-hosted GitHub Actions runners (benchmarked here). However they are 3rd-parties, so you must be aware of the security implications of using them. RunsOn is fully self-hosted, does not depend on third-parties, has the best pricing, and features you won’t find over there at the same price point (unlimited concurrency, SSH access, static IPs, fast and consistent boot times, the widest choice of instance types, etc).
What about security?
RunsOn is fully self-hosted, and does not depend on third-parties. You can deploy it in your own AWS account, and have a look at our dedicated security page for more details.