37 minutes to deploy a fullstack app on my new AWS account
Today, I was working on our Terraform Provider, and I noticed that I never tried to deploy an application from scratch on a new and clean AWS account. Meaning, an empty AWS account - with 0 resources created. No VPC, no EC2, no Load Balancer, nothing... just an IAM user to get access to my AWS account programmatically. This post explains what I did and how it took 37 minutes and 33 seconds to literally: create a VPC (10 min) create an EKS cluster and a load balancer (5 min) create an ECR repository (10 sec) deploy an RDS database (15 min) build and deploy my Django app from GitHub (2 min) add a custom domain to my app (2 min) create a TLS for my custom domain (15 sec) And tada! ๐ ๐ Let's explain all of that!
No, no... Let me explain. To deploy my full-stack app and make it available online I used the Qovery Terraform Provider. Basically, it makes AWS super easy and straightforward for anyone. No need to bother in configuring all the tiny details of each AWS resource. Behind the scene, Qovery manages all of that for us and even give us access to all the configuration. But here, I am just going to focus on the high level.
So, if we take a closer look at the terraform output we see that we have some resources that are taking more time than the others.
qovery_cluster.my_test_cluster (15 min)
This resource represents the AWS VPC and EKS creation and it takes approximately 12 to 15 minutes to create the AWS VPC.
qovery_database.psql (15 min)
This one represents the AWS RDS instance. Behind the scene, Qovery enables backup, encryption, Point In Time Recovery, and all the things that can save your back in case of data loss. We can speed up the Postgres deployment time by switching to a "container" instance instead of a "managed" one. But here, I wanted to show how long in total it takes with an RDS one.
qovery_application.backend (4 min)
This step includes:
The fetch of my app from GitHub (link here).
The build with Buildpacks.
The push in my ECR registry.
The deployment of my app on my AWS EKS (Kubernetes) cluster.
The domain and the TLS attached to my app.
It is a lot of small steps inside, but it's rather fast compared to the steps before.
Agents ship fast. Guardrails keep them safe.
Qovery ensures every agent action is scoped, audited, and policy-checked. Start deploying in under 10 minutes.
Romaric founded Qovery to make Kubernetes accessible to every engineering team. He writes about platform strategy, developer experience, and the future of cloud infrastructure.
Next step
Agents ship fast. Guardrails keep them safe.
Qovery ensures every agent action is scoped, audited, and policy-checked. Start deploying in under 10 minutes.