It seems possible for them to set up the block as a response to request rate/patterns, but as I am unfamiliar with EC2 I have to ask: how hard is it to get a new IP address? If it a matter of stopping an instance and starting another (or easier), blocking all of EC2 may be their only move.
Once the scraper isn't tied to a single IP, I don't see how to filter out abusive requests from the legitimate ones. It will cause the scraper to emulate real-user behavior more and more to defeat the barriers. At the end of the cat and mouse game SO's only option is to block the IP range, or allow scraping from EC2.