# What are cheaper alternatives to AWS for GPU training?

> AWS p5 lists at $6.88 per H100 hour. Nodus, Modal, Lambda and RunPod list 42 to 62 percent less. Spend AWS credits first, then burst.

Source: https://www.nodus-compute.ai/blog/cheaper-aws-alternatives-for-gpu-training/
Build revision: 34aecf050e44897ec96229d1910b039143bb064c

<!-- vale Nodus.Providers = NO -->

The cheaper alternatives to AWS for GPU training are platforms that list H100 hours well below the $6.88 an H100 costs inside an on-demand AWS `p5.48xlarge`: Nodus at $2.60, Modal at $3.95, and Lambda and RunPod Secure Cloud at $3.99. Nodus can also connect your AWS account and, in Beta, run your jobs there first, so you spend AWS credits before you spend cash.

If you hold AWS credits, a Reserved Instance or a Savings Plan, or terabytes of data in S3, staying on AWS can still be right. The sections below show where the line falls.

## Is AWS actually expensive for GPU training?

At on-demand list price, yes. We read the official AWS price list for us-east-1 on October 26, 2026: `p5.48xlarge` (8 x NVIDIA H100) is $55.04 per hour, which is $6.88 per H100-hour. `p5en.48xlarge` (8 x NVIDIA H200) is $63.296 per hour, or $7.912 per H200-hour. The A100 machines are `p4d.24xlarge` at $21.9576 per hour and `p4de.24xlarge` at $27.44705.

