Ep#147 Cloud Budgeting and Forecasting Done the Right Way with AWS Jeff Blume

September 26, 2023

Episode Summary

#awscloud #cloudcost #costoptimization

In this podcast, Jon Myer discusses budgeting and forecasting cloud costs with Jeff Blume, a Sr. Optimization SA at #AWS on the Optics team.

Jeff starts by explaining the differences between cost estimation, budgeting, and forecasting. Cost estimation focuses on calculating the cost of specific workloads, while budgeting is about allocating resources based on a predefined plan. Forecasting, on the other hand, involves predicting future financial outcomes based on anticipated events and assumptions.

To properly forecast cloud costs, Jeff suggests two methods: trend-based forecasting and driver-based forecasting. The trend-based forecast relies on historical patterns, assuming a consistent growth rate. In contrast, the driver-based forecast takes into account changes in demand drivers, such as new product launches, user influx, strategic expansion, or retiring workloads.

Jeff emphasizes the importance of communication and collaboration between teams to improve cloud financial predictability. Weekly meetings, variance analysis, and understanding the impact of optimization efforts on the forecast are crucial to achieving accurate predictions.

He recommends using AWS tools like AWS Budgets and Cost Anomaly Detection in conjunction with third-party tools to monitor and optimize cloud costs effectively. Furthermore, engaging in the cloud #finops community and staying updated on the latest best practices and benchmarks can help organizations save costs and improve their cloud financial management.

Overall, establishing open communication, understanding demand drivers, and utilizing appropriate forecasting methods and tools are essential steps to successfully budget and forecast cloud costs.

Are you looking to elevate your brand through compelling and highly professional video content? Myer Media has the solution for you, from start to finish we offer complete video creation services that include Customer Case Studies, Creative Content, Podcasting, and more.

To learn more CLICK HERE:

Jeff Blume - Headshot

About the Guest

Jeff Blume

Cloud FinOps leader and AWS optimization subject matter expert.

Helping companies predict, manage, and optimize their cloud spend on AWS.

#aws #awscloud #finops #cloudcomputing #costoptimization

Episode Show Notes & Transcript

Host: Jon

Hi everybody and welcome to the Jon Myer podcast. Today's topic is budgeting and forecasting your cloud cause. Joining us today is Jeff Bloom, who's a senior optimization solutions architect at AWS on the optics team. Jeff, thanks for joining me.

Guest: Jeff

Thank you, Jon. Glad to be here for the second session. It feels like just yesterday that I was on here talking about cloud cost estimation. It's good to be here. Thank you.

Host: Jon

Well, speaking of that, we discussed estimating your cloud cost, but today we're talking about budgeting and forecasting. How about you help us understand the difference between budgeting, forecasting, and estimation?

Guest: Jeff

Okay. I think that just to start the cost estimation process. When I think about estimating the cost of the cloud, I'm thinking about how much is a specific workload going to cost. We talked a little bit about how to do that, some tooling, and what that process looked like, but when I'm talking about budgeting and forecasting, I'm thinking of a budget as a predefined plan for the allocation of resources. And the forecast is kind of estimating all of those future financial outcomes based on anticipated events and assumptions. So both are important tools for financial planning and management, but they serve different purposes. A budget focuses on controlling and managing current resources, while a forecast to me is assisting in predicting the future financial performance of in aggregate all of those workloads together.

Host: Jon

All right, so estimation, in our previous podcast we talked about estimating the cloud cost for a specific workload, and you do those in pieces or chunks for that for budgeting, your budgeting, all of your cloud costs.

Guest: Jeff

That's right. And then the forecast would be once think things are going to change. You set a budget, it's more of a static control to me, something will change, and as you go through that, you're updating those numbers and you're going to give that accurate forecast, whatever the cadence for your company or whatever customers do. If it's monthly, if it's quarterly, everybody has a different process, but it's more of updating those costs. Once something changes, say you have some sort of demand driver that changed, say, Hey, actually we only got a hundred thousand dollars budget this month, but this changed. Now it's going to be 150,000. Why did it change? And those are things of what an accurate forecast would be.

