The openemr standard.json template that was available when I started using the software fired up a system on Ubuntu 16.04, Php 5.7, and was using a small database (vpcs on older, slower devices). This created a perfect storm for a long start up time. Once I learned how to modify the template (Ubuntu 20.04, Php 8, still small database), the time to launch was reduced by about ~1/4. On top of all that, I was constantly crashing my instances because of inexperience and backing things up almost never worked for me. Therefore, I was using cloud formation too often. Docker-compose up is just a much faster way to recover (~ 10 minutes versus 1-2 hours the other way), though now ~35-45 minutes for me because of all the undesired practice lol. When I use cloud formation, I am having to re-enter security rules, build brand new load balancers, change things over at route 53 to cause subdomain name to replace AWS Ip Address, configure load balancer, and a myriad of other little things. So if anyone can get away with modifying a yaml file and a docker compose command to quickly recover from site breaking mistakes, I encourage them to do that everytime.
I could break my production system and recover in minutes now, which is a relief. While cloud formation is great for originating your instance initially, if you dont have to do anything that seems to require changes to the endpoints of your RDS or EC2 instance on Standard Cloud, please learn the docker-compose approach to enjoy the beauty and effiency of a dockerized workflow.