AWS Billing Discounts Most Teams Miss (2026 Guide)

AWS billing discounts beyond Compute Savings Plans: Database Savings Plans, reserved capacity, CloudFront plans, credits, Private Pricing and Spot.

Ask a team how they get discounts on AWS and you’ll usually hear “Savings Plans” and then a pause. Fair enough. Compute Savings Plans are the big, well-known lever. But AWS has a lot more pricing machinery than that, and some of the most useful pieces sit in corners of the console nobody visits unless something’s on fire.

We’ve lost count of the accounts we’ve seen paying full on-demand rates for a database that hasn’t changed size in two years, or a CDN bill with no commitment against it at all. It’s easy to see how it happens: the programs are spread across a dozen pricing pages, and several changed in the last year.

Here’s the list we wish someone had handed us, checked against AWS’s own pages in October 2026. Prices are on-demand list prices in us-east-1 at the time of writing, and every “up to” figure is AWS’s maximum, not what you should expect on day one.

Savings Plans come in four flavours now

Most people know two. There are four:

Plan What it covers Term Up to
Compute Savings Plans EC2 in any family or region, Fargate, Lambda 1 or 3 years 66%
EC2 Instance Savings Plans One EC2 family in one region 1 or 3 years 72%
SageMaker AI Savings Plans SageMaker AI instance usage 1 or 3 years 64%
Database Savings Plans Aurora, RDS, DynamoDB, ElastiCache, DocumentDB, Neptune, Keyspaces, Timestream, DMS, OpenSearch Service 1 year, no upfront 35%

Database Savings Plans are the one most teams have missed. AWS announced them in December 2025. You commit to a dollar amount per hour for one year, with no upfront payment, and the discount follows your usage across engines, instance families, sizes and regions. That flexibility is the point: moving from RDS for Oracle to Aurora PostgreSQL, or from one region to another, doesn’t strand the commitment.

The catch is depth. The 35% headline applies to serverless usage; AWS’s launch post puts provisioned instances at up to 20%. Plans cover the latest instance generations, so older ones may not be eligible, so check the Database Savings Plans pricing page for your exact engine and instance type before you count the money. Usage covered by an RDS Reserved Instance or DynamoDB reserved capacity can’t also use the plan, so the two don’t stack on the same workload.

If you already hold Savings Plans, check whether they’re actually used:

# Read-only: active plans and last month's utilisation
aws savingsplans describe-savings-plans --states active \
  --query "savingsPlans[].[savingsPlanType,commitment,end]" --output table

# Last calendar month (GNU date first, BSD/macOS date as the fallback)
START=$(date -u -d "$(date -u +%Y-%m-01) -1 month" +%F 2>/dev/null || date -u -v1d -v-1m +%F)
END=$(date -u +%Y-%m-01)
aws ce get-savings-plans-utilization \
  --time-period Start="$START",End="$END" \
  --query "Total.Utilization.UtilizationPercentage"

For the EC2 side of this decision, see Reserved Instances vs Savings Plans.

Reserved capacity outside EC2

Reserved Instances didn’t go away. For several data services they’re still the deepest discount on offer, in exchange for less flexibility than a Database Savings Plan:

  • RDS and Aurora: Reserved DB Instances, one or three years.
  • ElastiCache and MemoryDB: reserved nodes.
  • OpenSearch Service: Reserved Instances.
  • Redshift: reserved nodes. Redshift isn’t on the Database Savings Plans list, so reserved nodes are the commitment route there.
  • DynamoDB: reserved capacity for provisioned-mode tables on the Standard table class, bought in blocks of 100 WCUs or RCUs. AWS quotes up to 54% off for one year and up to 77% for three. It doesn’t apply to on-demand tables or Standard-IA tables, and it can’t be moved to another region or account.

So which do you pick? If a database is stable in engine, size and region for the next three years, a reservation usually wins on price. If you’re mid-migration or expect to change engines, the Savings Plan’s flexibility is worth the shallower discount. Plenty of estates end up with both, applied to different workloads.

