Cloud computing has liberated developers from the boundaries of pre-provisioned equipment. With no heavy upfront costs involved, the cloud provides its users with a wide breadth of services that come to life in just a few clicks. AWS services have grown from just one simple queue service back in 2004 to over a hundred services today. With new features announced daily, cloud infrastructure has become a commodity suitable for every workload.
However, with such easy access to cloud infrastructure comes great responsibility (and peril) regarding security and cost.
Get the right start on your cloud journey
Experimenting in the cloud is easy and fun; it does not involve any special skills, deep knowledge or hard earned experience. The virtual machines in AWS come to life within minutes and with just a few clicks.
Experimenting does not require detailed planning, thorough security-related considerations or automation; you can just open a console, utilize the defaults that AWS provides for you, and you are good to go.
However, moving to a production environment will require a different approach. Even before you deploy your very first resource you need to carefully consider the layout of your environment—what accounts you will have, your networks and subnets, user groups and permissions, authentication and authorization mechanisms, and integration with your on premises workloads.
These are only a few aspects to consider before your journey starts. Designing the infrastructure is similar to the process of software architecture—mistakes in design always prove to be costly and hard to fix in the later stages. Setting the right foundation at the beginning of your cloud journey might be both challenging and intimidating.
Doing it right the first time with external help from experienced partners like TriNimbus, who have deep knowledge of AWS systems and understand how to help companies navigate their first few steps onto their cloud, can save a lot of money and time down the line.
Challenges along the way:
With the cloud becoming a commodity, organizations should pay special attention to the cost involved. Some of the common cost challenges include:
- Oversizing in the cloud is easy
Cloud is self serve; it does not involve purchase request reviews that are part of traditional hardware acquisition. With no governance in place, provisioning 16 cores is as easy as provisioning one, and over-provisioning is a common plight.
Because elasticity—the ability to scale on demand as opposed to pre-provisioning for a peak—is an integral part of cloud services, the problem of oversizing can be easily rectified with the right use of AWS services. For example, AWS Auto Scaling combined with Elastic Load Balancing will help you make sure your capacity matches your demand.
Another aspect to consider is right-sizing of your instances based on the environment type.
Development environments have different requirements than production, and using identical deployment scripts will result in oversized, underutilized, costly resources.
- Cost of scaling
Auto Scaling is an irreplaceable feature to ensure your infrastructure has enough capacity to meet current demands. However, there is potential for the cost of this infrastructure to exceed your predictions.
For example, an attack on a web application will result in heavy load on the existing resources and Auto Scaling will spawn more instances to meet the demand. With the ongoing attack your resources will remain scaled out and never scale in, resulting in more drain on your pockets.
Building the cloud infrastructure with cost in mind and following best practices means utilizing AWS services efficiently. For example billing alerts, AWS WAF protection, limiting the maximum number of created instances would help prevent cost sprawl in the case of a DDoS.
- Multiple clouds, Accounts & Organizations
Keeping the cost at bay becomes even more challenging when your cloud presence grows. When your infrastructure is spread across many accounts in AWS, or even across cloud providers, having centralized reports and alerts becomes a challenge and will require dedicated tools.
Creating a unified report that gives a one-stop view of resource utilization and savings recommendations across all different environments can help uncover potential cost savings—up to thousands of dollars per month for some businesses.
- Controlling Costs
One way of controlling costs on the cloud is to limit the usage of the most expensive services to specific user groups and environments. For example, t2 instances might be the most suitable instance type for a development environment while usage of graphics-optimized, 16-core instances in that environment should be restricted—or even blocked—using AWS IAM policies.
Different types of user groups should be assigned policies with different levels of access to AWS resources, and group permissions should be routinely audited. To ensure control and accountability in AWS, use best practices such as tags and CloudTrail logs.
- Lift and shift architectural challenges
The cloud is not a magic pill that creates cost savings. If your application is a monolith that requires huge, expensive compute resources to scale, moving to the cloud will probably prove to be less cost effective than perceived.
The “lift and shift” approach of moving on-premise deployments to the cloud is usually a first step in your cloud journey. Unfortunately, it sometimes leads to the disillusion of the cloud cost efficiency.
Partnering with a company with extensive cloud experience can help you hit the ground running and develop a winning migration strategy. For example, if you are leaning towards a data center renewal, AWS cloud experts like TriNimbus can help you compare and implement two possible solutions: migrate to AWS first and optimize later vs. re-architect during the initial migration to AWS and deploy your solutions in a cloud-optimized way for the beginning.
Tag – You’re it!
Managing your costs in the cloud are tightly coupled with the usage of tags, which are a resource’s metadata in the cloud.
The challenge of associating a cloud resource’s expenses with a particular department, unit or team can only be handled with tags. Thus tags are essential for an effective cost management process and should be carefully considered, defined and communicated across cloud users in your organization.
Moreover, governance should be in place to ensure resource deployment without tags is either blocked or marked as non-compliant and the resource owner gets notified.
Utilizing an infrastructure as code approach, with the tags being part of automatic deployment, is a recommended practice that will ensure there are no “orphaned” resources.
A detailed tagging process can ensure the desired cost granularity is available in AWS reports. Tags are also utilized heavily in other routine processes as well, such as compliance checks and patch rollouts. At TriNimbus, we treat tags as a vital part of the infrastructure that drives detailed usage reports and subsequent cost savings.
Things to watch out for
Want to learn more about the usual (and not so usual) suspects that can add a lot to your monthly AWS bill? Curious about how to avoid cloud sprawl and how you can plan for cost effective cloud usage?
Check out our joint webinar video with CloudCheckr where we talk about:
- Benefits of using the cloud vs. on-premise infrastructure
- Customer use case: How a Public Sector financial services client continues to experience cost savings and innovate faster on the cloud
- Tips for long term savings on the cloud
Conclusion
Finally, if you want to get a better handle on costs for your AWS usage, consider looking at the following aspects:
- Consider Reserved and Spot Instances
- Take full advantage of elasticity
- Automate the starting and stopping of non-prod workloads when not in use
- Consider cloud-effective software architectures such as serverless
- Use AWS Organizations for high level billing as a start; consider cost management tool going forward
- Define the cost limits and set up cost-related alerts
Every company and workload is unique, and the move to the cloud will need careful consideration of your budget and the size and scope of your organization’s environment, along with your requirements. Doing the work before you dive in will ensure long term success while also keeping your pockets happy. At TriNimbus, we dig deep into these factors and implement solutions to maximize performance, minimize cost, and keep you secure. If you’re ready to get the right start to your AWS journey and need assistance, we’d love to hear from you.