Host: Jon

Well, how do you properly forecast cloud costs when the cloud is such a variable?

Guest: Jeff

It can be challenging, it can be tricky, but there are a couple of methods that I'd like to go over and how you do this. So one is a trend-based forecast and two is a driver-based forecast. First, the trend-based forecast is basing a forecast on historical patterns. And the longer time you're forecasting the less certainty you have. So you're looking at some of those historical costs and say, I have 12 months of usage. I'm going up X percent each month or each quarter, I'm going to assume that nothing else changes. I'm going to go up that same percentage. Whereas a driver-based forecast is using those changes in your demand drivers and you're going instead of based on historical patterns, you're looking for that dynamic and variable change for your spending environment and it takes into account factors that drive your business.

Guest: Jeff

So Cost Explorer is a tool AWS has that has some of that trend forecasting built in, but the demand-based forecasting is what you're going to want to shift to as you're thinking about how am I going to accurately project out these costs? You're going to need to think about what some of those demand drivers are. And there are four types and four categories that I like to think about those demand drivers in. One is an internal driver where maybe it's a new product launch or new features on an existing product. There are external drivers, which are new users coming on or potential sales events. They're strategic drivers. Maybe you're expanding to a new region or you're going through a global market expansion. Then there are things like reverse demand drivers where you have customers churning off the platform or you just have some retiring workloads. So those are kind of the two high-level demons, like the different forecasts that I like to think about splitting them into historical and more of a forward-looking based off of things that are changing in your business.

Host: Jon

Jeff, are there other methods that you can utilize for forecast in your cloud? Cost,

Guest: Jeff

I think is best practice best to do both. So if you can do both methods together, trying to take some of that historical patterns and say, okay, on average we're having this kind of growth and kind of project that forward, that's a good method. And then try to layer in the demand driver on top of that. So if you have new products coming out or new applications or new workloads, and as you're having those conversations in your #FinOps teams or with those product teams or with those application teams, then have those conversations and try and layer in what that looks like. Maybe they have a new workload coming on, maybe they know about some regional expansion and try to build on that. And that kind of goes hand in hand with the cost estimation. So as you go through that, you say, I'm going to try and forecast out what this looks like moving forward. Okay, well how much is that product going to cost? Are we going to start in the testing environment we going to then are we going to move into the staging environment? When's it going to hit production? And what does that pipeline look like? And let's try to accurately forecast and estimate that out. Jeff,

Host: Jon

Let a little bit about what you were mentioning, and I want to talk just about cloud #FinOps in a second, and how is that incorporated into your budgeting, your forecasting? Does that play a significant role?

Guest: Jeff

I think it does. I think that FinOps helps set the foundation for some of the proper budgeting and the proper forecasting and similar to the estimation of workloads, I think that one of the key things here is opening up and having those good communications. And I think that that's a key theme around the entire #FinOps principle. You have this communication, and I've said this before in the last session, I am not going to be able to properly forecast without the help of others. I'm not going to be able to have that communication or I'm not going to be able to properly forecast without having good lines of communication with the people who are running those resources. I can take a good guess based on the trend based. I can look back and say with some numbers and with some math and say, if we're growing 1% every single month, then if you're asking me to project out next month, I'm going to say you're going to grow by 1%. But in changing, I don't know. And wouldn't know without those open lines of communication what a product team is planning on doing when they're planning on doing those launches. So you need to have good communication to help build out that driver-based forecast. And there's a lot that goes into building those out. It's not a very simple task. If you don't mind, I like to go in, maybe we'll talk about how to build a driver-based forecast and why it's important. Do you mind if I segue into that quickly?

Host: Jon

Yeah, go ahead. So actually that's a great question what are your suggestions and your guidance on how to build that?

Guest: Jeff

