Since its debut in 2006, AWS has become the public cloud of choice thanks to its low-cost, easy-to-use, self-service resource provisioning. But with these advantages come several pitfalls. Organisations can use AWS as a de facto IT environment without carefully planning their IT usage governance policies or their strategy and budget for AWS, as they do with their on-premises cloud infrastructure and resources. This makes it easy to create a sprawling IT environment on AWS’s public cloud that lacks the discipline and hygiene of internal IT systems. The convenience of setting up virtual machines on AWS can also be a trap for developers, who come to rely on it too much. In this article, we’ll see how to achieve a balanced workload between public and private clouds.
Advantages and pitfalls of AWS
The advantages of AWS are well known. Using a point-and-click interface, enterprise developers can set up a quick production environment on AWS instead of waiting days or weeks for their company’s IT Operations unit to provision and configure the infrastructure and resources they need. Startups and small companies can create their own IT environments on AWS, and thus avoid the capital expense of a big infrastructure investment. More recently, AWS has made valuable IT tools available to subscribers, such as big data analytics, AI, and voice- recognition application development tools.
But with these advantages come several pitfalls. Organizations can use AWS as a de facto IT environment without carefully planning their IT usage governance policies or their strategy and budget for AWS. This makes it easy to become over-reliant on AWS, and to create a sprawling IT environment on AWS’s public cloud that lacks the discipline and hygiene of internal IT systems.
If an enterprise uses AWS too much, the costs of using it can eventually outweigh the benefits. The company may end up paying a huge amount per month to host a large public cloud IT environment. Over time, this can have a severe negative impact on the IT operations budget.
Using hybrid clouds to balance AWS usage
A hybrid cloud, with a mix of public and private cloud, is a good foundation for optimizing performance and costs. The key steps to optimization are:
- Set up an on-premises private cloud infrastructure.
- Establish control over AWS usage through IT policy and governance.
- Take stock of the company’s overall use of AWS to understand exactly how and for what purposes the people at the company are using it.
- Determine which workloads (i.e. high-performance workloads) will run better on a private cloud, and which workloads (i.e. workloads requiring “Burstable Bandwidth”) should leverage AWS or other public clouds.
- Balance workloads between the two platforms to optimize productivity and costs.
Managing AWS and hybrid cloud for an optimized cloud infrastructure
The solution to optimizing your performance and cost on AWS is part technology and part business planning. It’s not enough to simply set up a hybrid cloud – you need to know how to utilize and balance IT workloads between AWS and the private cloud. And for that, you need to understand how your company is using AWS right now, and take control of it.
Designating an AWS Admin is an important first step. This admin will be responsible for creating and enforcing IT policy and governance on AWS. The AWS Admin will be responsible for monitoring the company’s ongoing AWS use and tracking monthly AWS spend. The admin should also have the power to determine which workloads will be deployed on the company’s private cloud, and which will be deployed on AWS and other clouds.
Cloud management platforms can help with this, but even basic administration (done the old-fashioned way, using spreadsheets) to understand usage patterns and spend can quickly reduce unnecessary spend. The AWS Admin should have the authority to right-size the company’s AWS profile. AWS offers Trusted Advisor, a cloud optimization tool that helps to minimize over- provisioning of workloads. Using this tool, the AWS Admin can determine the total amount of CPU, memory, storage, and network bandwidth the company is currently using on AWS. If the Admin determines the company is paying for unused capacity and bandwidth, he or she can switch over to a smaller, less-expensive AWS profile that is better suited for the company’s needs.
Achieving a Balanced Workload
The key to balancing workloads between public and private clouds is to know which workloads work best on which type of cloud. To do this, you have to continuously analyse your application portfolio, and deploy each workload to the appropriate public or private cloud locations for maximum performance and cost-effectiveness. There are, of course, some workloads that you should always keep behind your firewall, and never put on AWS or other public clouds.
However, if you have workloads that could run on either public or private cloud, you can strike a balance by putting workloads on the appropriate medium. The question to ask is: Where should my workload run, so I get the most value out of my AWS investment? Here is a couple of use cases that illustrate workload balance:
- High-Performance Workloads vs. Worldwide Availability – Your company has a mobile application that collects small amounts of non-confidential usage data from users and sends it back to your databases to be analysed using data analytics programs. Since you want your application to be accessible to mobile users throughout the world, you should host it on AWS, which gives you a global, multi-site presence. But databases and data analysis tools typically require higher levels of CPU, memory, storage capacity, and bandwidth – all of which may incur higher fees for your company on AWS. Therefore, you should host your databases and data analysis tools on your private cloud servers, and set up a link to AWS so the database can receive incoming data from your mobile application.
- Burstable Capacity and Bandwidth – Your company may need temporary digital capacity on public clouds like AWS for short-term peak periods. This is known as “bursting your capacity.” For example, if you are a retail company, you may need to rent a short- term “burst” in CPU and bandwidth from AWS during the holiday season, and move your eCommerce site onto the public cloud to handle the spike in transactions and web traffic. When the holidays are over, and demand returns to normal, you can shift the site back to your on- premises private cloud, and shut down your public cloud environment to save money.
AWS is a fabulous environment for bursting capacity or rapidly setting up resources for smaller DevOps projects, but AWS user can get out of hand without corporate governance, and AWS is inappropriate for applications requiring high security or high performance. By balancing AWS usage with a private cloud, companies can optimize their AWS spending.