Skip to content

Understand / Costs

What does GitHub Actions on AWS actually cost?

Choose the compute your builds need, reach private resources in your VPC, and reuse caches across fresh runners. Gondola charges a flat license fee, and AWS bills your infrastructure directly. Use your own workload to see how the costs compare.

Pricing references checked September 14, 2026 · All examples in USD

A flat license fee for your organization

Gondola Business is USD $49 / month or USD $490 / year, paid annually, for one private GitHub organization. Gondola adds no per-minute or per-runner charge. AWS bills your infrastructure directly, including during the trial.

Your workload / Your estimate

Estimate your monthly costs

Enter your monthly usage. Compute rates, the license and controller costs are prefilled and editable. All amounts are USD; your inputs stay in your browser.

Use your monthly bill or a workload you plan to move.

Your monthly workload

Total billed minutes before any included allowance.

Add time across all runners, including startup and cleanup. Estimate separately from hosted minutes.

Your estimate for storage, networking, caching and supporting services. What to include →

Rates, license and controllers

GitHub Linux x64 · 2 cores
$0.006 / minute
EC2 m7i.large · N. Virginia · On-Demand
$0.1008 / hour
Business license
$49.00 / month
2 controllers · N. Virginia
$18.02 / month

No included hosted minutes applied.

Adjust rates and defaults

Default: GitHub Linux x64, 2 cores. Set 0 for free compute.

Default: Linux m7i.large, 2 vCPU / 8 GiB, N. Virginia. Replace for your region, instance or Spot price.

Use the allowance available to these jobs. Larger GitHub runners have no included minutes.

Default: 0.25 vCPU + 0.5 GiB, Linux/x86 Fargate in N. Virginia. Uses 730 hours/month.

Two controllers provide warm failover. Controllers keep running when runners scale to zero.

One private GitHub organization. AWS is billed separately.

Pricing sources and assumptions →

Estimates include the costs shown above. Add engineering time and any changed GitHub storage charges separately. Taxes and credits are excluded.

How workload volume changes the comparison

The license and persistent controllers are a fixed baseline. As usage grows, that baseline is spread over more builds; your EC2 costs still depend on the hardware, runtime, and capacity you choose. Suitable Spot capacity and a better hardware fit can improve the comparison. Include those assumptions in your estimate and measure the same workload.

At small volumes, hosted runners can cost less, particularly when your jobs fit within an included allowance. Standard public-repository runners can be free. Gondola also gives you control over images, IAM, and private networking; cost is one part of that decision.

The default two Linux/x86 controllers each request 0.25 vCPU and 0.5 GiB on Fargate. Using AWS’s N. Virginia example rates and a 730-hour month, their combined compute is about $18.02 per month. The monthly license and controller compute therefore start at about $67.02 before runners and other AWS services. Choosing one controller halves controller compute and removes warm controller failover.

Compare the same work

  1. Start with the hosted charges you can avoid. Use the minutes GitHub actually bills, with each job rounded up, and subtract the included allowance available to those jobs. Larger GitHub runners have no included minutes. Keep any subscription or storage charges that would remain after switching out of the saving.
  2. Measure EC2 time independently. Sum the billed lifetime of every instance, including image preparation, startup, the job, cleanup, and interrupted retries. Add any capacity you keep idle. The same number of vCPUs does not guarantee the same build time.
  3. Use your actual AWS topology. Include the controllers and the services below. A new NAT gateway, frequent image pulls, or large caches can materially change the result.
  4. Include the work of operating it. Gondola manages the runner lifecycle. Your team still owns AWS access, infrastructure changes, upgrades, and incident handling. Add that engineering time when deciding whether the move is worthwhile.
monthly cost difference =
  hosted compute charges you can avoid
  − Gondola license
  − incremental AWS costs

The calculator uses your independent usage estimates. Its example EC2 price and runtime are placeholders, not measured performance or a regional quote. For mixed fleets, use total instance-hours and a usage-weighted rate, or work through each fleet in the AWS calculator.

What to include in your AWS estimate

ServiceWhat drives the bill
Fargate controllersOne or two persistent tasks, sized for the CPU and memory you request. They continue running with zero idle EC2 runners.
EC2 runnersInstance size, architecture, region, and billed lifetime. Include warm capacity, interrupted retries, and On-Demand fallback.
EBS root volumesThe default 50 GiB per runner, prorated over volume lifetime, plus any extra IOPS or throughput. The minimum supported size is 30 GiB.
S3 cachingStored bytes, requests, and transfer. Optional caching adds no persistent cache server.
NetworkingPublic IPv4, NAT hours and data processing, VPC endpoints, and transfer. Gondola uses your existing network and creates no NAT gateway.
Logs and monitoringCloudWatch ingestion, retention, queries, metrics, and alarms. Include optional Container Insights and renewal monitoring if enabled.
Coordination and secretsDynamoDB lease requests, the GitHub App and entitlement secrets, API calls, and optional renewal resources.
Image storageECR storage and related transfer if you keep customer-owned images or a copy of the controller.

Controls that can lower the bill

Set min_runners = 0 and leave scheduled and adaptive warm capacity disabled to stop replenishing idle runners. Existing runners finish their job or reach their lifetime limit before terminating. Size instances for the job, use ARM64 where your dependencies support it, and consider Spot for jobs that tolerate interruption. The guided first installation uses On-Demand so you can establish a baseline first.

A concurrency limit and maximum runner lifetime help contain runaway work. Neither is a dollar spending cap. Spot with On-Demand fallback prioritizes getting a runner over a fixed discount, so account for that fallback in your estimate. See fleet configuration and capacity policies.

Make caching earn its keep

Reusing dependencies and Docker build layers can reduce repeated work, but compression, transfer, storage, and cache misses all have a cost. Compare a cold and a warm run of the same commit. Keep caching where the total result improves. Gondola’s S3 cache retention defaults to 14 days; expiration is asynchronous. See S3 caching.

Sources and assumptions

  • GitHub runner pricing: the initial hosted rate is Linux x64 2-core at $0.006 per minute. Change it for your runner type.
  • GitHub billing rules: check your included allowance and public-repository eligibility.
  • AWS Fargate pricing: the controller example uses Linux/x86 in US East (N. Virginia), 0.25 vCPU and 0.5 GiB per task, for 730 hours.
  • EC2 On-Demand and Spot pricing: the prefilled rate is $0.1008/hour for Linux m7i.large (2 vCPU, 8 GiB), shared On-Demand in N. Virginia. Change it for your instance, region or purchasing model. The optional example’s $0.10 rate is illustrative.
  • AWS Pricing Calculator: build the remaining storage, network, and service estimate. The optional example uses an illustrative $20 allowance.

This guide excludes taxes, promotional credits, and engineering costs from the calculator. Confirm current rates before committing to a deployment. To compare estimates with invoices, activate Gondola’s resource tags for cost allocation and use Cost Explorer; tags do not retroactively allocate earlier charges.

Ready to run your first workflow?

Check your AWS and GitHub prerequisites, then follow the guided setup. Email support is available when you need help.