Once you're experienced writing Infrastructure as Code, you always use it, no matter how small the project is. Right now I run a single micro instance for a personal project and I've got the whole thing Terraformed, which took me less than a workday - VPC, subnet, security groups, S3 buckets, and a basic provisioning script to setup the instance's software and cron jobs.
It is (eventually, once you learn it) faster and more intuitive than bothering with the AWS console, and I often reference Terraform's own AWS resource documentation over the AWS docs since it usually has better information density.
Anyway, the issue is all beside the point, I think we realize that Terraform was used as a placeholder example. Another example might be setting up single sign on, Active Directory, and other things that are truly not necessary for a company of that scale.
The other part of this that if you've got a startup with 5 month runway and 10 employees, hiring an Infrastructure as Code SME is probably not the best use of your dollars. Sure, I was able to put this side project in Terraform in under a day, but I also can't write a front-end application to get myself out of a wet paper bag.
> Once you're experienced writing Infrastructure as Code, you always use it, no matter how small the project is.
It's a good idea to start early with IaC but one of the marks of a good engineer is knowing what tooling to use for each circumstance.
Your app might be a perfect fit for Terraform or it might not, I couldn't possibly comment. Given the info you've provided it seems excessive but it's hard to say for sure
I can't think of a project of any size that terraform would be excessive for.
Agree, if you're introducing it to a new team and don't have time to teach the tooling that could be problematic.
But being somewhat familiar with Terraform I would use it to launch a single EC2 instance. Because it's about as fast to do that as it would be for me to use the AWS Console.
It's not that I think Terraform is needed for that small of a project, it's that it adds no cost even for tiny projects.
Not sure about the run-way thing. I'm also partially a six sigma / lean guy, and doing things right in the first place is a key lesson I learned, sometimes the hard way (aerospace definitely drove this home as well).
I would make the case that, even with 5 months of runway, you should invest in a solid foundation. Because if the company goes down, it does. Only a little bit earlier. if it doesn't, which is I assume the reasoning behind the company in the first place, getting the basics right now has a huge impact on runway and scalability later on.
The problem is that sometimes, the overhead isn't the right decision from a cognitive load perspective and a fiscal perspective (cost of infrastructure + developer time).
> Two micro instances don't seem to warrant using Terraform
That doesn't really make sense, it's not like there's some huge fixed cost of using Terraform, the whole point of infrastructure as code is that all the infrastructure is code, i.e. it's all variable cost.
Small infrastructure as small code.
And then it's all there when you expand. Change `num_micro_instances = 2` to `4`. `10`.
What exactly do you mean?
Two micro instances don't seem to warrant using Terraform