Implementation of a Scalable Web Application using the services of AWS Elastic Beanstalk, DynamoDB, CloudFront and Edge Location

Akram Rayri
2 min readMay 2, 2023

--

In this project based on a real-world scenario, I was responsible for implementing an application that needs to support the high demand of a large number of users accessing it simultaneously. This application has been used in a large conference that had more than 10,000 people, in-person and online, with participants from all over the world.

This event was broadcast online and in person,10 vouchers were drawn for 3 Cloud certifications. At that moment, more than 10,000 people in the audience registered their e-mails to guarantee their participation in the raffle.

We used in AWS, Elastic Beanstalk services to deploy the web application, DynamoDB to store emails, CloudFront to cache static and dynamic files in an Edge Location close to the user.

In this scenario, I have deployed the AWS Elastic beanstalk to automatically generate EC2 instances, auto-scaling group that will control the amount of instances depending on the CPU utilization, in a way that if CPU utilization will go above 50%, a given number of instances will be added automatically, or if it will go below 40% the number of instances will go down to save up expenses.On the other hand, the auto-scaling group will also ensure the High availability (HA) of instances so that in case one of them is down, another instance will be generated to cover the leak automatically. The massive traffic coming from such an audience will be handled by AWS Elastic Load-Balancer, that is distributing the workload equally (depending on compute capacities) between instances.

For such architecture, in order to ensure high-performance and non-relational data processing, DynamoDB was chosen to store thousands of emails to make 3 people win cloud certification vouchers.

For the sake of management and metrics analysis, AWS CloudWatch was deployed to monitor data in the format of logs, metrics and events, providing us with unified view of AWS resources, applications and services.

On the other hand, I have used AWS CloudFront to store the original server caches in different locations in the globe to make the user experience better by taking advantage of edge locations that are spread almost in different countries.

--

--

Akram Rayri
Akram Rayri

Written by Akram Rayri

ICT Consultant and Engineer with focus on Cloud & DevOps | AWS | Microsoft Azure | Google Cloud | Oracle Cloud

No responses yet