Often in on-premise environments, workloads get over-provisioned. Many times, this is due to not knowing which AWS EC2 instance type is best for your organization’s needs.
You might find that you’re maxing the number of cores but are only utilizing ¾ of the available memory (or vice versa). You over-provision as a practice, just to be safe. After all, it’s better to have too many than too few resources available, right?
However, your on-premise infrastructure, although reliable, doesn’t have the granular scaling that you need to be both effective and efficient. So, you’ve turned to the cloud.
But the cloud has its own resource and computation concerns when it comes to demand and allocation. Unless your instances are properly optimized, you still run the risk of over or under-provisioning.
So, how do you optimize in the public cloud?
It’s Time You Became an Expert on Your Apps
The problem is that cloud-based workloads and applications don’t grow linearly; they are going to have a slight bias one way or the other—which means that they grow differently depending on the situation. To counteract these variations, you must closely assess and diagnose your current workloads and applications to find their “best fit” in the cloud.
Consider the following characteristics to determine which AWS instance type each workload needs to perform well (and economically):
- Is the workload network-intensive?
- Is it memory and/or CPU hungry?
- Do you need high disk throughput?
- Would your application benefit from running on GPUs (machine learning)?
- What are the critical features that make the app work well?
Here, it is important to discover your bottlenecks and build your cloud infrastructure accordingly. AWS has instance tiers that accommodate for these bottlenecks and free up your cloud resources for more effective production.
- How many active users/connections does your app support?
- How much memory does each active user need?
- How much CPU power?
- How much bandwidth does each active user consume?
AWS has extremely granular instance sizes available, and unlike traditional on-premise infrastructure, you’re not locked into one size for extended periods of time. AWS cloud allows you to shut down and restart your workloads at different sizes, whether it’s to scale up for demand or scale down for seasonal lulls.
- Does your app only scale up (legacy), or does it scale out gracefully?
- Does your app scale linearly, or is it definitively unpredictable?
Remember that just because you need 16GB of memory for a steady state of traffic does not mean that you will need exactly 64GB if that traffic quadruples. You might need only 32GB, or you might need 192GB. It all depends on your instances and how they behave in different cloud environments. This is why efficient scaling is difficult on-premise and why resource allocation can be so expensive in cloud. If you don’t know how your workloads will behave in your virtual environment, then your cloud bills will (most likely) not be what your CFO likes to see.
To financially optimize your cloud spend, it is important to closely monitor, predict, then reserve those cloud resources that you know that you will need. This predictive allocation only comes after you have determined the sizing and performance of each application and workload—because, when you reserve instances (instead of using on-demand resources), you’re committing that you’ll be using this capacity (efficiently) for the next 1-3 years.
ADAPTURE Cloud Managed Services – To Help You Make the Right Decisions
If you’ve visited the AWS EC2 Instance Types page, then you’ve seen just how many options you have available to you. The decision-making process is overwhelming, especially if you still don’t feel like you have a firm grasp of your workload characteristics and growth patterns.
ADAPTURE provides the analytics tools and cloud expertise to audit your existing environments and assess any applications you have not yet moved to the cloud. From there, we help you answer the question, “How do we size each appropriately for AWS?”
For apps that are still on-premise, we can help you migrate them to the appropriate AWS instance type, and for those already in cloud, we can determine allocation for optimal efficiency. We can then help you re-architect as necessary.
There’s no reason to pay for resources that you don’t use.