I would say, again, I like to break things down into some of the steps. So I think of it as a four-step process. You're selecting a unit to forecast. You're identifying and calculating the costs associated with it, and you're identifying those business and demand drivers, some of which we talked about earlier. And then you're preparing the forecast model. So first, when you think about units to forecast, what are you forecasting for? Are you going to forecast the spending of a service? Are you forecasting for spends on an account, product, and environment? Figuring out what that end goal is, should be the first step, and working backwards from that. And then you go into thinking about the calculation. Am I going to have to calculate the costs of new resources? Can I identify the cost of those resources already running in the environment or do I need to estimate some of the costs that are going to be net new like we did in the first session around the cloud cost estimation? Or can you just review usage that's already in your environment to get a good handle on that? And then I would say most importantly, you need to figure out what those drivers are that we talked about earlier and when they're going to influence your cloud roadmap, those new product launches, those new users, those new environments will tell the story of the forecast and then build it out and see how it looks.

Host: Jon

And this seems like a good time to jump in and talk about today's sponsor, Veeam. How would you like to own control and protect your data in any cloud anywhere, including AWS? Veeam backup for AWS is a native solution to protect all of your AWS data. It's fully automated, set it, forget it within one platform, centrally managed Veeam backup for AWS is a robust solution from snapshots replication, full recovery within AWS granular file recovery and including recover outside of AWS implement Veeam backup for AWS today before you find out that your current solution isn't working. Now how about we get you back to that podcast, Jeff? I asked a question in the last session about estimating and that I always increase by 20% because estimation was always difficult. We're talking about, which I think is a little bit more challenging because you're talking about everything as a whole when engineers have access to spin up all the resources that they want. And you have your cloud #FinOps team who's trying to understand what are the business-driven factors around it. Now I need to forecast what my cloud costs are going to be and I forecasted this month at x when it's 10 times x. How are you able to help customers properly and accurately forecast?

Guest: Jeff

I think that one of the key pieces and one of the key best practices here is when we talk about #FinOps and we talk about cloud financial management and having those communication pieces, some of that is just reporting and having those conversations frequently. So I think that you need to have those conversations. In my opinion, when I was doing it and running a cloud center of excellence, we had a weekly meeting. We had a meeting with every single application team and the C I O and we all got in the same room and we walk through what we were trending like every single week. And if you do that, and if you go through some of those variance analyses as a group, then some things are going to stick out. And honestly, if you have that executive sponsorship up the chain, then they're going to care about this.

Guest: Jeff

They're going to care about cloud costs, they're going to care about if they're over or under-knowing there's an impact. And then if you do that and you have some success, you start predicting and you start improving some of that cloud financial predictability, then you're going to have even more success moving forward. And I think that that's another key piece is when you're having these conversations, and I'm not saying you should do any sort of name and shame type of dashboard, but that's exactly what I did before I named in Shams. Like, Hey, these, you're going way over. Why are you going over and talking through it and saying, is it legit? Is that variance to the forecast or the budget, whichever one you're going based on? Is it legit? Is it justifiable or do we need to mitigate it? There are some tools that we have like budgets and cost anomaly detection, which I know some folks have come on your show and talked about.

Guest: Jeff

You can do that in an automated way. You can try and set up some of those proactive cost controls to notify you before you ever go over. So you set a budget, say you're using a W's budget and you set a budget at, I don't know, a thousand dollars for this specific linked account, you can set a threshold to say, don't tell me when I go over, tell me when I'm forecasted to go over. So getting those alerts early and often will help mitigate some of that as well. You don't have to do the automated method. You could certainly just go through and look at the historical usage and just do that on a manual basis. But there are some tools like those that can help you make it a little bit more automated. But again, communication is key. Having those conversations and making sure that everyone's on the same page and we have that common cost and common #FinOps language.

Host: Jon

