Cashback Marketplace App Upside Cut Compute Costs 80% on AWS Fargate
Learn how Upside scaled millions of transactions on AWS Fargate
Key Outcomes
Overview
Upside, a digital marketplace that has delivered more than $1 billion in cash back to consumers for everyday purchases, processes millions of transactions daily through its mobile app. As transaction volumes grew, the company faced increasing infrastructure costs handling both near real-time and background processing workloads. The company wanted to reduce infrastructure costs by optimizing the architecture of its rewards application, which processes high volumes of asynchronous data through queue-based workloads running on Amazon Web Services (AWS).
About Upside
Upside is a technology company that has helped millions of people get more purchasing power on the things they need and has helped tens of thousands of brick-and-mortar businesses earn measurable profit.
Opportunity | Using Amazon ECS for cost optimization at Upside
Upside’s mobile app delivers incentives in near real time, made possible by extensive background processing. Upside originally powered both its synchronous and asynchronous tasks using AWS Lambda, which made it possible to run code without thinking about servers. However, an architecture review revealed that the asynchronous, queue-based workloads were characterized by long runtimes and inherent fault tolerance—making them an ideal fit for AWS Fargate. Using AWS Fargate and Amazon ECS together provided a target architecture for queue-based tasks.
Solution | Simplifying developer adoption of Amazon ECS and AWS Fargate
Upside migrated its asynchronous, queue-based workloads to Amazon ECS with AWS Fargate. It also implemented AWS Fargate Spot, which lets customers run interruption-tolerant Amazon ECS tasks on spare capacity at up to a 70 percent discount. To simplify developer adoption, the platform engineering team created Terraform modules that abstracted the underlying Amazon ECS infrastructure and made the process of launching a workload on Amazon ECS as simple as it had been to create a new AWS Lambda function. “We knew that using Amazon ECS would save us money,” says Di Huynh, staff DevOps engineer at Upside. “It was a matter of making it easy so that everyone at the company feels comfortable using it and converting their existing workloads.”
For auto scaling, Upside implemented a custom solution using Amazon SQS and Amazon CloudWatch to dynamically adjust tasks based on queue depth. Upside’s platform engineering team built this developer-friendly approach in a 3-month implementation, helping engineers maintain focus on business logic with minimal disruption.
Outcome | Achieving significant cost savings and efficiency
Using AWS, Upside could choose the compute capabilities that offered the best cost-performance for its specific workloads. For example, the company’s transaction refinement service processes between 5–10 million Amazon SQS messages per day. By optimizing its compute, Upside was able to reduce daily compute costs by 80 percent. “By switching to Amazon ECS with AWS Fargate and Fargate Spot, we achieved an 80 percent reduction in compute costs while keeping the developer experience nearly unchanged,” says Huynh. Daily costs for certain asynchronous workloads dropped from $100 to $10—a 90 percent reduction—and the scalable architecture handles peak traffic seamlessly. “The AWS team was very open to helping us achieve our goal of cost reduction and provided all the support that we needed to implement Amazon ECS,” says Huynh.
By switching to Amazon ECS with AWS Fargate and Fargate Spot, we achieved an 80 percent reduction in compute costs while keeping the developer experience nearly unchanged
Di Huynh
Staff DevOps Engineer, UpsideAWS Services Used
Did you find what you were looking for today?
Let us know so we can improve the quality of the content on our pages