There are many reasons but a few from the top of my head are:
1) The whole system is running on Amazon's Elastic Beanstalk (via Docker). Beanstalk provisions 3 instances for every site (1 Web, 1 Worker/cron, and 1 RDS) for every app with ELB on front.
2) It makes installing updates easy and automatic using deployment scripts which we have on every site.
3) Everything (web/cron/database) is configured to scale up and down automatically, i.e. new servers start as per demand. This may not be possible otherwise.
1) The whole system is running on Amazon's Elastic Beanstalk (via Docker). Beanstalk provisions 3 instances for every site (1 Web, 1 Worker/cron, and 1 RDS) for every app with ELB on front.
2) It makes installing updates easy and automatic using deployment scripts which we have on every site.
3) Everything (web/cron/database) is configured to scale up and down automatically, i.e. new servers start as per demand. This may not be possible otherwise.