Cost Explorer will make a recommendation for most of these:

# Read-only: RDS reservation recommendation from 60 days of usage
aws ce get-reservation-purchase-recommendation \
  --service "Amazon Relational Database Service" \
  --term-in-years ONE_YEAR \
  --payment-option NO_UPFRONT \
  --lookback-period-in-days SIXTY_DAYS

Swap the service name for “Amazon ElastiCache”, “Amazon OpenSearch Service” or “Amazon Redshift”. Each call costs $0.01.

CloudFront has two discount routes

The CloudFront Security Savings Bundle is a one-year monthly spend commitment that takes up to 30% off your CloudFront charges. It also includes AWS WAF usage worth up to 10% of the committed amount. If you run a steady CDN bill on pay-as-you-go pricing, you’re paying more than you need to.

Flat-rate pricing plans are newer, and quite different. Each plan covers one distribution for a fixed monthly price, bundling CloudFront, WAF, DDoS protection, Route 53 DNS and (on the paid plans) CloudWatch Logs delivery, plus an S3 storage allowance that runs from 5 GB on Free to 5 TB on Premium:

Plan Monthly price Requests Data transfer
Free $0 1M 100 GB
Pro $15 10M 50 TB
Business $200 125M 50 TB
Premium $1,000 500M 50 TB

There are no overage charges. Go well over the allowance month after month without upgrading, though, and AWS may serve your traffic from fewer edge locations. The fine print matters: accounts still on the Free Tier aren’t eligible, distributions with Shield Advanced aren’t eligible, a WAF web ACL is required, several distribution features aren’t supported, and the plans can’t be combined with other discounts. A small marketing site with modest traffic is the sweet spot. A large media distribution with heavy Lambda@Edge use probably isn’t.

Don’t forget the pay-as-you-go basics either: the first 1 TB out and 10 million requests each month are free, and data fetched from AWS origins into CloudFront isn’t charged for transfer.

Volume tiers you get without asking

Some discounts apply automatically once you’re big enough, and consolidated billing in AWS Organizations adds usage from every account together to reach them.

Service (us-east-1) Tiers
S3 Standard storage $0.023/GB first 50 TB, $0.022 next 450 TB, $0.021 beyond 500 TB
Data transfer out to internet First 100 GB/month free, then $0.09/GB to 10 TB, $0.085 to 50 TB, $0.07 to 150 TB, $0.05 beyond
CloudFront (United States) $0.085/GB after the free 1 TB, falling through tiers to $0.020/GB above 5 PB

These don’t need a contract, but they’re a reason not to scatter workloads across separate payer accounts. Each standalone payer starts at the top of every tier again. CloudFront also offers custom pricing if you can commit to roughly 10 TB a month or more.

Spot and Graviton are discounts too

Spot Instances run spare EC2 capacity at up to 90% off on-demand. The trade is a two-minute warning before AWS reclaims the instance. That’s fine for batch jobs, CI runners, rendering and stateless web tiers behind a load balancer. It’s a bad idea for a single database primary. Savings Plans don’t apply to Spot, so the two cover different parts of the fleet. Our Spot guide covers diversifying instance types so interruptions stay boring.

# Read-only: the Spot price in effect right now, per Availability Zone
aws ec2 describe-spot-price-history --region us-east-1 \
  --instance-types m7g.large --product-descriptions "Linux/UNIX" \
  --start-time "$(date -u +%FT%TZ)" \
  --query "SpotPriceHistory[].[AvailabilityZone,SpotPrice,Timestamp]" --output table

Graviton isn’t marketed as a discount, but it behaves like one. AWS says Graviton instances cost up to 20% less than comparable x86 instances. An m7g.large lists at $0.0816 an hour against $0.1008 for an m7i.large. And the saving stacks with Savings Plans and Spot, since you’re simply paying a lower base rate.

