We throttle Amazon EC2 API requests for each AWS account to help the performance of the service. We ensure that all calls to the Amazon EC2 API (whether they originate from an application, calls to the Amazon EC2 command line interface, or the Amazon EC2 console) don't exceed the maximum allowed API request rate. Note that API requests made by IAM users are attributed to the underlying AWS account.
The Amazon EC2 API actions are divided into the following categories:
If an API request exceeds the API request rate for its category, the request returns the RequestLimitExceeded error code. To prevent this error, ensure that your application doesn't retry API requests at a high rate. You can do this by using care when polling and by using exponential back-off retries.
While the details might vary between the plethora of their services, I think it is safe to assume similar patterns in place usually (not the least due to EC2 backing many of the other services too).
Both the aforementioned explanation from EC2 as well as a few indirect quotes from users interacting with AWS support seem to suggest that the limits can vary by service status and per account even, i.e. AWS is capable of raising/reducing limits for individual accounts depending on dedicated high performance use cases, suspected abuse etc.