This is more a set of questions than one very specific question. In the last couple of weeks / days, I have puzzled information on how to correctly place the JAVA PLAY application in the cloud, since most of this information is scattered across different services, I wanted to collect all these small pieces into one, because many things are important, so that they can be seen in full context. Nevertheless, I shifted my considerations to the bottom of the question, because basically these are my opinions and subjective conclusions, to which I do not want to be responsible. If I have something wrong, please feel free to point it out.
AWS Java PLAY + MySQL Hosting for Worldwide Availability
Our scenario: we have a fairly direct application written in the framework of Java PLAY ( https://www.playframework.com/ ), running on iOS and Android, as well as with a backend system (for administration, content management and API), storing data in a MySQL database. Although the majority of user interactions with the server are quick and easy (logging in to the system, synchronizing some data), there are also a few tasks that require intensive data processing (downloading some zip mail files to a mobile phone, downloading several MB to the server). Therefore, we were looking for a solution to properly provide users away from our servers with reasonable response times. The obvious next step was placing in the cloud.
Setting up hosting in AWS: 
Horizontal scaling: for starters, only 1 instance of EC2 with our application will work in eu-1a. We will need to estimate how many resources are required per instance, if more instances are required, and if more instances really benefit from faster response times.
Horizontal scaling by region: when the application generates a heavy load of a user from another region, the entire EC2 instance should be duplicated and placed in another region by running db read replica (see Configuring a global accessible web application on amazon and https web services : / /aws.amazon.com/de/blogs/aws/cross-region-read-replicas-for-amazon-rds-for-mysql/ ).
Scaling up EC2 instances: in recent tests of the old hosting setup, the database turned out to be a bottleneck, not a game application and its server hardware specifications. Therefore, it is not yet clear how vertical scaling will affect response time. If the t2.micro instance is suitable as an example of m3.xlarge, of course, we would rather go upstairs below.
RDS vertical scaling: we will need to evaluate how much traffic gets to the database server, and what CPU / RAM / etc will be required. Perhaps we will work here too.
Global redirect: done using Amazon Route 53 (?). The Tokio user must be redirected to an EC2 instance operating in Asia; user from Rome to EC2 instance in Europe. This applies not only to API calls in the application, but also to content delivery (in both directions).
Open Installation Questions
- Is this installation final? Are important components missing?
- As for global redirection: is Amazon Route 53 the right tool? How is it different from CloudFront (which amazes me solely for the distribution of content / media?).
- How to determine the correct data / api endpoints for my application? Of course, I do not want to determine the endpoint of the db read replica database during application deployment. Will this also happen during the installation of the AR53 (question 2)? The same goes for API calls, of course, the application should direct it to https://myurl.com/api , and from there it needs to be redirected. Is it realistic?
I would greatly appreciate all kinds of thoughts (!), As well as the background information written below. If you can point me to further reading in order to solve my questions myself, I am also very grateful - there is simply a huge amount of information about this, but this makes it difficult to narrow down the answers. I have knowledge in hosting / servers, but I'm sure there are real experts who are waiting to pat me with knowledge. :)
Background info
Current hosting setup: a load balancer distributes traffic on 2 root Linux servers, both of which run the PLAY application, one of which also supports the installation of MySQL.

The current hosting setup has 3 big disadvantages:
- There is no vertical scalability: the hosting company will take money for each step of scaling. Currently, the servers are idle, but if the application is booming, we could work quickly with bandwidth. The downtime start is still paid, as if it were under full load. It is expensive!
- Deployment support: currently we connect via SSH, manually deploy the correct folders in the file system, recompile on the server, set privileges, apply database evolution; do the same for the second server (with various db connection parameters). What could possibly have gone wrong .;)
- No worldwide availability: setting up another server in another region of the world would be a huge effort. So that a synchronized copy of our database can be performed, but redeployment will mean downtime, a place for errors and, therefore, time and money.
Hosting Options for Java PLAY: There are many blog posts about this. In short:
- AWS: Amazon Web Services is one of the first places you start looking. Here you get everything you can at a flexible price. You have set up an instance of EC2, MySQL RDS, and you are good to go - all this is in a free tier, so you can experiment, play, test your things.
- Microsoft Azure: Similar to AWS in pricing and features. However, I did not dive into setting up and deploying our testing application.
- Heroku: A very simple deployment from PLAY, scalable servers. However (at first glance?) There is not enough ability to deliver remote regions with high-speed content.
- Jelastic : Deployment from PLAY / IntelliJ IDEA is even easier. You push the image of your application to jelastic, jelastic extends it further to its infrastructure providers.
- RedHat OpenShift ( https://www.openshift.com/ ): It sounds promising, but not as complete as AWS.
Many options and possible settings / prices. Especially after finding out about the deployment using boxfuse ( https://boxfuse.com/ ) I made my choice for AWS, since it offers absolutely everything we need from one source, Boxfuse has low monthly costs, but is perfectly integrated into AWS Scaling is supported, as well as 3 common environments (dev / test / prod). The support is great.