NetSeer provides concept-based advertising solutions that match search queries and webpage content to relevant ads for advertisers and publishers. The company offers several solutions, including ConceptGraph, an intent engine that decodes intent, and NetSeer RESPONSE, which provides audience-targeting insight, optimization, and amplification to elicit response and deliver ROI against campaign-performance objectives.
The NetSeer media business is a large-scale web operation that serves real-time, bid-request traffic from all major programmatic online ad exchanges. This process, based on a bidding cluster, needs to support increasingly large traffic volumes. “We get 50 billion requests every day on the real-time bidding cluster,” says Greg Pendler, senior director of technical operations for NetSeer. “We need to support that traffic while delivering 100- millisecond response times to bidding requests. That requires a high-performing, low-latency solution.”
NetSeer must also support peak and non-peak traffic volumes. “Our traffic fluctuates drastically during the day, so we need an elastic system,” Pendler says. In addition, the NetSeer cluster needs to be available at all times. “Uptime is critical to our business,” says Pendler. “The advertisers and publishers we work with use our service to make fast decisions, so the cluster needs to be highly available.”
NetSeer built its real-time bidding cluster on the Amazon Web Services (AWS) Cloud, with hundreds of front-end servers using Amazon Elastic Compute Cloud (Amazon EC2) instances and Elastic Load Balancing to distribute traffic. “We chose AWS because of the scalability, reliability, and elasticity it provided,” Pendler says. The bidding cluster includes a large caching cluster spanning multiple regions and AWS availability zones. The cluster analyzes bidding logs to constantly improve and optimize bidding rules, bringing relevant ads to users.
As the cluster evolved and NetSeer added more customers, the company began using Amazon EC2 Spot Instances for better cost management. Amazon EC2 Spot Instances enable companies to bid on spare Amazon EC2 computing capacity. NetSeer also started using Auto Scaling so it could automatically scale capacity up or down based on demand. Each of the bidding clusters runs between six nodes at night and up to 120 nodes during peak traffic.
NetSeer used a mix of on-demand and Spot Instances to minimize the impact of spot price fluctuations while reducing costs. Although the company prioritized spot Auto Scaling groups, it found its costs increasing when on-demand EC2 instances were added as a response to resources being unavailable and system load increasing. Additionally, losing Spot Instances due to price fluctuations occasionally caused temporary cluster outages and increased costs because of the use of higher-priced on-demand instances.
To address its issues, NetSeer began using Amazon EC2 Spot Fleet to launch and manage a collection of Spot Instances with one request. A Spot Fleet is a collection of Spot Instances. The Spot Fleet attempts to launch the number of Spot Instances required to meet the target capacity specified by the customer in the Spot Fleet request. The Spot Fleet also attempts to maintain its target capacity fleet if a customers’ Spot Instances are interrupted due to a change in spot prices or available capacity. “After discussing it with the AWS team, we realized that Amazon EC2 Spot Fleet would improve reliability and reduce cost volatility for our bidding cluster,” says Pendler. “And moving from Spot Instances to the fleet option was a very simple process.”
NetSeer also wanted to automatically manage its fleet cluster and tie its Auto Scaling functionality to Amazon CloudWatch metrics, so it engineered a solution that controls the size of the cluster based on a small set of on-demand nodes as an indicator for cluster load. A periodic job monitors CloudWatch metrics for the on-demand nodes. When the metrics exceed predefined thresholds, the job will modify the fleet request to add or remove nodes as needed. The system accommodates cool-down periods after the last cluster update, allowing nodes to come up and start serving traffic.
By utilizing Amazon EC2 Spot Fleet, NetSeer reduced its costs while simplifying how it bids and how it manages Spot Instances. “Using the system we developed along with AWS, we are saving more than 30 percent of Amazon EC2 costs and running our real-time bidding cluster more efficiently,” says Pendler. “The precision and reliability of our cluster management system enable us to maximize savings with optimal server utilization, while helping us stay within our 100-millisecond response time limits.”
Prior to using EC2 Spot Fleet, NetSeer mitigated Spot-Instance downtime by maintaining a set of back-up, on-demand instances. Since Spot Fleet automatically launches replacement Spot Instances when they are terminated, the company can set its spot bid price lower without manually maintaining a backlog of on-demand instances to fall back on. “Using Amazon EC2 Spot Fleet Instances, our bidding costs are predictable,” Pendler says. “We never have to provision additional demand instances to obtain the required capacity for our cluster.”
NetSeer has also improved the reliability of its real-time bidding cluster by using Amazon EC2 Spot Fleet Instances. “Previously, our cluster was susceptible to EC2 Spot Instance availability issues, and we were sometimes unable to scale additional instances during peak load,” says Pendler. “Now, we can bid on multiple instance types in multiple availability zones, assuring that instances are available at any time. And we don’t use more than one-tenth of the cluster capacity, even during major traffic spikes. Overall, partnering with AWS, we developed a sophisticated and reliable solution that better supports our business and brings more value to our customers. We look forward to growing this solution even more.”
To learn more about how AWS can help you manage your high-performance computing solution, visit our AWS HPC details page.