0

My task is to clear out our Route 53 from all the old Domain names. We have 700 records but only 200 running instances.

I have tried AWS CLI to get the EC2 instances IP address which worked fine. I can't seem to make a correct query on Route 53 CLI to get just the Domain Names plus the A records.

Ideally, I'd get both in a CSV format then use python to compare them.

Here is one of the Route 53 queries I tried:

aws route53 list-resource-record-sets --hosted-zone-id XXXX --output text --query 'ResourceRecordSets[*].[Name,ResourceRecords[*]]' | sed -E 's/\s+/,/g' > domains.csv
Vladislav Povorozniuc
  • 2,149
  • 25
  • 26

2 Answers2

0

As suggested by Mark B, use python and boto3.

This is by no means perfect and you should probably add some more filtering by type etc but it's a start. I hope it helps you in the right direction.

import boto3
import json

r53 = boto3.client('route53')

result=r53.list_resource_record_sets(HostedZoneId="REPLACE_WITH_HOSTED_ZONE_ID")

for r in result["ResourceRecordSets"]:
  output = r["Name"]
  try:
    for o in r["ResourceRecords"]:
      output += ","+o["Value"]
  except KeyError:
    pass
  print(output)
lennart
  • 121
  • 5
0

I ended up using Vlookup with the two CSVs tables. I compared each IP Address in Sheet 1 with the IP address in Sheet 2. That worked for this use case as it was a one time operation.