Migration to AWS — Hidden costs and how to eliminate them

Hai Nguyen
The Factory
Published in
5 min readJan 20, 2022

Going to the cloud, to medium and big organizations, is no longer a question of if, but of when and how to.

When setting the plan to go to the cloud, the priority of an organization is usually Security and a smooth and non-disruptive transition from on-prem to the cloud. However, what is often forgotten is the cost of migrating your infrastructure to the cloud and some hidden costs that can make your cloud budget spin out of control. In this blog, I will highlight some of these issues, and how to address them.

Applying the wrong architecture to the cloud.

Migration to the cloud is not just simply moving your workload to new AWS EC2 instances. In fact, you have 4 different ways to migrate your application, namely:

  • Rehosting — Lift and Shift
  • Replatforming — Lift and Shift with Optimization
  • Repurchasing — Move to something new … e.g. SaaS
  • Refactoring / Re-architecting — Take Advantage of Cloud

Of these, rehosting is the easiest but is also the least cost-effective method for migrating your application to the cloud. If possible, consult with an experienced Cloud Solution Architect to find the best cloud migration method that is suitable for your application. Sometimes, taking some investment upfront while moving your application to the cloud to optimize and take advantage of the suite of managed services AWS has to offer can save your organization a fortune, and minimize the overhead management headache down the road. Switching your application to serverless for example can give you up to 90% cost reduction on a small non-mission-critical application. That’s nothing to scoff at.

Using the wrong type of instance of your application

AWS has a suite of instance types used to serve different types of applications. When migrating your application to the cloud, using the wrong instance type can increase the upkeep of your application as well as decrease the performance efficiency of your application on the cloud. So, when you choose the instance type to migrate your application into, make sure to research the difference between each AWS instance type to find the best fit for your application.

Not taking advantage of AWS Cost-Saving Offers

What if I tell you, there are more ways for you to save your AWS expenses, even after you find a perfect fit of AWS instance type for your application?

If your application is fault-tolerant and requires a lot of computing power to process batch jobs, then you can take advantage of AWS Spot Instance. It is the unused EC2 capacity that AWS offers for a steep discount, up to 90% compared to On-Demand pricing.

If your application has a stable workload, and you intended to keep it up and running for a long time, then you can take advantage of AWS Reserved Instance, giving you up to 72% discount over On-Demand pricing.

And, let’s say, you are committed to using a specific amount of AWS compute power over a one or three year period, you can enroll in their new Saving Plans, which gives you the flexibility to evolve your usage, while giving you a significant saving, up to 72% compared to the on-demand price! what is not to love about it?

Cost-saving is not only evolved around computing resources but for storage as well. AWS S3 service offers different storage classes: S3 standard, S3 standard IA, S3 one zone-infrequent access, and S3 Glacier:

Each of the storage classes can cost significantly more than others, come with trade-offs such as instant access, and no retrieval fee. Understanding and putting your data to a correct storage tier, as well as utilizing S3 lifecycle policy to archive your data after a period of time can significantly reduce your S3 storage cost in the long term.

Oversight on underutilized resources

The mistake DevOps usually makes when migrating their application to the Cloud is to overprovision their application much more than what is actually needed. When you have an EC2 instance hosting your application that is idle or only utilizes 5% of its CPU and/or memory, you are wasting your money every minute that instance is running. Thankfully, AWS provides you with a way to alleviate this issue, using Resource Optimization Recommendations and AWS Trusted Advisor

While Trusted Advisor can alert users about resources with low utilization, AWS Recommendations can give you a suggestion on which instance type can be a better fit for your application. These are pretty good places for you to start if you want to look into how to get the best bang for your buck when hosting your application on the AWS Cloud.

Team awareness of cloud cost optimization

The above is one of the few steps you could take to minimize your cost when migrating your application to AWS Cloud while achieving the best result from it. But to be able to achieve this, each DevOps team has to be aware and work together to implement it.

A good structure for knowledge sharing and a template to onboard each DevOps team to the cloud is needed to ensure good cost awareness. Integrating the Cost-Aware Processes and Cost-Aware Culture into your organization is a good first step in order to achieve this.

Conclusion

Cost Optimization on AWS, or as most people call it, “FinOps”, is starting to play an important role for organizations moving to the cloud, and is an ongoing process. Keeping that as a part of your cloud management process, and you can keep your AWS bill under control while making the most out of it. Need help migrating your on-prem environments to the cloud securely and efficiently? We at The Factory can help you with that.

--

--