By default, Amazon Web Services, AWS, does not allow you to take all the resources you need. Indeed, there are hard and soft limits that you should understand, before deploying to AWS.
By the way, most public cloud providers set resource limits to protect cloud users from themselves, in terms of getting a huge bill at the end of the month. This practice also protects the cloud service itself, to insure that it does not saturate due to a single user provisioning more resources than they should.
Of course, this notion flies in the face of the core benefits of cloud computing, including auto- and self-provisioning, where you can expand the use of cloud-based resources as you need them. The limits set by AWS and other cloud computing providers are not so restrictive that you cannot gain access to the resources you need, when you need them. Thus, elasticity still exists, although limits exist as well.
AWS imposes initial limits on several of its resources, including EC2 instances, EBS Snapshots, EBS Volumes, ELB, and Elastic IPs. As mentioned above, this system exists to discourage “inappropriate consumption” of resources. I actually like the fact that these limits exist. Most AWS users are new AWS users, and thus mistakes could easily be made, in terms of over-allocating cloud resources.
Back in the days of time-share systems, I had to watch out for the same issues. Indeed, when working within an account, the first thing I did was set limits so that I did not saturate the systems, or my budget.
Although each AWS account has several default resource limitations, you can make a request to Amazon to increase these limits when necessary. I call these soft limits, because you’re allowed to change them.
To increase your limits within AWS, you will need to fill out a different web form for each type of resource. Keep in mind that these changes will naturally increase the money spent on AWS cloud resources. Make sure you consider the changes in dollars, as well as the changes in system resources.
Some of the default soft limits include:
- EC2 Instance – Default Limit: 20 per region
- EBS Volume – Default Limit: 5000 volumes or an aggregate size of 20 TiB
- Elastic IP – Default Limit: 5 per region
- Elastic Load Balancer – Default Limit: 10
- High I/O Instance – Default Limit: 2
- Virtual Private Cloud – Default Limit: 5
In contrast, there are hard limits that cannot be changed. Thus, you’re stuck with what AWS provides. However, after building hundreds of systems within AWS, as well as using AWS resources directly, I’ve never seen an enterprise hindered by these hard limits, which are mostly centered around security. However, it’s a good idea to understand these limits.
- EC2 Security Groups (EC2 Classic)- Max: 500 in each region for each account, and each Security Group can have a maximum of 100 rules/permissions.
- EC2 Security Groups (EC2-VPC) – Up to 100 security groups per VPC.
As time moves forward, these hard and soft limits will change somewhat. Keep an eye on AWS’s changing limits, as well as mechanisms to increase them. For now, the limits should be understood, but they are not a hindrance to productivity, and are no cause for concern. One way around these limits is a managed AWS approach.
By David Linthicum