Amazon, in order to be fail-safe, is running eight copies of its name server. The master would seem to be yet another server:
> nslookup -type=SOA amazon.com
Non-authoritative answer:
amazon.com
primary name server = dns-external-master.amazon.com
responsible mail addr = root.amazon.com
serial = 2010176184
refresh = 180 (3 mins)
retry = 60 (1 min)
expire = 3024000 (35 days)
default TTL = 60 (1 min)
So we can guess that all eight of the name servers specified are actually replicas of the master specified as the Start Of Authority.
Functionally, there is little difference in your two options. Because they are all replicas, it should make no difference which of the eight you query. Your first option asks your local DNS relay to report on whichever of those eight it has most recently asked for a domainkey record, or failing that, pick one arbitrarily and report that. The second asks your local DNS to ask for the list of name servers, and you then pick one of them yourself and ask that one for the domainkey record that it holds. In the end, you'll get the same response, but your first option is far simpler for you to implement, and probably makes better use of the cached nature of DNS queries.