Overcoming limitations
The customer’s system could not be easily rearchitected or modernized to take advantage of cloud-scaling technologies native to AWS. They needed a solution that would allow them to continue to use their legacy system, while avoiding the need to invest in peak-usage levels of performance around the clock. If the customer could find a way to predict peak usage days for their website, they could benefit from manual scaling, increasing staff support and network capacity on the days when they needed it. By being ready for surges in usage, they could adjust the expenditure of resources, and control their costs.
Predicting peak usage
ECS used machine learning (ML) to provide manual scaling for the customer. The team collected utilization metrics from CloudWatch, and exported this data to Amazon’s open storage service, S3. The data was serialized—stored in a format that could be reconstituted at a later time—in CSV format, through a scheduled function in AWS Lambda. The ECS cloud team began training an ML model, the process by which a system learns to make predictions. The team used the AWS ML service to generate a model that could predict peak usage based on the specific day of the week.
The ECS team evaluated the model’s accuracy over time, improving the customer’s confidence in the system’s predictions. Since each prediction of peak usage would result in additional costs for the client, accuracy was critical. After several months of evaluation and testing, the ML model learned to generate reliable information to predict when manual scaling would be needed to meet expected peak usage.
Smarter spending
ECS helped the customer find a solution that made the most of its resources, while working within the confines of its legacy system. Manual scaling gave the customer an improved position: they would not be forced to run the application with enough capacity to meet peak requirements 24/7/365. Instead, the ML model could predict when surges were coming. As a result, the customer was able to reduce operational costs while supporting the usage requirements of their user base.
Manual scaling provided a stop-gap measure that gave the client more time to conduct re-engineering planning for the components of the system that did not support auto-scaling actions. This allowed the system to continue operating without needing to change its infrastructure or compliance documentation.