Create a free cloud infrastructure
Introduction
I own and operate the collybird.com domain. All the services I use to host this domain, except for the registration of the domain itself, are free. This document will describe the services that I use and how they constitute the collybird.com cloud architecture.
The following is a current diagram of the collybird infrastructure. The code is developed and tested in docker containers running on the local machine. When customers access the services, they use a variety of services that I will cover in more detail.
Note: this needs to be updated to include the CDN.
Infrastructure diagram (Cloudcraft)
Cloudcraft has a free plan that includes the following:
- Single User (Unlimited private diagrams)
- Design Advanced AWS & Azure Architectures (Includes all diagram components)
- Export & Share (PNG / PDF / SVG, private shared links)
- Cost Calculations (Simple drag and drop based AWS & Azure budgeting with Excel and CSV export)
I used their service to to create this document. I love the 3D view but the blocks are designed for either AWS or Azure components. I take the diagram I generate there and touch it up in a graphic editing program.
Core services
CI/CD (GitHub)
Github has a free plan that includes the following:
- unlimited public/private repositories
- 2,000 CI/CD minutes/month
This site allows you to collaborate with others and it also provides a way for you to streamline your deploument process. I use it to automatically deploy my app to Fly whenever changes are made to the master branch. You can read more about the process in the following resources
- Continuous Deployment with Fly.io and GitHub Actions
- GitHub Actions / Using workflows / About workflows
Content delivery network (Cloudflare)
Cloudflare has a free plan that includes the following:
- Universal SSL Certificate
- 3 Page Rules
- 5 WAF Rules
The CDN has a large impact on the performance of the www pages. To configure the CDN, I changed the name servers from using Namecheap to using Cloudflare.
Email - Incoming (Zoho Mail)
Zoho Mail has a free plan that includes the following:
- Up to five users
- 5GB/User
- 25MB attachment limit
I use this account to receive email with my domain name.
Email - Outgoing (Gmail)
Gmail has a free plan that includes the following:
- 15GB of free storage
If you create an email account on Gmail, then you can use their smtp service to send outgoing mail programatically.
Monitoring (New Relic)
New Relic has a free plan that includes the following:
- One Full Platform User
- 100 GB Data Ingest
- Unlimited Basic Users
- Default Data Retention (8 days)
- Unlimited Ping Monitors
New Relic allows you to to create monitors to notify you when your service is inaccessible. Since www is also a website, it can notify us when it finds broken links.
Registrar and name servers (Namecheap)
Unfortunately, Namecheap does not have a free plan. It costs me $14.76 to renew the domain
The collybird.com domain is registered at I’ve used GoDaddy to register domains in the past. At the time, they provided a service that allowed you to receive email. When I went to register collybird.com, I was lured in by NameCheap’s prices. If I were to register a domain today, I might be convinced to use GoDaddy because of the email service but NameCheap is good enough that it doesn’t warrant me switching registrars.
As part of their fees, NameCheap includes name servers but these are superceded by the CDN.
SEO (Google Analytics, Google Search Console, Semrush and Seobility.net)
Google Analytics has a free plan that includes the following:
- Track Online Traffic
- Understand User Behavior
Google Search Console has a free plan that includes the following:
- monitor, maintain, and troubleshoot your site’s presence in Google Search results
Seobility.net has a free plan that includes the following:
- 1 project
- 10 keywords
- maximum 10 requests per day
Seobility.net has a free plan that includes the following:
- 1 website
- 1,000 maximum analyzed web pages per crawl
- three day wait for re-crawls
- 10 keywords
- 100 checked external links
These services allow you to design your websites so that they maximize the site’s visibility on the web.
Static files (Bitbucket)
Bitbucket allows you to host a static website free plan.
The site you’re currently reading is hosted on bitbucket. I built one for collybird and tried adding CNAME that pointed to the bitbucket site but since Bitbucket uses SSL, you get a warning when you try to use the collybird name.
Compute services
Overview
Heroku’s free plan ended on Nov 28, 2022. Here are some alternatives.
Service | Proivider | Instances | vCPU | RAM | Storage |
---|---|---|---|---|---|
www | Fly | 2 | 1 | 256 | 3 GB |
muds | OCI | 1 | |||
space | GCP | 1 | 0.25 | 1 GB |
Compute (Fly)
Fly has an free plan that includes the following:
- Up to 3 shared-cpu-1x 256mb VMs
- 3GB persistent volume storage (total)
- 160GB outbound data transfer
The www service is built using Laravel. Customers access the service through an aplication load balancer and two compute instances. These services are hosted on Fly.io.
One of their VMs is consumed by the Fly builder app leaving two instances for app deployment.
They recently changed between their V1 and V2 apps. After this change I noticed a considerable decrease in performance I repurposed one of the compute instances to be a second instance of the www service.
Fly also provides free SSL certificates. I registered one for collybird.com and one for www.collybird.com.
Fly also provides free SSL certificates. Originally this was a great boon because it allowed me to provide HTTPS to the site but with CloudFlare, it’s less of an issue
Our primary database was originally hosted as a MySQL instance on one of the 3 compute machines on Fly but after the performance issue in switching from Fly their V1 and V2 apps, I looked elsewhere (see below).
Compute (Vercel)
Vercel allows you to deploy containers, much like Fly. I am still evaluating this service.
Compute (PythonAnywhere)
PythonAnywhere allows you to deploy containers, much like Fly. I am still evaluating this service.
Compute (Oracle Cloud)
Oracle Cloud Infrastructure OCI allows you create virtual machines and databases. I am still evaluating this service.
Database
Overview
Service | Proivider | Instances | vCPU | RAM | Storage |
---|---|---|---|---|---|
www | Cockroach Labs | 1 | 1 | 1 GB | 10 GB |
muds | Aiven | 1 | 1 | 1 GB | 5 GB |
Database (Cockroach Labs)
Cockroach is an excellent PostgreSQL database provider. One thing to watch out for is their implementation of unique_rowid
which returns a non-sequential key. This caused my prd server to behave differently from my dev server.
Database (Aiven)
Aiven supports PostgreSQL, MySQL, Redis, Apache Kafka, OpenSearch, Apache Casandra, and others. I use this as my MySQL provider since I already have a PostgreSQL provider with Cockroach.
Comments
Join the discussion for this article on this ticket. Comments appear on this page instantly.