Best practices for AWS multi-region / multi-cloud deployments?

What is the best practice when you have a set of resources that you want to deploy to different regions / multiple cloud providers (e.g. AWS and Azure)?

We could start with the “simpler setup”, a multi-region deployment on AWS.
Let’s say that I want to create an RDS (with PostgreSQL), one EC2 instance and one S3 bucket, and have this set of 3 resources deployed across us-east-1 and us-west-1 and somewhere in Europe.

I am aware that Terraform supports modules might support it, I was also advised by colleagues to take a look at Terragrunt, and finally there’s aliases that can also be used.

Since there isn’t a clear / formal approach to that, I’d love to hear more from experienced people on best practices and gotchas. I am aiming for a simple and maintainable solution.

Your thoughts?