Every Sprinters-powered job is launched as an EC2 instance in your own AWS account. Each instance is of a specific type and can either be launched as on-demand (default) or spot.
An instance type is the combination of an instance family and a size. The instance family determines the CPU architecture and the ratio between vCPUs and GiBs of RAM. The size then acts as a multiplier.
GitHub-hosted runners always come in a 1:4 ratio (ex.: 2 vCPUs and 8 GiBs of RAM).
With Sprinters-powered runners, you can freely choose between:
c
instances: compute-optimized)t
instances: burstable general-purpose)m
instances: general-purpose)r
instances: memory-optimized).General purpose instances are a great place to start as they provide a good balance for most workloads.
You can optimize costs by running jobs requiring more memory, but not more vCPUs on smaller size memory-optimized instances.
And jobs requiring more vCPUs but not more memory, can be run at reduced cost on larger size compute-optimized instances.
If not explicitly specified, a job using an x64 image will run on a t3.large
instance and a job using an arm64 image will run on a t4g.large
instance.
To use a different instance type, simply append it to the label:
runs-on: sprinters:aws:r7a.16xlarge
This job will now use an r7a.16xlarge
instance.