PaaS Price Estimator

main / tables / about

PaaS Price Estimator is a tool for doing approximate, "back of the napkin" style estimation and comparison of prices across a variety of PaaS (Platform as a Service) vendors. For example, ever wondered whether an application would be cheaper on Render versus Fly.io? Or which vendors have the cheapest outbound network traffic? PaaS Price Estimator is designed to answer those types of questions.

The page you're looking at right now is like a combination help/manual/FAQ. You can use the table of contents below to navigate:

Table of Contents

Usage Guide

The app's main page is broken into three sections:

  1. The stack editor
  2. The summary
  3. The cost breakdown

How to use it: Add one or more containers to your "wishlist" (aka your "desired stack") by clicking the [+Container] button in the stack editor. For each container, you can configure the desired CPU Type (shared vs. dedicated), number of CPUs, and amount of memory to estimate prices for. You can also specify the expected outbound network traffic for your stack and that will be incorporated into the estimate.

If the provider doesn't support containers with exactly the specified CPU/memory, the next-highest scale container will be chosen. For example, if you request 3.5 GB of memory, you will see prices for 4 GB containers for some providers. Or, if you've requested a "shared" CPU, but a provider only offers dedicated CPUs, the estimation for that provider will use the smallest matching dedicated CPU offering.

You can also attach static IPs and SSD block storage to your containers, which will be factored into the prices shown in the app. If a provider doesn't offer the service (e.g. not all providers offer static IPs) then it won't be included in the estimate for that provider.

Once you've added stuff to your desired stack, the Summary section will list estimates for how much it would all cost with the various PaaS providers. All estimates automatically update when you make changes to the desired stack.

Click on a provider's name in the Summary section to view an itemized breakdown of the estimate for that provider. You can have multiple breakdowns open at once.

If the "Include free-tier offerings in estimation" box is checked, the estimated prices will be discounted according to the providers' varying free tiers. Including free tiers in the estimates makes them more realistic, but they vary widely across providers and often have account-level limits, so I recommend checking the estimate both with and without free tiers to get the most useful aggregate comparison. See for details on types of free tiers supported.

Prices are hardcoded and may become outdated as provider prices change. Click the "tables" link under the site header to see pricing data used for each provider and the date that data was most recently collected/updated.

If you see any prices that are significantly wrong, feel free to open an issue in Github (link in the footer).

How it works

PaaS Price Estimator is an entirely client-side application, meaning it runs directly in your browser and works without an Internet connection. The pricing tables for each provider are baked into the application itself. (All pricing table data are visible using the tables link under the site header.)

The underlying estimation algorithm to determine the price for a given provider is:

  1. For each container in the desired stack, scan the provider's pricing table for a matching container tier. A tier "matches" when it at has at least the desired number of CPUs, at least the desired memory, and the CPU type is "dedicated" if the desired container specifies a dedicated CPU. As a special case, if the desired container wants exactly one shared CPU, tiers with a partial dedicated CPU (e.g. 0.5 vCPUs) will match.
  2. Use the pricing table to calculate the "base price" for a container of the matching tier, assuming 24/7 runtime during the month.
  3. Calculate the price of any container addons (static IPv4 address, persistent SSD) and add them to the container's base price to determine the container's "total price."
  4. Sum the total prices of all the containers from previous steps, and add the price for stack-wide bandwidth to produce the "total price" per month for the entire desired stack.
  5. Apply any recurring free-tier credits to reduce the total price, producing an "adjusted total price" per month. (This is the price shown for the provider in the Summary.)
  6. If the provider has a nonrecurring free-tier credit, divide that credit by the adjusted total price per month to calculate the total number of free months before the nonrecurring credits are exhausted.

Information about the desired stack is stored in the URL (but not sent to any server.) URLs are "shareable" -- copy/paste the URL to share with your friends, or bookmark to remember your desired stack.

The actual estimator relies on JavaScript to function. The rest of the app, namely the tables and about pages, work fine in clients without JavaScript.

PaaS Price Estimator is open source and MIT Licensed. For more details on how it works, visit the Github page.

Free tier details

Many providers have a limited free offering. PaaS Price Estimator makes a best-effort attempt to take free tiers into account.

The following types of free tiers are supported:

  1. Limited quantity of free containers (Fly, Heroku, Render)
  2. Limited free monthly network bandwidth and/or storage (Fargate, Fly, GCP, Render)
  3. Recurring (monthly) account credits you can use on anything (Railway)
  4. Nonrecurring (one-time) account credit you can use on anything (Aptible, GCP)

For detailed information on free tiers for each provider, visit the tables page.

Disclaimer / TODO

Be aware, PaaS Price Estimator is not expected to give perfect pricing information. Each PaaS provider has a slightly different set of offerings and different ways of pricing. I've attempted to unify it all in as consistent a model as possible, but there are necessarily gaps and inaccuracies. Use PaaS Price Estimator for rough estimates only, and go to the PaaS provider's own price calculators if you want a more accurate price (especially for AWS and GCP).

Some notable TODOs:

  • No support for variable/regional pricing. (When pricing is regional, prices from the US West region are used where possible.)
  • Some types of free tiers aren't included in estimates (many are, though -- see ).
  • Want to include more priceable features (certificates, backups, ephemeral storage, databases, etc.)
Copyright 2022 Luke Turner -- MIT Licensed