AWS Auto scaling group - deploy/update strategy

I’m currently exploring different approaches for deploying web applications using Auto Scaling Groups and EC2 instances on AWS. I was wondering what strategies you all prefer for updates: blue/green deployment or Instance Refresh? Which method do you find to be more secure and offers better control over the updates?

I’m particularly interested in finding the best solution for automating web application deployment using Packer, Ansible, and Terraform. I want to use classic 3-tier architecture. Any insights or recommendations would be greatly appreciated!