EC2 instances are virtual servers that run in Amazon’s Elastic Compute Cloud. Because there are many different types of EC2 instances to choose from - and because they can be provisioned with the click of a mouse—careful management of EC2 instances is required to optimize utilization and control costs.
EC2 instances are virtual servers that businesses have been able to rent on demand from Amazon Web Services through the Internet since 2006. Originally available in a single configuration (the equivalent of a 1.7 GHz Xeon processor, 1.75 GB of RAM, 160 GB of local disk, and 250 Mb/second of network bandwidth), there are now hundreds of configurations to choose from to suit every type of workload.
Because they are available on demand, EC2 instances can be rented for an hour, for a day, or for as long as required. They can be switched off when not required to save costs, used during periods of low demand to take advantage of spot instance pricing, or (if required long term) businesses can commit to a specific level of service over one or three years in return for a discount against the on demand price.
For most businesses using EC2 instances, there’s a significant cost saving compared to purchasing hardware servers. Virtual servers can be scaled up or scaled down as required, exchanged for virtual servers with different configurations (within the same family), and managed remotely. However, there can be occasions when EC2 instances can cost businesses more money than they save.
There’s a common misconception about cloud computing that you only pay for what you use. That’s not true. What you pay for is the capacity you provision—i.e. if you rent an EC2 instance with an 8 core vCPU and 32 GiB of memory, you pay for the full capacity you have provisioned regardless of whether you use the full capacity or not. You also continue paying for the rented instance until it’s switched off.
If you provision more capacity than you need, or leave unused EC2 instances running overnight, you’ll pay far more for your rental than you have to. In terms of a single virtual server that only costs $0.33 per hour to rent, it doesn’t seem to matter that much. But, if your business is deploying EC2 instances by the hundreds, or thousands, or hundreds of thousands, uncontrolled costs can escalate quickly.
That level of uncontrolled deployment isn’t unheard of. Due to the self-service nature of provisioning EC2 instances, authorized users can literally launch instances with the click of a mouse. As many users’ experiences date back to on-premises IT infrastructures—when servers had “sunken costs”—they can often neglect to correctly provision virtual servers for the capacity required or forget to switch them off.
A best practice for overcoming potential EC2 cost issues is to implement and enforce cloud governance policies. These policies should be the guidelines within which users can provision EC2 instances and take into account the requirements of each department within your business so that everybody is singing from the same song sheet. Implementing policies is relatively simple. Enforcing them isn’t.
Due to the rapid rate at which users deploy EC2 instances once a business migrates to the cloud, it’s a complex task to ensure they are correctly provisioned and switched off when not being used, and that discounts are being taken advantage of where available. Amazon provides a number of tools to help monitor instance utilization and costs, but there are better alternatives.
CloudHealth for instance is a cloud management platform that analyzes instance utilization and informs you of any instances that are overprovisioned or that could have stop/start schedules automatically applied to them, and recommends when Reserved Instance purchases are appropriate - these being the discounts for which you would be eligible in return to committing to a specific level of service.
In addition to identifying where cost savings can be made, CloudHealth allows you to apply governance policies which are monitored by the platform around the clock. For example, you could apply a policy to let you know if EC2 instance costs are projected to go over budget, or to advise when the utilization of a virtual server falls below a certain level - at which point it would be a good idea to downsize it.
One of the advantages of using policy-driven automation to govern your cloud environment is that the benefits don’t stop at controlling EC2 costs. Policies can also be applied to manage performance, asset configuration and audit trails, and security issues such as access controls and data encryption.
Love the cloud but not loving your cloud spend? Download the 5 Best Practices for Improving Cloud Cost Management eBook.