mercredi 29 août 2018

AWS architecture - Web application (Diagram)

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):

  1. My domain is hosted on GoDaddy and will simply route to Cloudfront in order to globally cache static content.
  2. Cloudfront will point to Route53 which is responsible for routing the user to the closest region based on Geoprximity and/or Latency
  3. Each region will have an availability load balancer pointing to an EC2 instance (different availability zones for disasters fallback)
  4. From there, each EC2 instance writes to a single MySQL database. Static content is loaded from a S3 bucket.
  5. This MySQL database replicates/synchronizes itself across availability zones and regions and creates read-replicas
  6. 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)
  7. The load-balancer in each region will then decide from which database to read based on health or amount of requests
  8. 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