I'm seeking advice for my company's use of GitHub Actions. Currently, we have our runners hosted on AWS, but the setup feels disorganized, and we're planning to give it a major overhaul. Our goals include autoscaling runners, tracking job resource usage and locations, allowing developers to define custom AMIs for their builds, and ensuring reliable job execution without worrying about webhook failures. I've seen some related projects, but many are Kubernetes, Docker, or Fargate-based, and I'm looking for something simpler since troubleshooting issues within nested Docker containers gives me anxiety. Are there any community-driven projects that manage these needs effectively?
5 Answers
Check out this Terraform module: [terraform-aws-github-runner](https://github.com/github-aws-runners/terraform-aws-github-runner). It supports several concurrent instances and effectively autoscales with a mix of spot and warm pools. It’s been a solid solution for us with over 250,000 minutes last month!
For a solid solution, the terraform-aws-github-runner module is the best fit. It handles autoscaling and custom AMIs quite well, but keep in mind that webhook reliability and resource tracking will still require some custom effort on your part.
I agree with this! Custom solutions can take a lot of time and engineering resources, but the Terraform approach is good for ownership enthusiasts.
Taking a different route, we built our own 'tools' EKS cluster to host runners using GitHub's ARC helm chart. It's powerful but can be frustrating due to limited flexibility in certain aspects. Previously, we used EC2 runners which worked well, but we’ve moved towards a shared resource approach, saving a lot on costs while increasing efficiency with Kubernetes.
We just use the Kubernetes operator for self-hosted runners, and I firmly believe it's the best approach. What's holding you back from going with Kubernetes?
I think it's mostly about the learning curve. Getting my team to pick up basics like AWS ECS is tough, and we're trying to stick to familiar tools like AWS, GitHub Actions, and Terraform.
Many people struggle with security risks tied to executing arbitrary commands within the cluster.
I'd recommend using AWS CodeBuild. You won't manage any servers yourself, which makes things so much easier because of the efficient setup and management.
Yeah, it's pretty quick! The convenience definitely outweighs the cost in most scenarios.
Absolutely! The setup is straightforward. Have you done any speed comparisons with GitHub runners?

We also explored this module, and while it's powerful, it does require a foundation of knowledge to maintain.