Reselling AWS Load Balancing

Providing Cloud Load Balancing for your customers; My ultimatum

Let's say we have a hosting service for users who bring their own domain name. In this scenario we'd like to be able to service customers no matter who manages their DNS records. Be it GoDaddy, Namecheap, Google, Hostgator, some offshore place, etc.

At the same time, we'd also like to provide Load balancing so no one-user can overload any of our systems. This means, instead of having a customer's domain name point directly to the system where their webserver or app resides, it will point the HTTP connection to a Load Balancer which is prepared to handle serious connection load before divvying it out to whichever cluster of systems is ready to deliver the user's content.

In an ideal world, we would have the user point their domain name to the Load Balancer's IP address. Very simple DNS A-Record adjustment.

In the real world, these type of cloud load balancers run over several ip addresses that rotate over time. So, if we were to place one of these IP addresses in a domain name's A-Record, it would soon be useless as it rotates out. Instead, the cloud load balancer offers us an end point (also an A-Record) such as 'entrypoint-797000074.us-east-1.elb.amazonaws.com', which is static while they dynamically rotate the IP addresses the entrypoint leads to.

The catch? You can't place an A-Record in another DNS A-Record, you can only place an IP address in an A-Record. the DNS A-Record is simply a key-value pair where the key is the Domain name (yoursiteEndpoint.com) and the value is an IP address (and nothing else).

Then how do we leverage a cloud load balancer for our customers?

{workaround} Each customer with their own domain name must make the following changes in their DNS provider records.

  • Make a CNAME Record called "www" which leads to the AWS Load Balancer A-Record ('entrypoint-797000074.us-east-1.elb.amazonaws.com)
  • Setup DNS forwarding so customersite.com forwards to www.customersite.com

The Problem: The customer will literally be entering evident AWS data into their config, and it's much more information to update than just an IP address in an A-Record.

More Options:

{Route 53 Nameservers} You have to automate Route 53, adding a new Hosted Zone based on the customer's domain name, retrieve and deliver the Route 53 Hosted Zone nameservers to the customer so the customer can update their DNS records at their service of choice.

The Problem: Lots more automation and costs, AWS 500 Hosted Zone limit, more customer sync interaction

My Ultimatum:

Make my own Load Balancer out of a network-enhanced AWS EC2 instance. I will give two options for the customers - the simple A-record update to EC2-instance static IP. If they want DDoS protection and load balancing, they can do the {workaround} step above additionally. If they decide not to do {workaround} step above, the customer understands that we are leaving leaving the uptime completely up to the EC2 instance IP address.  Also, forget that Route 53 nameservers update BS, as that is way too much additional business logic automation and costs for reselling standpoint.

Author image
Queens represent Website
World renowned DJ who got his start from being famous on the internet. Averages 3 headshots per second in daily life and pays for all and essentials in bitcoin.

World renowned DJ who got his start from being famous on the internet. Averages 3 headshots per second in daily life and pays for all and essentials in bitcoin.