HomeLaunchesDepot
21

✨ Depot: Managed GitHub Actions runners for AWS

30% faster compute, 10x faster cache, 1/2 the cost

Hey, we’re Kyle and Jacob, the founders of Depot, a hosted container build service for Docker images, and we’re excited to launch our new product: managed GitHub Actions runners for AWS!

The Problem

While GitHub Actions is one of the most prevalent CI providers, Actions is slow for a few reasons:

  • GitHub uses underpowered CPUs.
  • Network throughput for cache and the internet at large is capped at 125 MB/s.
  • Total cache storage is limited to 10GB per repo.
  • Larger runners are expensive and take a long time to start running jobs.

The Solution

Depot-managed runners solve this! Rather than your CI jobs running on GitHub’s slow compute, Depot routes those same jobs to powerful EC2 instances. And not only is this faster, it’s also 1/2 the cost of GitHub Actions!

We do this by launching a dedicated instance for each job, registering that instance as a self-hosted Actions runner in your GitHub organization, and then terminating the instance when the job is finished.

We've also integrated the runners with our existing distributed storage cluster that we use for Docker image builds for up to 10x faster cache throughput! 💪

Demo Video

https://www.youtube.com/watch?v=VX5Z-k1mGc8

Tech Details

Using AWS as our compute provider has a few advantages:

  • We launch fast m7a instances, which are typically 30%+ more performant than alternatives.
  • Each instance has high-throughput networking of up to 1.5 GB/s, hosted in us-east-1, so interacting with artifacts, cache, container registries, or the internet at large is quick.
  • Each instance has a public IPv4 address, so you’re not sharing any rate limits with anyone else.

By integrating the runners with the distributed cache system (backed by S3 and Ceph) that we use for Docker build cache, jobs automatically save/restore cache from this cache system, with speeds of up to 1.5 GB/s, and without the default 10 GB per repo storage limit.

Additionally, the runners are located in the same VPC as our Docker build service, so for anyone using both, built containers are now able to --load back into CI for testing much faster than they would over GitHub’s default network.

We build our machine image from GitHub's image definition, so all the same software you expect is pre-installed. Support for Arm runners, powered by Graviton instances, is in beta now.

Getting Started

You can sign up at https://depot.dev/sign-up for a free trial if you’d like to try it out with your own workflows!