Terraform provides a cloud-provider agnostic way of provisioning cloud infrastructure while AWS CloudFormation is limited to AWS.
Pulumi is a great tool that provides similar features as Terraform, including advanced features like policy and cost management.
We see that Terraform has great support in the cloud community. For most cloud services we use, there is an official Terraform provider. We also believe in the declarative model of HCL, which is why we chose Terraform over Pulumi. However, we still keep an eye on Pulumi's progress.
Ansible is great for provisioning software and configuration within virtual machines, but we don't think that Ansible is the right tool for provisioning cloud infrastructure since it's built around the assumption that there is an inventory of remote machines. Terraform also supports more services that we use than Ansible.
I am always happy to see people going for provider agnostic (and open source!) solution over vendor-locked and proprietary ones! But I must point out that Terraform and Ansible are not mutually exclusive, but complimentary (why would Hashicorp compete against itself?). Terraform can deploy your infrastructure, but you want to manage its configuration with Ansible.