How can I track user requests to my external API on AWS?
API Gateway includes some request logging to Cloudwatch Logs, documentation is here. If you want to record more information I would personally collect it in lambda and push it out to an access log in a dedicated Cloudwatch Logs group. Just beware because the cost of bandwidth and storage to Cloudwatch Logs can add up for busy sites.
Otherwise regarding your options
- DynamoDB would be fast enough. A MySQL database would probably be fine for performance as well, probably adding less than a millisecond to processing time.
- Not really fully featured
- This would work fine, but I would only do it if #1 turned out to be too slow. It's not that complex to push a message to a queue then have another process consume it.