There are many cloud cost monitoring solutions out there, and they typically do two things - monitor the health of your infrastructure and let you know when it is costing a lot of money. But well-informed visibility isn’t the total solution. Cost monitoring needs to serve up visibility and offer preventative and reactive controls. We solve this problem in two ways: Scalr Cost Analytics and Financial Policies using the Scalr Policy Engine.
Cost Analytics starts with data collection across all of your cloud providers. With that, admins can visualize costs, log and monitor events, get automated cost reporting, and use API calls for third party integrations. You can then use Financial Policies to create reactive and preventative policies around your resources.
Case in point - while running a test Kubernetes cluster in GCE for a recent webinar, I forgot to shut it down and received a crisp Google Accounts bill for $110.79. A Reclamation Policy (which we’ll explain below) would have automatically shut down my testing servers after a few days. Sometimes even the pros forget.
We’re going to break down cost management with Scalr in two short blog posts - monitoring spend with Cost Analytics, and later this week, working through common examples of how customers use Financial Policies to control spend. Let’s examine the costs of our servers, cloud services, and infrastructure across clouds.
First, here’s the hierarchy of Scalr to explain how we can organize costs:
I can look into costs at each level of my organization. Admins set up Cost Centers at the Corporate scope so we can see spend across the entire organization.
Cost Centers are high-level resource allocation centers. In your organization, Cost Centers usually map to business units (Accounts), but they don’t have to. Projects belong inside Cost Centers. In your organization, Projects map to the individual projects launched by your business units. An example would be the collection of development, staging, and production resources for a particular web application. The resources inside Projects doesn’t have to exist in the same Environment, or even the same Account.
Projects make it easy to track costs for infrastructure, no matter where they belong. Customers find this useful when they need to monitor their costs in within cloud providers without jumping into the Billing dashboards of GCP or AWS.
So what does this look like in the UI?
There’s a lot going on here. Let’s dive into what’s what in the main UI.
First, in the top left I can see my total spend, which I can see on different time periods. I can see this on a cloud by cloud basis, by Cost Center, or by Project.
On the bottom row I can see how much of the budget has been spent and what Cost Centers/Projects are costing me the most. I can also see percent and dollar changes over previous periods.
On the sidebar on the left I can look at my individual Cost Centers, the Projects within them, and the cloud resources directly within those Projects. Let’s look at Cost Centers:
Here we get a closer look at how budgets play into tracking your spend.
Budgets are the limits I can set for an entire Cost Center or Project. A budget can be set for any time period. $800,000 for a quarter, or $200,000 a week, and so on. On the left sidebar I can see my spend so far during the time period, and how much of the budget has been consumed.
You can receive Budget Alerts, which are emails delivered when a Cost Center or Project has reached a certain threshold of its Budget (e.g. 80%) or is expected to exceed its Budget.
In the Trends section I can examine what my average costs are, and which Projects inside the Cost Center are most expensive.
Let’s take a look at Projects.
I can see a more detailed look of what we saw above. In addition to the details we saw at a higher level, I get a breakdown of the different cloud providers used in the Project. I can also see the costs of the Farms (running applications), and by diving one level further I can see the pricing of the instances, cloud services, and resources inside the farms.
Because we tap into the pricing and billing data from public cloud providers, we can get real-time costs of instances, bandwidth, cloud services, and any other features that you are using. For private clouds, Scalr lets you define a custom pricing list for each instance type (i.e. a custom hourly instance hour cost). You can even manually add costs for things that aren’t commonly calculated, like Support markups or license fees.
The feedback we’ve gotten about Cost Analytics has been positive - customers like that you get a granular look at your spend along with the ability to do something about it. The UI does a great job of drilling into costs as far as you’d like to go, and this is only the surface. In addition, Cost Reports are email summaries of all of the information available in the UI, which can be manually generated or sent out at regular intervals to relevant team members.
But like we mentioned, even though visualizing costs is powerful, preventative and reactive measures are how we get the most out of a cost management solution. We’ll continue that conversation later this week and talk using the Scalr Policy Engine to make that happen.
For more information, visit the wiki and check out our resource hub for more details on Scalr Cost Analytics and other features: