Terraform infrastructure, best practices

This might’ve been asked multiple times but I couldn’t really find a definitive answer…

I have to setup an AWS ECS infrastructure that contains;

  • Webservers
  • Database
  • Messaging service (MQTT)
  • Background services

I am wondering if I should put this in 1 repository so that I can bring up this entire infrastructure all at once or if I should separate all of these in separate repositories so I can do maintenance on only a part of it?

I’m tempted to leave it all in one repository because I believe Terraform will not change anything if I don’t?

How do you handle things like this?