Discount sharing across your organization

By default, Reserved Instance and Savings Plans discounts in an AWS Organization float to matching usage in any member account. That’s normally what you want. Two things to check:

  1. Sharing hasn’t been switched off. Only the management account controls it, under Billing preferences. Someone may have disabled it for a member account years ago to make chargeback simpler, and that account has been paying full price since.
  2. Group sharing is set up if you need it. You can now restrict or prioritise sharing within groups defined by Cost Categories, which helps when business units buy their own commitments and want to benefit first.

Estimated bills use the latest setting, but the final bill uses the preferences in place at 23:59:59 UTC on the last day of the month and applies them to the whole month. Switch sharing back on mid-month and the whole month benefits. Switch it off and on again before month end and nothing changes.

Credits and programs

The Free Tier changed in July 2025

Accounts created on or after 15 July 2025 get $100 in credits at sign-up and can earn up to $100 more by trying a few services, such as setting up an AWS Budget. On the free plan, the account runs for six months or until the credits run out, whichever comes first, and you can’t be charged unless you upgrade. On the paid plan, credits can be used for up to 12 months. Older accounts keep the legacy model of 12-month trials and always-free allowances. Over 30 services still have always-free monthly limits on both plans.

AWS Activate for startups

Self-funded startups can apply for Activate Founders, which starts at $1,000 in credits and goes up to $5,000. Startups backed by an Activate Provider (an accelerator, angel group or VC firm) can apply for Activate Portfolio, worth up to $200,000. The company must be pre-Series B, founded within the last ten years, on a paid plan, and new to Activate or asking for more than it got before. Credits are worth having, but plan for the day they expire, because the bill arrives in full from then on.

Migration Acceleration Program

If you’re moving workloads from on-premises or another cloud, MAP provides AWS funding and partner support across its assess, mobilize and migrate phases. AWS doesn’t publish fixed amounts or a public eligibility checklist. It’s arranged with your account team or a migration partner, and it’s much easier to set up before the migration starts.

Negotiated pricing

Private Pricing (EDP or PPA)

Large customers can sign a private pricing agreement, still widely called an Enterprise Discount Program. You commit to a total AWS spend over several years in exchange for a discount across most services. AWS doesn’t publish thresholds or rates. The risk sits with you: if spend falls short of the commitment, you pay the difference anyway. Negotiate on forecasts you’d bet your own budget on.

AWS Marketplace private offers

Third-party software bought through AWS Marketplace can be negotiated too. A seller creates a private offer with custom pricing and terms for your account, and it appears as a line item on your AWS bill. Accept it from the management account and it can be shared with member accounts. If you have a private pricing agreement, ask your account team how Marketplace spend is treated under it.

FAQ

What is the difference between Database Savings Plans and RDS Reserved Instances?

Database Savings Plans are a one-year dollar-per-hour commitment that follows usage across engines, families and regions. Reserved Instances lock to specific attributes and can be bought for three years, which usually means a deeper discount and less flexibility.

Can I combine Savings Plans with Spot Instances?

No. Savings Plans don’t apply to Spot usage. Use commitments for your steady baseline and Spot for interruptible capacity on top.

How do I get AWS credits for my startup?

Apply for AWS Activate. Self-funded companies apply directly to Founders; companies backed by an Activate Provider apply to Portfolio with that provider’s organization ID.

Is the CloudFront Security Savings Bundle worth it?

If your CloudFront spend is steady and you’ll keep it for a year, generally yes. If one distribution fits a flat-rate plan, compare that first, since the two can’t be combined.

One question per service

Open Cost Explorer, group last month by service, and for each of your five biggest services ask whether any discount or commitment applies to it at all. Start with the ones where the answer is no. Once commitments are in place, check utilisation every month; a reservation that sits unused still bills every hour of its term. For the wider clean-up that should happen before any of this, see how to save big on your AWS bill.