Jeff, I utilize budgets for my AWS accounts where I have the budgeting alert that says, alert me when I am three-quarters of the way through my budget on what I'm doing. And I'll look at it and be like, all right, is this real? Is this legit? Am I on track for what I'm doing? And if I look at it at a certain time of the month, I'll be like, all right, I'll be within my budget for it. But when you do the budgeting and alerts for a major company and you try to do your estimation per application, and now the budget's increasing for this application versus that application, the variable of cloud is one of the things that most companies struggle with because right now they're trying to cost optimize, right? That's the economy that we're in. How do you cost-optimize an environment but properly forecast your entire cloud cost?

Guest: Jeff

It can be tough to balance, and especially as you're thinking about forecasting and optimizing together, one of the things that you need to do is again, have those conversations, but as you're going through the optimization, there are a lot of things that you can do and your impact in both your cost and your usage that impact not just what you're running, but it will impact the forecast. So there's a lot of moving parts. There's a lot to sit here and try and juggle. So if you do things like buy a savings plan or if you do things like the right size, or if you do things like improved storage classes, that's going to have a could be significant impact depending on what you're running to your forecast. And so I think when you're going through those optimization opportunities, again in having those #FinOps teams set up whenever you have the conversations and say, Hey, let's talk about ways that we can optimize.

Guest: Jeff

We need to, and sometimes it's top-down and sometimes it's bottoms up with we need to optimize. We need to run more efficiently. Let's go through it, let's build out a roadmap. Let's build out an action plan so to speak and say, these are the things that we are going to target. Let me pick out these optimization opportunities that are going to be either the low-hanging fruit and have we could think about a graph, right, of the level of effort and then the level of savings. Let's think about the ones that we can execute immediately, right? Low-hanging fruit. What can we do right now to lower the bill versus what things will take a little bit more time that might be worth it and try to build that into the forecast? Maybe you have an opportunity to buy a savings plan today and you could save 50%.

Guest: Jeff

Well, then you can do that, execute it, and then go build that into the forecast. But maybe there's a modernization play where you say, you know what? We're using these intel-based instances. What if we moved everything to graviton? That's a little bit of a heavier lift. You're not going to do that in a day. That's going to take a significant amount of engineering hours to move everything over and recompile the code and all the steps that are required. But you could think through that and think, well, I have this action plan in place. We're going to say it's going to take three months. I don't know. I'm pulling that out of thin air. But if it takes three months, you could think I'm going to trickle that into the forecast. Maybe we have 10% done a week over those 10 weeks, and then we're going to go through and we build that into the forecast too. So I think it goes both ways and depends on what's more important. And you're right, optimization is a very hot topic right now and it's a conversation we have pretty much every single day. How do you do that? I think you can do both. I think you can optimize well and also forecast well. You just have to all sort of be on the same page.

Host: Jon

I agree with you. Jeff. What are some of the ways that you're helping to improve cloud financial predictability or that you suggest for customers?

Guest: Jeff

I think that goes back, and I think it ties in a little bit with that variance analysis. So you think through what's going on in the cloud, why or do I even have these variances? Because you're going to have variances, you need to find those and then do that root cause analysis and then try to mitigate those variances where you can use the tools as I mentioned, budgets, cost anomaly detection to watch for those variances. You can monitor it yourself manually. And then you need to think through why was this variance there. Who should be notified? Are they justified? And then take some action. And once you get a handle on that, once you sort of get that mechanism going, establish that flywheel. Hopefully, you can automate this sum and you get out of the way of doing it manually, but then you get this done on an X number of basis, then you're improving that financial predictability and you're able to better forecast those changes or stop those variances eventually from happening in the first place. If everyone is on the same page and if everyone is learning about #FinOps and learning about these tools, maybe you can stop some of these variances from happening in the first place.

Host: Jon

And are there any steps that you suggest that customers take to achieve this

Guest: Jeff

