I started exploring AWS (amazon web services) back in 2007 and since then I’ve been keeping an eye at their services and offers as I suppose they play an important role in the cloud space.
This post is related to the AWS Route53 service that allow to leverage the distributed amazon DNS.
As an aws route53 user and owner of a domain, it is possible to easily associate domain names with public IP and, as usual, you get charged on usage basis.
It is possible to use aws route53 service to either point hostnames to EC2 components like instances and ELB (Elastic Load Balancer) or to external machines.
Since I have been using AWS Route53 to point my domain to a machine with dynamic IP, I was forced to login into the AWS console to update the configuration every time a new IP was assigned to my machine.
I was looking around for a utility like noip where you install a program that detect your public IP and update your AWS Route53 record.
Surprisingly I could not find anything that suits to my needs so I decided to write my own solution leveraging the AWS Route53 API.
I’ve implemented this small utility using Java and the source code along with the binaries are available to everyone for download on GitHub
Additional use case:
Another interesting use case of my utility is when you run one or more aws EC2 instance and you would like to point some hostnames to those instances.
One possible way to do so would be to reserve one or more aws elastic IP and then configure Route53 pointing your hostname to the reserved public IP.
Unfortunately, only the first elastic IP is for free as aws will charge for the additional ones.
Installing this utility program on your was EC2 instance will make the trick as the public IP associated to the was EC2 instance will be automatically registered on was route53 without the need to reserve a Elastic IP (and get charged) associated to the instance.
Of course this approach is only feasible for EC2 instance where you have full control and not for such services such as the load balancer.