Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Sign In with OpenID
Advertise on LowEndTalk.com

In this Discussion

Affordable Manged GeoIP DNS

Affordable Manged GeoIP DNS

nunimnunim Member
edited July 2012 in General

I'm looking into setting up a basic load balancer (or at least regional instances), I know I could setup some DNS servers on spare LEB's and do it for free but I'm trying to avoid the hassle and potential downtime and get a hosted solution.

I am looking for something that will do GeoIP and wildcard DNS, all the options I've found seem to be pretty expensive for a couple domains maybe I should just do one, this isn't really for production just something for me to mess around with for a bit so I'm looking for a cheap solution. Amazon's DNS seems like it does GEOIP now and supports wildcard DNS, does anyone have any experience with their DNS product, or can recommend a provider? Thanks!

SonicGlass 11 Locations- Amsterdam, Atlanta, Denver, Los Angeles, , Milan,
SonicBoxes.com - VPS Tips, Tricks & Tutorials

Comments

  • namename Member

    @nunim said: GeoIP

    Do you mean divide user request to the nearest server by the decision of DNS?

    @nunim said: wildcard DNS

    I think it's just a * entry.

    I'm a stupid cat, don't blame me.

  • namename Member

    And LEA wrote a freedns provider list, you may want to check it out. lowendtalk.com/wiki/free-dns-providers

    I'm a stupid cat, don't blame me.

  • If you mean GeoIP as in @name's definition, Geoscaling.com should do the trick. I use it and love it.

    EdgeDirector looks real nice, too, and it's only $15 per million queries with all the bells and whistles.

    "We are in a prison drama. This is like The Shawshank Redemption, only with more tunneling through shit and no fucking redemption."
  • bdtechbdtech Member
    edited July 2012

    Geoscaling doesn't even have a US NS?

    I recommend Route 53 LBR or gdnsd if you want to host it

  • @bdtech said: Geoscaling doesn't even have a US NS?

    They don't, though it doesn't seem too bad.

    "We are in a prison drama. This is like The Shawshank Redemption, only with more tunneling through shit and no fucking redemption."
  • You can find some in the list here.

    Check EdgeDirector and GeoScaling among others. Though GeoScaling had a DDoS earlier this year. After exchanging some emails with the guy behind it, they were also supposed to release a "v3" but I haven't seen/heard anything about it anywhere; that version should make it more self-sufficient for you to setup a complex setup that monitors server health etc, without needing their support. EdgeDirector works extremely well, but can get costly as your traffic increases (i.e., the $15/million queries can start to run out fast depending on your usage.

    I am hoping to build my own loadbalancing eventually via PowerDNS + a GeoIP db, or via Nginx + HAProxy (to including handling multisite SSL) ... like I said, a "hope."

    Check the link for some options and possible ideas. Good luck

  • nunimnunim Member
    edited July 2012

    @geekalot said: EdgeDirector works extremely well, but can get costly as your traffic increases (i.e., the $15/million queries can start to run out fast depending on your usage.

    I'm wearing of paying by query amount, I've read some posts before with people stating that after they moved the nameservers they still saw queries on their dns provider, and there is no real way to see if they're being honest with me.

    Since most ISPs cache DNS would I only be using queries when they need to update the cache? How long should a million last me ? (I know it depends on traffic etc, but for a low traffic site how many DNS queries are we typically looking at? I will be consuming a query any time I login to SSH via the domain name and not the IP?

    @name said: Do you mean divide user request to the nearest server by the decision of DNS?

    Yes.

    @nunim said: wildcard DNS
    

    I think it's just a * entry.

    Some providers do not support wildcard DNS, I know my current provider he.net does not.

    SonicGlass 11 Locations- Amsterdam, Atlanta, Denver, Los Angeles, , Milan,
    SonicBoxes.com - VPS Tips, Tricks & Tutorials

  • namename Member

    @nunim said: current provider he.net does not.

    He indeed provide it, but before your signup. Old account can still set wildcards.

    I'm a stupid cat, don't blame me.

  • @ihatetonyy said: Geoscaling.com

    Yup! I had a reverse proxy set-up using GeoScaling, so it returns the nearest proxy to the user. Just a hint though, it is DNS based location, so if they're using something other than their ISP's default DNS, then it can fail quite dramatically.

    @nunim, I can PM you the 'smart domain' script I was using if you want :)

  • namename Member

    @ElliotJ said: I can PM you the 'smart domain' script I was using if you want :)

    Could you please let me know too?

    I'm a stupid cat, don't blame me.

  • Yes, me too please.

    Also note thet geoscaling sometimes has uptime issues... (in particular the ns1 in France)

    Opinions/Posts are to be assumed my own/personal and not company related unless obvious
    Working @ EDIS and owning some others (and/or parts of) | Available for consulting | http://as198412.net | https://william.si

  • @ElliotJ said: @nunim, I can PM you the 'smart domain' script I was using if you want :)

    So uh... me too? haha

    Catalyst Host - Pie Approved!
  • @HalfEatenPie said: So uh... me too? haha

    @name said: Could you please let me know too?

    Count me in too, especially if the script's better than the one I copied and pasted from the Geoscaling wiki.

    "We are in a prison drama. This is like The Shawshank Redemption, only with more tunneling through shit and no fucking redemption."
  • ElliotJElliotJ Member
    edited July 2012

    @numin @name @ihatetonyy @halfeatenpie @william

    
    $new_server['lat'] = 35.227087;
    $new_server['lon'] = -80.843127;
    $new_server['loc'] = "Charlotte, NC";
    $new_server['ip'] = "69.85.88.171"; // IP1
    $servers[] = $new_server;
    
    $new_server['lat'] = 37.339386;
    $new_server['lon'] = -121.894955;
    $new_server['loc'] = "San Jose, CA";
    $new_server['ip'] = "209.141.35.172"; // IP2
    $servers[] = $new_server;
    
    $new_server['lat'] = 50.692705;
    $new_server['lon'] = 3.177847;
    $new_server['loc'] = "Roubaix, FR";
    $new_server['ip'] = "178.33.27.24"; // IP3
    $servers[] = $new_server;
    
    $current_lat = $city_info['latitude'];
    $current_lon = $city_info['longitude'];
    
    $minimum_distance = PHP_INT_MAX;
    $minimum_distance_server_id = 0;
    
    for($i=0 ; $i<sizeof($servers); $i++)
    {
        $server = $servers[$i];
        $distance_to_user = @distance($current_lat, $current_lon, $server['lat'], $server['lon'], "k");
        if($distance_to_user<$minimum_distance)
        {
        $minimum_distance = $distance_to_user;
        $minimum_distance_server_id = $i;
        }
    }
    
    $output[] = array("A", $servers[$minimum_distance_server_id]['ip']);
    
    //echo distance(32.9697, -96.80322, 29.46786, -98.53506, "m") . " miles
    "; //echo distance(32.9697, -96.80322, 29.46786, -98.53506, "k") . " kilometers
    "; //echo distance(32.9697, -96.80322, 29.46786, -98.53506, "n") . " nautical miles
    "; function distance($lat1, $lon1, $lat2, $lon2, $unit) { $theta = $lon1 - $lon2; $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta)); $dist = acos($dist); $dist = rad2deg($dist); $miles = $dist * 60 * 1.1515; $unit = strtoupper($unit); if ($unit == "K") { return ($miles * 1.609344); } else if ($unit == "N") { return ($miles * 0.8684); } else { return $miles; } }

    Like I said, it relies on your own DNS reporting your location correctly... and I'm pretty sure this is from the GeoScaling wiki, but hey, you get the added bonus of a few common providers' co-ordinates :p

  • gbshousegbshouse Member
    edited July 2012

    @nunim - we are going to launch our new DNS service on 1st of August. It's dedicated for small and medium sites and included fail over DNS and Geo DNS.

  • geekalotgeekalot Member
    edited July 2012

    @ElliotJ, that looks like a partial script copied from GeoScaling (GS).

    Nice, but IMHO doesn't really do "Load Balancing." GS is more Failover (send traffic to this server if it is up, otherwise to this other one) and High Availability (e.g., closest server to me/least load, etc). EdgeDirector (ED) is Failover, High Availability, and Load Balancing (distribute the load amongst these geographically diverse servers and send next request to the most readily available that is closest to me) ... but at a price.

    @numin, the queries do add up. If you plan to host stuff for other people/customers, it will get pricey fast. You have to be very resourceful with how you setup the DNS and how many "health monitors" you setup. (Much more to it than I can explain here)

    For example, each ED "health monitor" consumes 3333 queries per day; so it would get ridiculous if you were hosting multiple sites in one webserver instance AND wanted to monitor each site individually (i.e., name based virtual servers on the same IP) -- important if you are running LAMP-based sites as Apache might be running fine but MySQL might not or there may be a database error msg for just one site in the multisite setup. So, to keep costs down, you have to satisfy with just monitoring the single webserver instance or IP per server. Or, write customized scripts that check all instances and returns the appropriate HTTP status code to the ED Health Monitors (they don't provide any help or examples to do this).

    Then you add to that the actual DNS queries consumed, etc.

    For me, I am seeing about $15/month on low traffic, but the cost will "go up" as I continue to introduce more traffic to the servers.

    Ultimately, I want to do it myself but need to be absolutely sure my solution works well before taking the plunge.

    Also, of course these solutions don't address other things that I need that might benefit from being "aware" of, or integrated, with the load balancing, such as: multsite SSL to the same IP without using SNI, or session persistence (session can get switched to another server in the pool in the middle of a customer "shopping" or doing anything else which can the lose what is in the shopping cart).

    So for now, I have had to implement a variety of workarounds I came up with (that do not involve modifying my application code, I refuse to do that) while I come up with a more permanent solution that I control.

    Hope this helps

    @gbshouse: I hope when you lunch, you give some thought to your launch ;-p

Sign In or Register to comment.