AWS Limits

With the flexiblity of Amazon Web Services (AWS) you can create many servers in minutes. This is great from a scaling up point of view. Your PR department have just informed you that a segment about your product is about to appear on national TV. You expect a spike in traffic, but its okay because of the preperation work and auto-scaling.

CPU flamegraph

CPU usage can spike

Fabulous so you run from 10 servers to 30 servers to cope with the demand. What is the flip side of this? A hacker has gained access to your AWS account by AWS key in a repo, (Don’t do this, EVER).

Before you can say, “what a great job with the autoscaling”, you have hundreds of bit coin miners on your account, and you get the bill!

Fortunately AWS have limits on every account. There are limits for any type of resource you can request, including each type of EC2 server. This is useful incase the worse should happen, but it can cause an issue within normal operations too.

As part of regular monitoring of your servers and account usage, EC2 instance type or EBS may prevent you from launching a server, just when you need it. Fortunately a quick support ticket to AWS will get the limits increased for these legitimate examples.

Speed limits

Limits are there for safety

One of the hardest limits to monitor and manage, is the AWS API Limit. This is a sliding scale limit of requests per second, and is there to protect AWS from request spikes or storms. This can be mitigated by retries, or you may need further investigations as to what may be causing the API calls.

Let me know your experiences with the Amazon Web Services API and account limits.