Support Engineer

AWS Architecture for Heavy Traffic

It sounds like everyone wants to create the next great scalable web app today. Now we are able to scale horizontally after decoupling my application-levels.In my application tier, we can use Elastic Load Balancing (ELB) to stand up servers in multiple AZs and load balance incoming traffic through EC2 instances.

ELB is a redundant, horizontally scalable operation, requiring zero control from my end, and supporting SSL termination and sticky sessions. ELB also conducts case health checks so that traffic is provided only by safe instances. This configuration helps me to manage more traffic by installing more servers in each AZ.

We may add redundancy in the database tier, using the RDS Multi-AZ functionality. To allow this function, during the RDS initialization phase we simply select a checkbox in the RDS console.

When using Multi-AZ, RDS generates a standby database instance in another AZ and synchronously replicates the data to it. Such synchronous replication of the data makes the experience of the failover seamless. The link string doesn't change because the name of the DNS database doesn't change. 

You will have to use retry logic in the link code of the database, but you can see that RDS has taken on the heavy lifting. This standby database instance often increases flexibility outside of failover cases, as it minimizes downtime during scheduled maintenance. RDS knows how to render changes on standby first before an automated failover.

You can scale the database tier with Amazon RDS Read Replicas, if your applications are popular and you need to handle a large number of read requests. You can read Replicas whether you use MySQL, PostgresQL or Amazon Aurora. RDS MySQL and RDS PostgresQL allow up to five Read Replicas and exploit MySQL and PostgresQL native replication capabilities subject to a lag in replication. Amazon Aurora allows for up to 15 replicas and minimal latency in replication experience as Aurora Replicas uses the same underlying data. The following example shows a modified architecture using Read Replicas from Amazon RDS.


Look at it this way, if you get 50,000 hits a day, and 80 percent of those hits are being cached and served by the CDN, then your server only needs to process 10,000 hits a day.

For a very fault tolerant system it’s better to use:

• EC2 fleet (m or c series) with an ELB and scaling capacity
• S3 the images
• RDS the users
• CloudWatch the stats
• Cloudfront
• Tenancy the users with IAM groups
• Authenticate with STS or AD or whatever (kinda been in the cognito only recently)
• Store their session and authenticated crap in ElastiCache - Redis
• Keep tabs on them with Kinesis (optional)
• And let them search each other with CloudSearch (also optional)

AWS provides full control to the users of aws service to scale up or scale out according to their need and demand. Nevertheless, it depends mostly on many factors like traffic, regions of the users and website category etc.

Royex Technologies is one of the leading companies in Dubai for designing cloud servers and maintenance. Our scheduled tasks and maintenance activities will keep your server operating smoothly. For all AWS consulting and service, choose Royex. To get started, call for any inquiries at +971566027916 or mail at