You are correct that DNS, by definition doesn't allow you to route based in path - the DNS server never sees that part of the http request.
Subdomains are definitely a possibility, although if these are ajax requests (as opposed to json-p) you will have to read up on CORS headers, which allow you to instruct the browser which cross origin ajax calls are permitted.
Another possibility would be to use cloudfront as a layer inbetween your end users and content. In cloudfront lingo you can setup different behaviours to route different paths to different origins, where origins can be s3 buckets, elastic load balancers or arbitrary ip addresses/hosts. This would also have the advantage that your s3 content would be cached closer to your end users.