šŸš€ Free cloud DB, Postgres-compatible

YugabyteDB on free cloudā€Šā€”ā€Šno credit cardā€Šā€”ā€Šany region

Franck Pachot
5 min readSep 9, 2021

You have an e-mail? You have a database. No credit card needed.

Just head up to https://cloud.yugabyte.com/sign-up and you can create one YugabyteDB on the free tier.

Choose the provider (currently AWS and GCP), the region, and be ready to connect your application and verify the level of compatibility with PostgreSQL.

You will have an always free 2 vCPU VM provisioned with the latest version of YugabyteDB

Feedback welcome on our slack channel: https://yugabyte-db.slack.com/

Contributions welcome on https://github.com/yugabyte

Questions welcome on https://stackoverflow.com/questions/tagged/yugabyte-db

Thereā€™s also a forum: https://www.yugabyte.com/community/forum.yugabyte.com

The setup is straightforward, here are a few screenshots:

Sign-up

You will receive a confirmation e-mail immediately

Sign-in

The free tier is immediately available. No credit card or phone verification.

AWS or GCP

The choice of regions is large. You probably want to select the closest to where you connect, or where you have already your applications. Set a password or remember the generated one, and wait for the creation in the chosen cloud provider

During this time you can add you IP address, or CIDR, in the cloud setup (the first step below) so that you can open access to it when the database is created. I highly recommend to go though the two steps below and the first one can be done while waiting for the cluster creation: create an ā€˜allowā€™ list that you will enable on the database once created.

Allow IP

Two steps: one on ā€œNetwork Accessā€ in your account, to list your networks. Add a new list with you IP address(es). And the other on Clusters / ā€œSettingsā€ to assign one or many list to this database:

What is your IP address if you are a home, or office, behind NAT? You need to setup the address that is visible from outside. I like to browse (or curl) to https://ifconfig.me/ for that. But here in the GUI you can also ā€œDetect and add my IP to this listā€. Behind a NAT you probably have only one address from all device in your home, or enterprise.

What if you are not behind a NAT but on a public network? The IP address detected is yours but may change if assigned by DHCP. Or maybe you want to allow access to your colleagues? Then the allowed address can be a CIDR which defines a range of IP by specifying which bits are constant in the range. For example 101.102.103.104/32 is one IP address (all 32 bits significant) but 101.102.103.100/30 allows from 101.102.103.100 to 101.102.103.103 because the range is 2 bits large. Put it in binary if you have a doubt: 01100101.01100110.01100111.01100100 or use https://www.ipaddressguide.com/cidr.

For production, you will probably use VPC peering to connect from your application to the database. But the free tier is only with public IP address. Even if the access to your data is protected by a password, it is a good practice to open the network access to only the IP that you need.

Connect

There are multiple options but thereā€™s actually an infinity of them as any PostgreSQL application can connect with the postgres connection setting. Nothing special: YugabyteDB is PostgreSQL on the upper layer, adapted to the distributed storage, but with same protocol, SQL and PL/PgSQL, open source license.

The admin credentials are the ones you defined during creation. You can then create other users. Thereā€™s a cloud shell to see the command-line without installing anything (you just have to allow popups in the browser). This is for quick things like creating a new user from the browser, or when your firewall allows only that. You can easily install the same client (ysqlsh) or simply use psql. I like to connect with DBeaver (thereā€™s a YugabyteDB connection type even if the PostgreSQL works as well)

$ PGUSER=admin PGPASSWORD=3o3JlAVTDxnqgfE83g32 PGHOST=dc558d01-4d25-486f-9da8-3e105ed1237e.aws.ybdb.io PGPORT=5433 PGDATABASE=yugabyte psqlpsql (12.7, server 11.2-YB-2.9.0.0-b0)
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.
yugabyte=# select version();
version
--------------------------------------------------------------------
PostgreSQL 11.2-YB-2.9.0.0-b0 on x86_64-pc-linux-gnu, compiled by gcc (Homebrew gcc 5.5.0_4) 5.5.0, 64-bit
(1 row)
yugabyte=# select port,cloud,region,zone from yb_servers(); port | cloud | region | zone
------+-------+--------------+---------------
5433 | aws | eu-central-1 | eu-central-1a
(1 row)

In the ā€œāš› Connect to your Applicationā€ info, you can download the ā€œCA certificateā€ for a secure SSL/TLS connection. This is important especially when you connect though the internet, so that the network traffic is encrypted. YugabyteDB listens to SSL on the same port (5433) and you just have to download this ā€œCA certificateā€ which will be the ā€œroot certificateā€ on the client side. Here is an example with PopSQL, very handy to query SQL databases:

Iā€™m using the ā€œPostgreSQLā€ connection type here and you just have to take care that the port is 5433 (Iā€™ll write more on PopSQL when there will be a dedicated connection type, which may be soon ;)

The 2.9 release is the latest one, ahead of the stable one. And in the free tier we have only one node. Obviously for production you have at least 3, for a replication factor of 3, to get load balancing and high availability.

I mentioned only the YSQL client connection, which is the PostgreSQL-compatible one. You have also access to the YCQL client and API which is Cassandra-compatible.

--

--

Franck Pachot

Developer Advocate for YugabyteDB (Open-Source, PostgreSQL-compatible Distributed SQL Database. Oracle Certified Master and AWS Data Hero.