2

I have an Amazon Elastic Load Balancer. I can't set my domain apex -- domain.com to the ELB because Amazon doesn't provide an IP.

If I:

  • set up a new EC2 instance (whih has its own IP)
  • set up a reverse proxy from EC2 to ELB (HAProxy? Apache? Nginx?)
  • point my DNS to the new EC2 instance that is proxying

What consequences will I face? Does this make the ELB pointless since my single EC2 instance is a a point of failure? Will the EC2 proxy be able to handle it if each instance in the ELB gets 100s of GBs of bandwidth a day?

Caleb
  • 11,813
  • 4
  • 36
  • 49
davidosomething
  • 175
  • 1
  • 8

3 Answers3

2

My company has run into this problem. We use a 301 redirect from ourdomain.com to www.ourdomain.com. By pointing to a subdomain, you are then allowed to use a CNAME. CNAMEs point to other domains. So, www.ourdomain.com is a CNAME to ourelb.amazonaws.com.

This unfortunately produces a SPoF. If the redirect server goes down, your site stops working. However, there are services out there that do 301 redirects to a subdomain for you. They cost money, but you don't need to use have a SPoF.

Stephen
  • 345
  • 1
  • 7
1

If you are using Amazon's Route 53 service to host your DNS, then it is possible to point your domain apex directly at an Elastic Load Balancer. Amazon's Route 53 supports A record Aliases, which act like a CNAME but without the extra DNS request. This allows you to create an A record for your domain apex and set it as an Alias to the load balancer (using a special ID). When a user requests your domain apex, a public IP of the load balancer is returned (there may be multiple, which is why Amazon doesn't tell you what it is).

http://aws.amazon.com/route53/faqs/#Zone_apex

Route 53 is pretty cheap, especially if you are using an ELB. It is $0.50/domain/month and $0.50/1 million queries/month, but you don't have to pay for queries that point to an ELB instance. If all your DNS records point to an ELB, then you only pay $0.50/month for DNS hosting.

Brady
  • 330
  • 1
  • 5
0

Yes, by putting an instance in front of your other instances and proxying data to them, you would introduce another single point of failure.

Amazon doesn't give you the IP of the load balancer directly, but they give you a DNS name that resolves to the IP. Use this as a CNAME to point your domain to. I recommend using a subdomain for just your load balanced content.

Caleb
  • 11,813
  • 4
  • 36
  • 49