I am in the process of setting up a medium sized AWS infrastructure for a web project. I may be overthinking a couple things and therefore wanted to ask the community for opinions. Any input is appreciated.
Please see the graphic: here
Explanation (from left to right):
- My domain is hosted on GoDaddy and will simply route to Cloudfront in order to globally cache static content.
- Cloudfront will point to Route53 which is responsible for routing the user to the closest region based on Geoprximity and/or Latency
- Each region will have an availability load balancer pointing to an EC2 instance (different availability zones for disasters fallback)
- From there, each EC2 instance writes to a single MySQL database. Static content is loaded from a S3 bucket.
- This MySQL database replicates/synchronizes itself across availability zones and regions and creates read-replicas
- If an EC2 instance has a read-request, it contacts another Route53 router that forwards the read-request to a load-balancer (in each region) based on where the request is coming from (geoproximity/latency). The only alternative I see here would be to directly point read-requests from a European EC2 instance to a European load-balancer. (vice versa for US)
- The load-balancer in each region will then decide from which database to read based on health or amount of requests
- Each EC2 instance can also trigger a LAMBDA function through an API Gateway.
What am I missing? Is this too much? What are the ups and downs of this construct?
Thank you all so much!
Aucun commentaire:
Enregistrer un commentaire