Skip to content

A module you can read before you apply it

Deploying BYOC with Terraform

The Terraform module that stands up runnerhut runners in your own AWS account, what it creates, and how to review it.

BYOC is deployed as a Terraform module rather than a click-through wizard, because the whole point is that your team can review what lands in your account before it does.

hcl
module "runnerhut" {
source = "runnerhut/runners/aws"
version = "~> 1.0"
 
vpc_id = aws_vpc.main.id
subnet_ids = aws_subnet.private[*].id
instance_types = ["c7g.4xlarge", "c7i.4xlarge"]
max_capacity = 200
 
tags = {
Team = "platform"
CostCenter = "eng-infra"
}
}

What it creates

  • An autoscaling group for runner capacity, in the subnets you name
  • An S3 bucket for cache, with lifecycle rules and default encryption
  • An ECR pull-through cache rule
  • An IAM role and instance profile scoped to exactly those resources
  • A VPC endpoint for control-plane communication

What it does not create

  • No VPC, subnets or NAT — you supply existing networking
  • No public IPs or internet gateway
  • No IAM users or long-lived access keys

Your next build could be twice as fast, at half the price

Start free. Migrating away is the same one line, and we publish that diff too.