Those rates come from the [EC2 on-demand pricing page](https://aws.amazon.com/ec2/pricing/on-demand/) and its public price list. Hardware details are on the [P5](https://aws.amazon.com/ec2/instance-types/p5/) and [P4](https://aws.amazon.com/ec2/instance-types/p4/) pages.

![Listed on-demand H100 price per GPU-hour: AWS p5.48xlarge $6.88 (us-east-1), Lambda 8x H100 SXM $3.99, RunPod Secure Cloud H100 SXM $3.99, Modal H100 $3.95, Nodus H100 SXM $2.60.](https://www.nodus-compute.ai/blog-charts/cheaper-aws-alternatives-for-gpu-training/h100-hourly.svg) *At list prices, an H100 hour costs 42 to 62 percent less outside AWS.*

List price is not what everyone pays. Teams with Reserved Instances, Savings Plans or a negotiated discount pay less per hour, and the gaps below shrink for them.

## Which platforms are cheaper than AWS per H100 hour?

Four alternatives publish lower H100 rates than AWS on-demand:

|Platform|H100 (per GPU-hr, list)|How it bills|After the work finishes|Source|
|-|-|-|-|-|
|AWS `p5.48xlarge`, us-east-1|$6.88|per instance-hour, 8 GPUs|billed until you stop it|[EC2 on-demand pricing](https://aws.amazon.com/ec2/pricing/on-demand/)|
|Nodus H100 SXM|$2.60|while the Job runs|the Job ends when your command exits|[Nodus pricing](https://www.nodus-compute.ai/pricing/)|
|Modal H100|$3.95|per second|no charge between function calls|[Modal pricing](https://modal.com/pricing)|
|Lambda 8x H100 SXM|$3.99|one-minute increments|billed until you terminate it|[Lambda pricing](https://lambda.ai/service/gpu-cloud), [Lambda billing](https://docs.lambda.ai/public-cloud/billing/)|
|RunPod Secure Cloud H100 SXM|$3.99|per second|billed until the Pod stops|[RunPod pricing](https://www.runpod.io/pricing), [RunPod Pod pricing](https://docs.runpod.io/pods/pricing)|

Prices checked October 26, 2026. Nodus is listed at $2.60/hr on the Nodus pricing page; Modal’s per-second H100 rate multiplies out to $3.949/hr.

RunPod also lists a cheaper Community Cloud tier on the same page. We use Secure Cloud here because it is the closer match to AWS on-demand for a long run.

The worked example is the one most teams ask about: 8 x H100 for 10 hours, rate times 8 GPUs times 10 hours, nothing else added.

|Platform|8 x H100, 10 h at list|
|-|-|
|AWS `p5.48xlarge`|$550.40|
|Lambda|$319.20|
|RunPod Secure Cloud|$319.20|
|Modal|$316.00|
|Nodus|$208.00|

![Cost of an 8 x H100, 10-hour run at list prices: AWS p5.48xlarge $550.40, Lambda $319.20, RunPod Secure Cloud $319.20, Modal $316.00, Nodus $208.00.](https://www.nodus-compute.ai/blog-charts/cheaper-aws-alternatives-for-gpu-training/eight-h100-ten-hours.svg) *The same 80 GPU-hours cost $342.40 less on Nodus than on an on-demand p5 at list.*

Storage, data transfer and idle time come on top. Our [cost per finished job breakdown](https://www.nodus-compute.ai/blog/lowest-cost-h100-and-b200-hours/) adds those to the same 8 x H100 run.

## Should you spend your AWS credits before switching?

Yes. Credits you already hold cost nothing at the margin, so moving work elsewhere while they expire is paying twice. The useful question is what to do with the work that does not fit inside them.

Nodus answers that with a connected account. The read-only connection is an IAM role that only Nodus can assume, with an external id unique to your connection, limited to listing instances, daily spend, credits left and GPU quota. It never creates anything. The [run work in your own account](https://www.nodus-compute.ai/docs/guides/pools/cloud-accounts/#run-work-in-your-own-account-beta) Beta adds a second role that can launch and terminate only machines Nodus tags as its own.

With both roles in place, the flow is short:

1. Set a monthly credit limit on the account in the Nodus console.
2. Submit Jobs and Workspaces as usual. Single-node work goes to your AWS account first, up to the limit.
3. When the account is full or out of credit, work moves to Nodus capacity, or waits for your approval if you chose that.

Sandboxes and multi-node runs always use Nodus capacity, so plan large distributed jobs as cash, not credit. The [cloud-accounts docs](https://www.nodus-compute.ai/docs/guides/pools/cloud-accounts/) list every permission both roles ask for.

![Hours of 8 x H100 that $10,000 buys at list prices: AWS p5.48xlarge 181.7 hours, Modal 316.5 hours, Lambda 313.3 hours, RunPod Secure Cloud 313.3 hours, Nodus 480.8 hours.](https://www.nodus-compute.ai/blog-charts/cheaper-aws-alternatives-for-gpu-training/credit-runway.svg) *$10,000 buys 181.7 hours of 8 x H100 on an on-demand p5 and 480.8 hours on Nodus.*

The chart is $10,000 divided by each 8-GPU hourly rate. It shows why the order matters: once credit runs out, every overflow hour on AWS costs more than 2.6 times what it costs on Nodus at list.

## Why are teams moving GPU training off AWS?

Sticker price is the obvious reason, but three others show up in the bill and the calendar.

GPU quota is the first. AWS limits how much of each GPU machine family an account can run per region, and more needs a request through [AWS Service Quotas](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html). When a connected account hits its quota, Nodus skips that machine family in that region for an hour and runs the work elsewhere, so a quota wall stops being a blocked job.

Idle time is the second. Instance-style billing, which covers AWS, Lambda instances and RunPod Pods, charges until someone stops the machine. Lambda’s [billing docs](https://docs.lambda.ai/public-cloud/billing/) say instances are billed “for as long as they’re running, regardless if they’re actively being used.” On an 8-GPU machine, one forgotten hour is 8 GPU-hours. Job-style billing ends when the work does.

Interruptions are the third. [EC2 Spot](https://aws.amazon.com/ec2/spot/pricing/) is cheaper than on-demand, but when AWS reclaims the machine you build the save, replace and restore steps yourself. On Nodus, a reclaimed interruptible machine restarts elsewhere with its `/nodus/state` directory restored, as our [spot preemption guide](https://www.nodus-compute.ai/blog/resume-training-after-spot-preemption/) walks through.

If your real question is the managed platform rather than raw compute, read [Nodus vs AWS SageMaker](https://www.nodus-compute.ai/blog/nodus-vs-aws-sagemaker/) instead.

## When is AWS still the better choice?

Pick AWS if you hold credits that will expire. Spend them first, then send the overflow somewhere cheaper. Connecting the account to Nodus lets you do both without changing how you submit work.

Pick AWS if a large dataset already lives there and you train on it repeatedly. Data transfer out of AWS to the internet is $0.09 per GB for the first 10 TB a month and $0.085 per GB for the next 40 TB, per the [EC2 on-demand pricing page](https://aws.amazon.com/ec2/pricing/on-demand/). Pulling a 20 TB dataset out once is 10,240 GB at $0.09 plus 10,240 GB at $0.085, about $1,792. Copy it once and that is a one-time cost; pull it every run and it adds up fast.

Pick AWS if you already pay for a Reserved Instance or Savings Plan on p5. That commitment lowers your effective rate below the $6.88 list, and you pay for it whether you use it or not.

Pick AWS if your team builds on SageMaker features such as managed hyperparameter tuning, Pipelines or Model Monitor. Those are products, not just compute, and the switching cost is real.

Pick AWS if you need a large H100 cluster for fixed dates. [EC2 Capacity Blocks for ML](https://aws.amazon.com/ec2/capacityblocks/pricing/) let you reserve GPU capacity for a set window in advance.

## How do you add Nodus without leaving AWS?

Keep AWS as it is and connect it, then send new jobs through Nodus. These commands are copied from the [install](https://www.nodus-compute.ai/docs/getting-started/install/), [cloud-accounts](https://www.nodus-compute.ai/docs/guides/pools/cloud-accounts/) and [quickstart](https://www.nodus-compute.ai/docs/getting-started/quickstart/) docs:

Terminal window

```sh
pip install nodus-compute
nodus login
nodus create cloudaccount aws-main --provider aws --account-id 123456789012
# after the read-only and execute CloudFormation stacks show CREATE_COMPLETE:
nodus cloud connect aws aws-main --credit-limit 500
nodus run --name first-train --gpu H100 --image nodus/pytorch \
  --max-cost 300 -- python train.py
```

`--max-cost 300` puts a hard $300 limit on that Job. With the account connected, the Job runs in AWS while the $500 monthly limit lasts and on Nodus capacity after that. Full rates are on the [Nodus pricing page](https://www.nodus-compute.ai/pricing/), and [our RunPod alternatives guide](https://www.nodus-compute.ai/blog/runpod-alternatives-2026/) compares the other options.

## FAQ

### Does moving training off AWS add data transfer fees on the other side?

Not for getting data in. AWS lists data transfer in at $0.00 per GB, and RunPod’s [Pod pricing docs](https://docs.runpod.io/pods/pricing) say Pods carry no ingress or egress fees. The fee that matters is AWS’s charge to move data out, so copy a dataset once rather than streaming it every run.

### How is the AWS credit limit counted in Nodus?

Nodus spends the limit at its own list estimate for each machine, which can differ from what AWS bills you, so set it a little below the credit you hold. The default period renews each calendar month in UTC; a Total period spends it once.

### Which AWS regions can Nodus run work in?

The execute role launches machines in the stack’s region, which must be us-east-1, us-east-2 or us-west-2. Sandboxes and multi-node runs use Nodus capacity either way.

### What happens to my machines if I disconnect the account?

Disconnect in Nodus first. Nodus stops placing work there, moves running work to the next source and terminates the machines it started. Then delete the execute stack in AWS.
