If anyone is interested in Infrastructure as Software, I also recommend giving Pulumi a try. I've been using Terraform for a couple of years, Pulumi for about a year and I think that Pulumi is on a completely different level.
It also supports higher level abstractions (Component Resources). For example: check out AWS EKS provider.