Recommendation

Start learning to use, and using the AWS Command-line, combined with your own homegrown solution to manage your DNS entries.

I personally have a solution which rounds up multiple text files (each with customer identification and comments contained) into one file, which then ships off to my authoritative DNS whenever there is an update.

More info on AWS Route53 CLI here


Example solution

1) Get cli53

2) Create a folder and fill it with BIND compatible zonefile.txt for each customer.

C:\zones\customer.com.txt
C:\zones\example.org.txt
C:\zones\loyal-customer.net.au.txt

3) Write a script which pulls gets each file and uploads it to AWS Route53:

Powershell

$zonefileDir = "C:\zones\"

foreach ($file in (ls $zonefileDir -r))
{
    # Remove the '.txt' from each file, so we have the proper domain name
    $zone = ($file.name -replace "\.txt$","")

    # import the BIND zonefile and replace any existing records
    cli53 import $zone --file $file --replace --wait
}

Bash

directory="/etc/bind/zones/"
for file in `ls $directory`
do
    zone=`echo $file | grep -Po "^.*?(?=\.extension)"`
    cli53 import $zone --file $directory$file --replace --wait
done

4) Whenever you need to make changes, you make it inside your separated customer zone files, which you can also separate with directories.

5) Sync all of your zonefiles in Git so you can track changes to each zonefile in case you need to revert.