While we considered many other cloud providers, we chose Amazon Web Services (AWS) because of cost and the maturity of AWS solutions. As client needed to scale horizontally and couldn’t afford any single point of failure. The storage capability of Amazon Simple Storage Service (Amazon S3) and the elasticity of Amazon Elastic Compute Cloud (Amazon EC2) were the key reasons we chose AWS.
By running on AWS, we are using scripts to automate AWS services and can scale horizontally by using Amazon CLI to scale the EC2 Servers in both directions. Rather than hiring an operations staff to scale if we utilized a hosted/on-premise solution, we focused on building software for the user, leaving operations, storage, and servers to AWS helps us do that
Additionally, we developed algorithms to process streams of inbound data in real-time. If a change occurs outside of specified parameters, it is flagged and changes the server scaling capacities to compensate for the same.
Originally, we used a MySQL database for analysis but found that the database couldn’t scale to meet our requirements, so we switched to Redshift.
Using Amazon EC2, we can add compute capacity without any delay. We are running about 3000 instances now and we launch new instances every week. Using AWS, we just need to change a configuration file and a new server is ready in a couple of minutes.
Using AWS allows the company’s DevOps team to spend less time and effort on management tasks. Amazon EFS is elastic, so we don’t have to provision new storage for new data, which saves DevOps cycles compared to managing static volumes.
We have taken advantage of Amazon EC2 Reserved Instances (RIs) to alleviate costs. We have a consistent workload and using 3-year RIs matches our use case. The discount ends up being around 67%, which is a big win for the client.