Production Best Practices

The following are best practices for setting up your production environments for both a custom augmentor and your custom bidding agent.

AWS Data Centers

Beeswax is currently located out of US-EAST-1A, US-WEST-2A, EU-WEST-1A, and AP-NORTHEAST-1A AWS data centers. When deploying your augmentor or your bidding agent, you should ensure it's located in the same data center as your Beeswax bidder instance for optimal performance.

By default Beeswax will deploy your custom bidder instance in US-EAST-1A with the option of also deploying an additional bidder instances in the other regions. If you have a Bidding Agent or Augmentator in multiple data centers you will need to have an instance of your augmentor and/or bidding agent in each region as well.

Production Set Up

In addition to ensuring your augmentor or your bidding agent is located in the same AWS region, we recommend the following high level set up:

  1. Utilize Amazon's Elastic Load Balancer (ELB) in front of your augmentor or bidding agent. Using a different load balancer may come with performance and cost risk
  2. Set up DNS on your ELB
  3. Deciding on an EC2 machine type is up to you, but we've found that M4.2XLarge machine types perform well for augmentor and bidding agent use cases
  4. Given that you have 10ms timeouts for your augmentor and bidding agent respectively, best practice is to do any lookups in your machine's local cache. Calling out to a separate in-memory data-store like Redis can also typically be done within the 10ms timeout
  5. The programming language you use to build your augmentor or bidding agent is up to you, the only requirement is that it meet the 10ms timeout
  6. Set your server to Keep Connections Open so we don't try to reset connections at high rates