Personally? You said you use AWS budget. I would use AWSs budget and cost anomaly detection together. They work a little bit differently. So if you set that threshold and say it's going to be a thousand dollars a month, you can either set up, once I cross it, I'm going to get a notification or as you mentioned, once it's forecasted to go past that, I'm going to get a notification. What it doesn't catch is some of that anomalous spending where it might not cross a certain threshold. Maybe you're spending and averaging $10 a day, but then it spikes up to 101 days and then it goes back down to 10. Well, it never really crossed a threshold. It never crossed a thousand dollars. It never caused you to be forecasted more than a thousand dollars, but something changed. You wouldn't have just gone 10 x for no reason, but if you have cost anomaly detection enabled, it will flag that too.

Guest: Jeff

So when you use the two in conjunction, it can be a powerful tool or really two powerful tools to improve that financial predictability and try to be more proactive about it and have less of the, oh my gosh, why did cloud cost go up? And you can have more of the conversation of things going up now, or things did, and we actively mitigated it before it ever became a problem. And that's something that seems like it should be a well-known principle, but you would be surprised by the number of conversations that I have and we have about customers who have sticker shock. I think some of that's just establishing and getting that cloud financial management, getting that #FinOps mindset, understanding the best practices, but it's still something that we're trying to educate constantly. And I'm happy that people are tuning into podcasts like this and people are going to conferences, #FinOps X. It's a new kind of evolving, emerging discipline that I think once we get some of the tooling down and have some best practices and knowledge sharing amongst ourselves, amongst the community to sort of move this forward, I think we're all going to be better off for it. And I think this will look into the tools we use and the methodologies, and hopefully, we can automate a lot of this. I think in the next three to five years, it will look significantly different in a very positive way.

Host: Jon

I don't think there's one tool that one size fits all with the tooling, right? AW S has a subset of tools that are unique and available to you. They're native, they're built into the application. There's awesome third-party tooling that can help you reserve instances, SPSS properly forecasting, and visibility within all your environments. There is the cloud #FinOps community, the conversations, the gotchas, and the problems that they came across that can help you save some of these. I think that's very key. The Intel-based, the GRAVITON based, did you know there's an m D base that will do some of those and save a lot of the cost savings? So there are three different types that different types. If you know what you can use and properly kind of benchmark your application, there's cost savings anywhere. Now, the cloud is a variable cost. You can get all your applications there as quickly as possible. But I, as Jeff said, I think if you do your proper homework and you build a team around it, you can properly budget forecast. And in our previous ES episode, we talked about estimating your cloud cost. Jeff, before we wrap things up, what are some of the key things that you suggest for not only the budgeting and the forecast that we can leave with the audience right now?

Guest: Jeff

I would say that whenever you think about accurately forecasting those cloud costs, I think that it just boils down to, my opinion, establishing lines of communication across the board and figuring out what are those demand drivers that drive the business. What are the most important things and how is that going to influence the forecast and the roadmap? And as I said, I was doing this for a large travel company. I certainly had felt overwhelmed in the beginning, but the more that you kind of get into that motion and the more conversations you have and the more knowledgeable you can make yourself and learn from those folks, and then also have them teach you about what's going on, whether you need to upskill in some of the areas around technicality or whether you need to upskill around the areas of the what's going on financially, whether you just need to understand maybe at a higher level, like what's going on and how this impacts the strategic areas of your business. I think that that's the key piece is having those conversations and making sure that everyone is speaking that common cost language. Because if everybody's on the same page and everybody has the knowledge across the board, everyone's going to be better off for it and you'll have better communication and you'll get more accurate forecast, you'll run more efficiently. There's plenty of data and there are plenty of benchmarks and studies that have been done that show how #FinOps and how cloud financial management improve those outcomes for your business.

Host: Jon

Proper reporting, cloud #FinOps, budgeting, forecasting. Jeff, it's time to wrap up our topic today on budgeting and forecasting your cloud calls. Thank you so much for joining me.

Guest: Jeff

Thank you so much, Jon, for having me on again. A lot of fun. Maybe we'll do it again in the future.

Host: Jon

Most definitely everybody. Jeff Bloom, who's a senior optimization solutions architect at AWS on the optics team. You've been watching the Jon Myer podcast. Don't forget to hit that, like subscribe and notify, because guess what, as always, we're out of here.