Therefore, a Free Tier account can not have a payable set of apps or databases, nor can a Standard Tier account have a free set of apps.
We try and keep things very simple at Gigalixir, so we only offer two account / pricing tiers.
The Free Tier and the Standard Tier.
Free Account Tier
The Free Tier is, well…free! It also requires no credit card and the usage is free.
But, your apps are limited to one instance up to size 0.5 and one free tier database.
Although the database is free, it is really not suitable for production use. You are limited to 2 connections, 10,000 rows, and no backups. Idle connections are terminated after 5 minutes.
Also, on the Free Tier, if you haven’t deployed an app for over 30 days, we will send you an email to remind you to keep your account active. If you do not keep your account active, your app may be scaled down to 0 replicas.
We know this isn’t ideal, but we think it is better than sleeping instances in most cases.
We really want to be here as an asset to the global developer community with our Free Tier. We designed this tier to be of service to students, educators, testers, and new engineers, so we appreciate your understanding of the above situation as the free tier does cost us a lot of money to run for the developer community.
Standard Account Tier
The Standard tier is ideal for development, testing, and running production applications.
CPU, bandwidth, and power are still free on the Standard Account Tier, however you pay $5 for every 100MB of memory per month ($0.05/MB/Month/Replica).
Please check Database Sizes & Pricing for standard tier database costs.
|Instance Feature||FREE Tier||STANDARD Tier|
|No Connection Limits||YES||YES|
|No Daily Restarts||YES||YES|
|Apps Team Permissions||YES|
|No Inactivity Checks||YES|
|Database Feature||FREE Tier||STANDARD Tier|
|Automatic Data Migration||YES|
- Only size 4 and above have dedicated CPU. See Database Sizes & Pricing.
- Databases still have connection limits based on Google Cloud SQL limits. See https://cloud.google.com/sql/docs/postgres/quotas#fixed-limits
Gigalixir vs Heroku Feature Comparison
|Feature||Gigalixir FREE Tier||Gigalixir STANDARD Tier||Heroku Free||Heroku Standard||Heroku Performance|
|No Connection Limits||YES||YES|
|No Daily Restarts||YES||YES|
|Flexible Instance Sizes||YES|
In the free tier, everything is no-credit-card free. Once you upgrade to the standard tier, you pay $10 for every 200MB of memory per month ($0.05/MB/Month/Replica).
CPU, bandwidth, and power are free.
See our cost estimator to calculate how much you should expect to pay each month.
Please keep reading for exactly how we compute your bill.
Every month we calculate the number of
replica-size-seconds used and charge your credit card.
replica-size-seconds is how many replicas you ran multiplied by the size of each replica multiplied by how many seconds they were run. This is aggregated across all your apps and is prorated to the second.
For example, if you ran a single replica of size 0.5 (500 MB) for the entire month, your bill will be:
(1 replica) * (500 MB) * (1 month) * (0.05 $/MB-Month-Replica) = $25.00
If you ran a single replica of size 1.0 (1000 MB) for 10 days, then scaled it up to 3 replicas, then 10 days later scaled the size up to 2.0 and it was a 30-day month, then your bill would be
[ (1 replica) * (1000 MB) * (1/3 month) + (3 replicas) * (1000 MB) * (1/3 month) + (3 replicas) * (2000 MB) * (1/3 month) ] * (0.05 $/MB-Month-Replica) = $166.67
For database pricing, see Database Sizes & Pricing.
Database Sizes & Pricing
In the Free Tier, the database is free, but it is really not suitable for production use.
It is a multi-tenant postgres database cluster with shared CPU, memory, and disk. However, you are limited to two connections, 10,000 rows, and no backups. Idle connections are terminated after five minutes.
If you want to upgrade your database, you’ll have to migrate the data yourself.
For a complete feature comparison see our Tiers above.
In the Standard Tier, database sizes are defined as a single number for simplicity. The number defines how many GBs of memory your database will have. Supported sizes include 0.6, 1.7, 4, 8, 16, 32, 48, 64, and 128.
Sizes 0.6 and 1.7 share CPU with other databases.
All other sizes have dedicated CPU, 1 CPU for every 4 GB of memory.
For example, size 4 has 1 dedicated CPU and size 64 has 16 dedicated CPUs. All databases start with 10 GB disk and increase automatically, as needed.
|Size||Price / Month||RAM||Rollback Days||Connection Limit||Storage Limit|
|0.6||$25||0.6 GB||7||25||25 GB|
|1.7||$50||1.7 GB||7||50||50 GB|
|4||$100||4 GB||7||100||100 GB|
|8||$200||8 GB||7||200||200 GB|
|16||$400||16 GB||7||250||400 GB|
|32||$800||32 GB||7||300||800 GB|
|48||$1200||48 GB||7||350||1.2 TB|
|64||$1600||64 GB||7||400||1.6 TB|
|128||$3200||128 GB||7||500||3.2 TB|
Prices are prorated to the second.
For more, see How to Provision a Standard PostgreSQL database and How to Provision a Free PostgreSQL database.
- A replica is a docker container where your app runs.
- Replica sizes are available in increments of 0.1 between 0.2 and 384, but for the higher sizes you’ll need to contact us first.
- 1 size unit is 1GB memory, 1 CPU share, and 564mbps egress bandwidth.
- 1 CPU share is 200m as defined using Kubernetes CPU requests
or roughly 20% of a core guaranteed.
- If you are on a machine with other containers that don’t use much CPU, you can use as much CPU as you like.
- Memory is defined using Kuberenetes memory requests.
- If you are on a machine with other machines that don’t use much memory, you can use as much memory as you like.
- Memory and CPU sizes can not be adjusted separately.
Why was my App Scaled Down to 0?
On the Free Tier, apps are scaled down to 0 if there have been no deploys for 30 days. We send a warning email after 23 days. To prevent this from happening, make sure you either deploy often or upgrade to the Standard Tier.
Custom Domain Pricing
Gigalixir allows custom domains for each application. Up to 100 custom domains are included free for each application.
Additional custom domains can be purchased by contacting us.
Gigalixir is designed for Elixir/Phoenix apps and it is common for Elixir/Phoenix apps to have many connections open at a time, as well as, have connections open for long periods of time.
Because of this, we do not limit the number of concurrent connections or the duration of each connection 1 2.
We also know that Elixir/Phoenix apps are designed to be long-lived and potentially store state in-memory, so we do not restart replicas arbitrarily.
In fact, replicas should not restart at all, unless there is an extenuating circumstance that requires a restart.
For apps that require extreme high availability, we suggest that your app be able to handle node restarts just as you would for any app not running on Gigalixir.
That said, we do have a number of limits in order to prevent abuse which are listed below. If you need to request a higher limit, contact us and we’ll do our best to accomodate you.
Exceeding Usage Limits
What happens when an app exceeds the memory limit, even briefly?
When you go over the memory limit on a replica, your pod will get OOMKilled and restarted.
Alhtough not instantaneous, the timing is pretty close to it.
What happens when an app exceeds the memory limit for a sustained period of time?
Alhtough not instantaneous, When you go over the memory limit on a replica, your pod will get OOMKilled and restarted.
This will continue until the memory limit is increased for your service.
What happens if an app exceed our CPU limit, even briefly?
CPU cycles are throttled, so should not see your application shutdown directly related to CPU usage. What you will experience is that your app will get slower.
What happens if an app exceeds the CPU limit for a sustained period of time?
CPU cycles are throttled, your app will stay in a slower state for the duration of the exceeded limit.
hen we go over the limits, does this show up in our log drain so that we can trigger alerts/notifications to our team?
The errors would show up as an OOMKilled status, which shows up in the logs, allowing you to trigger alerts and notifications.
Because Gigalixir runs on Google Compute Engine, you may bump into an issue with connections that stay idle for 10m. For more information and how to work around it, see https://cloud.google.com/compute/docs/troubleshooting ↩
We do have a timeout of 60 minutes for connections after an nginx configuration reload. If you have a long-lived websocket connection and our nginx configuration is reloaded, the connection will be dropped 60 minutes later. Unfortunately, nginx reloads happen frequently under Kubernetes. ↩