For several years an educational institution had challenges scaling its infrastructure to meet peak demand, experiencing difficulties in scaling-out resources to process the volume of user requests. Their existing infrastructure was unable to scale in response to unpredictable, spikey customer loads, resulting in users being unable to access the site, slow-loading, and system downtime. The solution was not fault tolerant and did not guarantee high availability in the event there was a failure of a server resource. In preparation for load testing, a loss of devices led the team to consider AWS as an alternate solution for this critical mission.
After consulting with Particular Presence Technologies (PPT), an assessment of the current challenges and possible solutions was done. PPT recommended a plan to auto-scale the application in order to efficiently manage the resources during the results season. The following solutions were recommended and subsequently implemented:
- An Amazon Elastic Compute Cloud (EC2) was set up with the application’s dependencies and the application-server set up to run the application.
- Once it was confirmed that the application was running without issues, an Amazon Machine Image (AMI) was created from the EC2 instance.
- An autoscaling group was set up with a minimum of two instances running in different availability zones, to ensure failover, and the ability to scale as needed to handle the anticipated load.
- The AMI created before was referenced in creating the autoscaling group.
- An Elastic Load Balancer (ELB) was created to manage the routing of traffic to the different instances in the autoscaling group.
- For the database, an Amazon Relational Data Store (RDS), of type SQL Server, was used to host the database in the cloud. The data itself was restored to the RDS from a database backup file.
- A CloudWatch dashboard was created so the client could monitor the traffic to their website and see how the resources were being provisioned.
- CloudWatch Alarms, a monitoring and alerting system, was set up to notify all the stakeholders of any anomalies or concerns that could possibly arise.
- The Application’s load balancer experienced at its peak, 3 million requests per second.
- The Application successfully hosted 6500 logins per second.
- The Application successfully scaled in and out in response to the customer loads.
- The Application allowed for the monitoring performance throughout the season to determine the health of the system’s performance and its different components.
- The customer experienced no downtime of the system or received any complaints during the season.
- The system was highly available.
- There was no hands-on management of the solution required during the results season.