I recently put together a presentation for a customer to give them an insight into Azure Cost Management by Cloudyn and thought it might be a good blog post. Cloudyn, an innovative company that helps enterprises and managed service providers optimize their investments in cloud services, were purchased by Microsoft just over a year ago now. Cloudyn is a great tool that helps to empower customers/end users understand their cloud spend and use that data to make informed decisions about the future. Since purchasing Cloudyn Microsoft have rebranded the tool and it is now called Cost Management, so one to be aware of when you are searching for information, blog posts, documentation etc.
There are three pillars that Cost Management can provide you are:
- Monitor cloud spend
- Drive organizational accountability
- Optimize cloud efficiency
Monitor cloud spend
With Cost Management you can gain access to rich operational insights, monitoring your resource usage and costs, daily, monthly or yearly. You can track trends into how your cloud resources are being used and see any anomalies that require investigation. The data collected can also help you to understand what your future cloud costs could be.
Drive organizational accountability
You can empower your teams to help manage their cloud spend by giving individuals access to the data via a Role Based Access Control (RBAC) method. And rather than have people log into the portal every day you use the alert and notification system to send out alerts based on thresholds (e.g you can set up a threshold so that when you have spent 50% of your monthly budget an email is set out), or based on a schedule (e.g you can set it up so reports are sent out every Monday to give key stakeholders insights into what is happening).
Optimize cloud efficiency
Cost Management can help you increase your resource utilization with virtual machine right-sizing, you can track reserved instance usage and see if any resources are idle within your cloud deployments.
Whenever you start with a new piece of software or tool there are always certain things that you need to do to get it operational, I refer to these tasks as the building blocks. To get the most out of Cost Management the things I recommend you spend some time on at the start is:
- Cloud Accounts
- User Management
- Cost Entities
- Cost Model
- Budget If you set up those five areas first and foremost your Cost Management experience will be greatly enhanced. Cloud Accounts. This is where you give Cost Management the information for your cloud providers, the platform supports Azure, Amazon Web Services (AWS) and Google. User Management is a straight forward concept, this is where you grant people the necessary access and rights to Cost Management. It's the place where you can give granular control depending on a person's role within your organization. Cost Entities, this concept can be a bit confusion people but the way I explain it is to think of an entity as a logical grouping. Whether that be per project or per department within your organization. Using cost entities, you can create a hierarchy for your organization and link subscriptions and people's accounts to each entity, which will empower your users in being able to access their project/departments cloud spend. Driving organizational accountability. Cost Model, this can also be a tricky one to explain and create. Again, the way I explain is by trying to keep it simple. Cost Management pulls in the raw billing data from your cloud provider, which is great for understanding what you are spending on Infrastructure as a Service (IaaS) services versus what you are spending on Platform as a Service (PaaS) services, or doing a quick cost over time analysis but in order to report on things such as the Owner Tag you've assigned to all your resources you need to create a Cost Model so that Cost Management merges your raw billing data and tag information together, which gives you a complete picture. The last building block is Budget. Cost Management gives you the ability to report on your spend versus your budget and based on your spending rate if/when you'll go over/under your budget. The mechanism for inputting your budgetary information is simple, you input what your budget for each month of the year is at an organizational level or per cost entity.
Top Five Reports
I'm often asked, "What are the recommended reports to use?" To be honest, all the reports that are pre-built within the tool are great, it really does depend on your organizational needs. But I do have top 4 that I recommend to everyone.
1. Actual Cost Analysis Report
This report is the raw billing data straight out of your cloud provider, there is no additional layering of analysis done on it. It's good to see a quick and "dirty" view of what you are spending and on what kind of resources. This report can be found under Costs > Cost Analysis > Actual Cost over Time
2. Actual Cost Over Time
This report again is just using the raw billing data straight from your cloud provide but it can help you monitoring what is happening to your spend over a period of time.
3. Azure Resource Explorer - untagged resources
This is one of those reports that goes unnoticed but is a very powerful one. I use it for two purposes, to find untagged resources and for helping to identify exactly what caused a spike in consumption. In order to use this report to find the untagged resources within your environment you should do the following:
- Load the report via Resources > Resources > Azure Resource Explorer
- Click on Add within the Tags section on the left
- Select the tag you wish to check is missing
- Click on the Exclude Tag Filters click button
- The report generated should now show you the resources within Azure that are missing that tag Below is a video showing how I have used this report to identify all the resources in my Azure subscription that don't have the "Purpose" tag. https://youtu.be/cImbRN7wi4U!
4. Azure Resource Explorer - resource identification
The other great use of the Azure Resource Explorer report is find out exactly what caused a spike in consumption. If you notice in your Actual Cost over Time report that you had a spike at the start of the month you weren't expecting, you can launch the Azure Resource Explorer report, select the date range and then sort your resources in Cost order. This should help to show you the most expensive items within that time period and help you to identify what it was that caused the unexpected spike. The default date range for this report is 7 days, so be mindful of that as it may not be suitable for all your reporting needs.
5. Instance over Time
This report can be found under Resources > Compute > Instances over Time and is great for showing used and unused Reserved Instances (RIs).
One of the key features of Cost Management is being able to use the data to optimize your cloud deployments. There are some key points I like to point out when explaining the Optimization within Cost Management:
- Certain reports are designed for AWS only and certain reports are designed for Azure
- The Cost-Effective Sizing Recommendation Report will show you over provisioned Virtual Machines
- Sizing recommendations will only give you one step down
- Sizing thresholds can be customized to suit needs
- The Instances – Highest CPU report can potentially identify virtual machines that need to be sized up
- It’s also key to point out Cost Management is a reporting tool, you cannot action any of the recommendations it gives you directly from its interface, you need to log into Azure and carry out the actions from there.
Please remember that all recommendations are guidelines and should be further investigated before actioned!
Logging into a portal every day to check on budget, spend, etc, can become onerous and repetitive. Within Cost Management you can set up alerts that can be sent straight to your email inbox either as a recurring email or as part of a threshold alert. Every cost report allows you to create a alert.
Setting up alerts is a great way of monitoring your spend against your budget using the threshold alert, be notified when your cloud deployments have used over 60% of your budget. Or if you are Project Manager for a new project get a regular email throughout the week showing you exactly where your cloud deployment spend is at, keep on top of your project budget and milestones.
Cost Management is great at allowing you to create reports the way you want to display then with the data that you want to pull in or exclude. This can be time consuming, especially when you are starting to use the product for the first time. However, fear not, Cost Management allows you to save the report that you have built so you can easily pull it up in the future or share with your colleagues. There are actually two ways you can save reports, either by saving the filter configuration you’ve created or saving the report in your “My Reports” silo.
Saving the filter configuration is a handy feature that the tool offers you however my personal preference is to save the report within “My Reports” for two reasons. I can easily recall them from the navigation tool bar when I log into Cost Management and I can add their outputs to a custom dashboard easily.
Below is a video of me customising a report to the way I want it and then saving it in the “My Reports” section: https://youtu.be/7ZBoydqhG2Y!
There are one or two little gotchas that I’ve come across in using Cost Management:
- If someone is an Admin for the full organizational structure of your Cost Management tenant when they run “Budget vs Cost” reports they only get data on the overall cost and overall budget. They won’t be able to see Budget vs Cost for a specific Cost Entity
- If you save your own reports and give them your own custom name I would recommend putting what default report you used to build it within the description. That way you can always find your back to that original report.
Call to Action
If you have a user group or meetup and would like me to come and talk to the group about Azure Cost Management, please reach out to me as I’d love to attend and speak to your community. You can reach me via my Contact form or on Twitter @TechieLass!
Official documentation around Cost Management can be found from Microsoft at: https://azure.microsoft.com/en-gb/services/cost-management!