Reservation Blocks: 40% discount on Machines when you're ready to commit

Two weeks ago, we announced region-specific Machines pricing. That change was a long time coming: either our prices reflect our increasingly region-specific costs (ask us how much it costs to rack a machine in Brazil!), or we have to uniformly raise prices everywhere. We knew as far back as early last year that we’d rather give you the choice of where to deploy than to make everyone cross-subsidize everyone else. But shipping that change meant building a billing system capable of expressing it, which turned out to be a huge project.

Well, that billing project landed. We have an entirely custom billing system now, and so we can do fun billing things. Today we’re announcing the very next fun billing thing we’ve wanted to do: 40% commit discounts.

How it works

If you’ve been around the cloud block, this is going to look like a simple 12-month up-front reservation. Hold on, it’s more interesting than that.

Rather than reserving specific “Machines” (Machine sizes, really), we’re offering a block-based commit scheme. You reserve a block of compute time, either for Performance Machines or Shared Machines, and get a 40% discount. Reservations apply to any number of Machines in that class, in a specific region.

Here are the available reservation sizes:

Performance Machines

  • $144/yr for $20/mo of usage (i.e. $12/mo amortised with a 12 month commit)
  • $1,440/yr for $200/mo of usage
  • $14,400/yr for $2,000/mo of usage

Shared Machines:

  • $36/yr for $5/mo of usage (i.e. $3/mo amortised with a 12 month commit)
  • $360/yr for $50/mo of usage
  • $3,600/yr for $500/mo of usage

You can buy as many blocks as you want, and jigsaw them together in whatever way best fits your needs:

  • Pay for two $144 reservations, and you’ll get 12 months of “$40/mo” credits for $24/mo amortised.
  • Buy a $144 and a $1440 and you’ll get 12 months of “$220/mo” credits for $132/mo amortised.

Here’s a concrete example

You tell us you want to buy a $144 Performance Machines reservation for syd on July 16th 2024. We give you a $20 credit, every month, for the next 12 months, starting with a credit for July 2024. These credits are only applicable to Performance Machines (which includes CPU and Additional RAM charges), and only for usage in the syd region.

We backdate reservations to the first day of the current month. Buying a reservation in July gives you usage for the full month. So if you realize late into the month that your infrastructure needs are a good fit for our reserved pricing, you’re covered - the reservation will apply retroactively to all usage in the month in which you purchased it.

How do I purchase a reservation?

To begin with, we’re doing this the old fashioned way. Email reservations@fly.io with a list of how many of each of the available reservations you’d like to purchase along with which regions, and we’ll set them up for you.

18 Likes

How much does it cost to rack a machine in Brazil? :grin:

2 Likes

A familiar line perhaps :wink:

1 Like

Nice move! Flyio’s machines in Brazil have indeed become very expensive, losing their competitiveness on the global scale feature.

Question…How does this correlate (if any) to the credits we receive while paying for a plan? For example the Launch Plan comes with $29 of credit, does this contribute to paying off the amortized pricing at all or is that separate?

Thanks for providing this though, super helpful

Does unused credit roll over to the next?
Some of my projects have peak usage around 2-3 events across the year, so I’m wondering if I can buy total number of blocks across the entire year, or this is intended for the baseline traffic I have across the year.

@uncvrd from my understanding, reserved blocks are upfront payments so your monthly discount from your plan wouldn’t apply to the upfront payment.

@echoi from my understanding, credits don’t roll over as you are effectively committing to spending a certain amount each month rather than just buying credits.

1 Like

@charsleysa From how I’m reading it, you are provided credit each month based on your upfront payment allotment. This is how the monthly credits for a Plan are provided too, so I guess that’s where my confusion is.

So it seems like I’d be receiving:

  • Monthly credit for Launch Plan
  • Monthly credit (aka 1/12th of my amortized rate) for Reservation blocks

I dont see how there could be a conflict since the reservation blocks are for specific resources and the plan is not but just curious…

I’m guessing the order of operations is:

  1. apply reservation block discounts to specified resources
  2. apply Plan discount to remaining costs across all resources
  3. Remaining subtotal is what is to be paid at the end of the month
1 Like

This is my understanding too.

Is a region reserve block applicable across all apps in an org?

And just to be clear, I have to reserve combo blocks of region+class+amount, right? Rather than a general reservation of just class+amount and the discounted credits apply to any region at their varying rates.

I totally understand why you’d want us to reserve specific regions, but it would be awesome if some day we could just do a general reservation. Even if it was for a lower discount.

2 Likes

Hey @uncvrd, currently the answer is no, your included usage cannot be used to pay for a reservation.

The credit you get each month is only applicable to usage in that month, i.e. no rollver.

Thanks for asking, this is something we could have made clearer in the announcement, and I will make sure is clear in docs.

1 Like

Yes! The reservation block is associated to an organisation, so any applicable usage in that organisation (due to any app) can be paid down by the reservation credits.

Yes, for the moment reservations cannot be “global”, they must be tied to a specific region.

Yeh totally get you, this is good feedback and I’ll bring it to the team :slight_smile:

I’d just to clarify slightly more how this works with plans.

When you buy a reservation, the credit you receive can only be spent on Shared/Performance CPU?

When you buy the Launch Plan, you get a $29 credit but that credit can be spent on any type of usage?

i.e: the Launch Plan credit can pay for Additional RAM, Outbound Bandwidth, etc while your reservation credit covers compute?

Is that correct?

Yes, reservations apply only to machines of the specified class (shared/performance) and region.

Plan included usage can pay down any usage-based charges. At the moment I think the only thing you can be charged for that is not usage-based is the cost of the plan itself. Everything else can currently consume your included usage.

Reservations are consumed before included usage.

Docs are here: Fly.io Resource Pricing · Fly Docs

Thanks for clarifying. That makes sense

There’s a project idea that’s been intrusively entering my thoughts for years, but always ultimately dismissed for reasons of either technical complexity or bad pricing outlook. Fly already solves for a lot of the technical challenge, and now with this change I’m starting to think it could actually work from a cost perspective too.

I’m delighted to see this!

3 Likes

Another question, in the billing the extra RAM is listed separately. Do the reservations go towards that as well or only the cpu line item for a region?

Reservations are applicable to both additional RAM and CPU charges in the region :slight_smile:

They’ll only pay down additional RAM that comes from machines of the class for which the reservation was purchased. E.g. additional RAM charges coming from shared machines would not consume any performance reservation credits.

1 Like