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.
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
- 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.
- 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.
- 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.
- 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 costsThe 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
| Service | What drives the bill |
|---|---|
| Fargate controllers | One or two persistent tasks, sized for the CPU and memory you request. They continue running with zero idle EC2 runners. |
| EC2 runners | Instance size, architecture, region, and billed lifetime. Include warm capacity, interrupted retries, and On-Demand fallback. |
| EBS root volumes | The default 50 GiB per runner, prorated over volume lifetime, plus any extra IOPS or throughput. The minimum supported size is 30 GiB. |
| S3 caching | Stored bytes, requests, and transfer. Optional caching adds no persistent cache server. |
| Networking | Public IPv4, NAT hours and data processing, VPC endpoints, and transfer. Gondola uses your existing network and creates no NAT gateway. |
| Logs and monitoring | CloudWatch ingestion, retention, queries, metrics, and alarms. Include optional Container Insights and renewal monitoring if enabled. |
| Coordination and secrets | DynamoDB lease requests, the GitHub App and entitlement secrets, API calls, and optional renewal resources. |
| Image storage | ECR 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.