How we work with servers at FIXRS

How we work with servers at FIXRS
The AWS ecosystem is really diverse. When you want to start hosting your site, you have so many good (and not so good) options available to you! As year comes, new products emerge and old one never really dies. It can be hard to keep up with Amazon and their lingo, so let's talk about a few of the main, big products that could be related directly to web hosting.
AWS EC2
I'm starting with the core product, Amazon web service Elastic Cloud Compute. This is the core offering from AWS. If you ever worked with AWS, there's a very high probably that you worked with EC2.
A lot of the newer products, with their shiny UI, actually uses EC2 in the background. EC2 is a solid choice when you actually have the time to learn how it works, including, but not limited to, VPC (virtual private cloud, let you isolate machines/clients in their own virtual network), storage monitoring, status monitoring (Cloudwatch), saving plans/reserved instances pricing, etc.
This is what we use on a daily basis at FIXRS. Every client gets their own VPN, their cloudwatch rules and alerts, integrated into our Slack instance. A few of the alerts are also integrated with AWS Lambda for special actions.
Beanstalk
Beanstalk was a nice product. A bit outdated and replaced, in a way, by AWS Fargate, it was a convenient product. You would push on your project AWS git repository, it would trigger a deployment, create new containers and switch the production traffic to your new containers.
Simple, effective and you didn't have to learn Docker, which at the time, was a nice plus. Nowadays docker is a lot more stable and is a must-know topic for anybody serious in the web industry. Beanstalk also have nice, easy to configure auto scaling features.
Fargate
On the subject of Docker and containers, with time Kubernetes, an open source container orchestration system, started to get more popular than ever. Instead of pushing to a git repository, you push a container image, Fargate handles the deployment of the image and switch the traffic to it.
We don't have active project on it at the moment, but this is something we are looking forward to. It is pretty similar to our current deployment process (EC2 with dokku installed, we push to our server, it generates a new container, switch the traffic to it). This is something we will be looking at in 2024 for sure.
Lightsail
And we got the other end of the complexity spectrum, Lightsail. It provides an easier to work with UI. Tries to target customer coming from Linode, Digital Ocean and hosting provider with point and click installer.
It's a nice solution for people just getting started on AWS, but like the other providers I mentioned, the lack of control when something breaks is something that bothers me a lot.
When something breaks, I want to be able to tell the client what broke, what we fixed and how we are going to make sure it's never going to happen again. With solutions like these, often time you just don't know and the only thing you can do is look at their status page until it's back up.
They're cheap though.
Reselling AWS?
Depending on the client, we might host the client instance in our account and in some other cases, we will be creating the account with the client on a call.
If we are the owner of the instance, we usually include a monthly maintenance fee to make sure the instance is up-to-date, secure and monitored correctly.
In some cases the client will be the owner of the account and will be paying AWS directly. It usually happens with clients with multiple instances and usually, they also have an IT team on their side to help with the maintenance.
In either case, making a snapshot of a running instance and sharing it with a different account is pretty simple.
To conclude
Take the time it needs to learn AWS EC2. Even if you end up using another service from AWS, it's likely it's using EC2 to some extent under the hood!
There's a lot of stuff we didn't cover in this post (route53? cloudfront? cloud formation? region? carbon emissions?). So expect more blog post in the future about it!