Client
Our client is a leading voiceover marketplace in South America.
In 2009, the client approached us to find a solution to the issues they were facing with their website and applications. They were hosted on a dedicated server infrastructure with multiple web servers and a hardware load balancer, which had the following issues.
Pain Points
- The physical server environment with hardware load balancer was proving costly as they had to keep the servers even when there was not much demand. It was mostly underutilized and at peak times during promotional events, incapable of handling the spike in requests.
- Slow performance due to lots of DB read and write per second.
- Servers were facing issues during cron jobs, and there were many such cron jobs were set.
- Website was unresponsive at peak demand.
- Higher cost
Recommendation
We recommended migrating to AWS Cloud as it has a pay-as-you-go model, which allows keeping the optimum workload during normal periods. We could dynamically create additional web servers when demand increases and terminate them when they are no longer needed. The client was satisfied with our proposal and gave us the go-ahead to proceed with setting up the cloud architecture on AWS and migrate the applications and data.
Action Taken
- Analyzed the requirements
- Designed the cloud architecture
- Created EC2 instances and configured them
- Set up load balancer and reverse proxy using Nginx
- Set up MySQL Master & Slave with replication
- Set up cron instances and managed the instances
Note: This was a time when AWS had no Elastic Load Balancers or managed RDBMS such as RDS, so we had to set up everything manually. Our expertise on Linux came in handy there.
Solution
We set up the primary load balancer cum file server EC2 instance as the target for websites and applications that needed scalability. We added EBS volumes as file storage. All major web requests reach LB and are transferred to the Web server using reverse proxy. We could add any number of web servers as per requirement. We also set up MySQL Master & Slave replication. Database write was configured to the Master server and the slave MySQL server was used to fetch data to improve the DB performance along with the redundance. We set up separate EC2 instances for cron and mail and another EC2 instance (LAMP) to host other applications. All internal data transfer was carried out through an internal network to reduce bandwidth usage and save cost.
Result
All pain points were addressed, and the website was working fine at all times. The cost was also kept in check. The client was totally satisfied with the overall outcome.
Key stats
Comparing the stats 3 months from migration to the previous period:
- Application downtime was reduced by 98%.
- Website traffic was increased by 45%.
- Infrastructure cost was cut down by 20%.