Billing for Cloud Resources: Understanding Your Needs and Available Solutions
Billing for or allocating cloud usage across a large set of customers within an enterprise is an essential part of delivering a cloud services business or managing cloud costs internally.
Managed Service Providers (MSPs) make a living reselling cloud resources and need to create invoices for their clients. Increasingly, enterprises are beginning to emulate MSPs, as they need to generate reports for chargeback or showback purposes and as they embrace FinOps.
Doing this accurately, consistently, and efficiently for AWS and other cloud environments – at scale – is complex. The right toolset is critical.
The introduction of AWS Billing Conductor (ABC) provides an opportunity to revisit the steps in the billing process. We can also identify the key capabilities needed for native and external solutions when addressing the invoicing component of FinOps.
The Billing Process and Requirements
First, let’s understand the billing process and relevant terminology, for a typical MSP or reseller. Many of these concepts are also relevant to an enterprise. The process can be outlined in four steps: rating, direct usage allocation, shared resource allocation and invoicing or billing.
1. Rating is the price set for a type of cloud resource or service. Some organizations may want to simply charge the same price they pay for a resource to the end user, but often organizations like cloud resellers and service providers want to apply custom rates.
Resellers profit from buying cloud services and selling them with a markup or uplift. An EC2 instance that costs the MSP $1/hour could be charged to the client at $1.20/hour by applying a 20% uplift. Markdowns can be applied as well, such as a 10% discount. Some invoicing solutions allow for a complete custom rate or dollar amount markup or markdown. Additionally, you might want to apply stacking rules where the order is significant. In the following example, it makes a difference whether the dollar or percentage charge is applied first or last.
Scenario | Dollar-First | Percentage-First |
---|---|---|
AWS Bill | $1.00 | $1.00 |
Markup #1 | $0.20 | 20% |
Markup #2 | 20% | $0.20 |
Reseller Formula | ($1.00 + $0.20) * 1.2 | ($1.00 * 1.2) + $0.20 |
Reseller Bill | $1.44 | $1.40 |
In addition to pricing for common cloud services, MSPs need to consider special charges that are included with each invoice, such as AWS Credits, Tax, and Support. Do they keep credits to themselves or share them with clients? Do taxes need to be charged? Do they want to split support charges across their clients rather than pay for that cost themselves? And how much do they apply to different groups of customers? An invoicing tool should accommodate these needs.
2. Direct usage allocation refers to associating the cost of each resource – whether it’s a computing instance, a storage device, or even an IP address – that has an identifiable owner. Most commonly, tagging is used to do this, so when it comes time to generate invoices, users can quickly filter accounts by tags to generate the right bill for each department or client.
Cloud usage and organizations change over time, so tags need to be managed over time. Inconsistencies with tagging terminology can occur – often created when companies merge or get acquired – and create problems. For example, two different companies could use different tagging standards to mean the same thing, such as dept = prod and Department = Production. Without a consistent standard, resources might not be allocated correctly or might not get invoiced at all. That’s why it’s so important to implement a solid tagging strategy and the right tools.
3. Shared resource allocation is the practice of taking a shared service or large cloud purchase and dividing it up across a set of customers.
A common example is Reserved Instances (RIs). RIs are long-term (one- or three-year) commitments for virtual machine usage, with a substantial discount of up to 72%. Native cloud providers automatically distribute that discount among accounts in a consolidated bill, regardless of which account paid for the RI. Resellers who want to achieve profit, a.k.a. arbitrage, by buying RIs at a discount and allocating them to their clients while keeping all or some of the discount, need an invoicing solution that can automatically unshare RIs. This will allow the on-demand or discounted price to be charged at invoice time.
Another example of a shared resource is AWS’s support which may be billed to the MSP, reseller or central IT department and ought to be allocated. Tagging capabilities, in the form of Tag Splitting, again become important as they allow for dividing the cost of that shared resource across different clients or organizations by a custom percentage.
4. Invoicing or billing is the last step to package all the charges into a documented bill for a customer. An invoice is often generated from millions of rows each month per customer based on the AWS Cost and Usage report (CUR). Often, adjustments sometimes need to be made after the fact, meaning a client’s invoice might need to be regenerated again. Be careful if there is a cost to generate each invoice, either in labor or software fees or both. If so, every time you generate an invoice, the extra expense and effort can have a material impact on profitability.
5. Margin is key to success for service providers. The ability to buy cloud resources at a discount and sell them at list price or something in between is how to improve profits.
Billing and Cloud Governance
In addition to having a strong billing process that maximizes profitability and efficiency, it’s important that the billing tools enable flexibility in how services are delivered. For example, you may want to charge different groups of customers different rates based on what cloud services are being delivered or their size. You may even want to be able to create bespoke agreements with individual customers.
At the same time, many service providers or central IT departments want to govern their cloud environments consistently to ensure costs, security, compliance, and resources are optimized. Therefore, MSPs should ensure they can apply whatever billing and governance rules they want against a group of customers, versus having to make tradeoffs of viewing all accounts the same. For those that service multiple clouds, such as AWS, Azure, and Google Cloud, look to drive consistency across those environments.
Excel vs. AWS Billing Conductor vs. CloudCheckr: Sizing up Cloud Billing Solutions
Once billing needs are well understood, service providers and cloud resellers must implement the right technology to support their needs.
Historically, to create an invoice, an AWS bill would be exported to Excel where an analyst would try to slice and dice the charges and then apply them to the different departments or clients. We all know Excel – both its benefits and limitations. The reality is that Excel just isn’t a solution for anything other than billing a few small customers in a very simplistic way: it wasn’t designed to handle the amount of data from a CUR file, requires significant manual labor to generate an invoice, a process that is error prone.
There’s an understandable instinct to use AWS tools when managing AWS services because they are built in. But AWS Billing Conductor is not free. There is a per-bill cost, which can be significant, so it makes sense to look at alternatives. MSPs and resellers may have more success with a third-party solution like CloudCheckr compared to AWS Billing Conductor.
Let’s compare CloudCheckr’s capabilities to AWS Billing Conductor across the previously outlined process.
- Rating
- Direct Usage Allocation
- Shared Usage Allocation
- Invoicing or Billing
- Profit Margins
- Management Considerations
What is AWS Billing Conductor?
AWS Billing Conductor (AWS BC or ABC) is an AWS premium feature that generates bills with some helpful customization capabilities. For example, with ABC a cloud reseller can add a premium of 10% to EC2 instances to generate profit. Resellers can also mark down resources by a percentage to offer a discount. Let’s see how ABC compares to a purpose-built solution from CloudCheckr.
Rating Markup and Markdown
With ABC, both discounts and markups can be assigned globally or per service. Custom rates are assigned only by percentage. Custom dollar rates are not supported, meaning there is no option for stacking percentage and dollar markups or markdowns.
Feature | AWS Billing Conductor | CloudCheckr |
---|---|---|
Global Markups/Markdowns | Yes | Yes |
Per-Service Markups/Markdowns | Yes | Yes |
Percentage-Based | Yes | Yes |
Dollar-Based | No | Yes |
Stacked (Percent/Dollar) | No | Yes |
Direct Usage Allocation
Tagging is required to allocate each cost to each owner. Sometimes tagging is inconsistent and a Tag Mapping mechanism is needed to align such resources. ABC accommodates Cost Allocation tags for billing purposes but does not have advanced tag management to correct tagging issues.
Feature | AWS Billing Conductor | CloudCheckr |
---|---|---|
Basic Tagging | Yes | Yes |
Tag Mapping | No | Yes |
Shared Usage Allocation
Resellers might want to split support charges across their clients rather than absorb that cost themselves. Tag Splitting, mentioned earlier, is a great way to do just that, enabling MSPs to factor AWS Credits, Tax, and Support charges in with each invoice.
AWS Billing Conductor does not handle AWS Credits, Tax, or Support charges. ABC does not offer Tag Splitting to split shared resources across billable clients. ABC shares Reserved Instances and Savings Plans with the accounts placed within the same billing group, irrespective of your sharing preferences in the standard billing domain. Since ABC does not facilitate Reserved Instance Unsharing, ABC users must try to do this manually.
Feature | AWS Billing Conductor | CloudCheckr |
---|---|---|
Tag Splitting | No | Yes |
AWS Support Charges | No | Yes |
Taxes | No | Yes |
AWS Credits | No | Yes |
Automated RI Unsharing | No | Yes |
Invoicing or Billing
You’ve probably heard the saying “It takes money to make money.” But if it costs hundreds of dollars just to create an invoice, you could quickly go from profit to loss at the end of each month. Be careful if an invoicing solution is priced per account. Given the ephemeral nature of the cloud, you might not know how many accounts a client’s bill will have from month to month. Even a low revenue client could have a large number of accounts, if the average account cost is small.
AWS Billing Conductor charges based on the number of accounts, starting at $8.25/account to as low as $5.25/account for 2,000+ accounts. AWS examples on the ABC pricing page show a cost of over $10,000 per month for an AWS customer with 1,400 accounts.
From the AWS Billing Conductor pricing page:
Consider a multi-tenant management account managed by an AWS solution provider which has exhausted it’s free trial of AWS Billing Conductor. The solution provider places all 1,400 member accounts into their own billing group, as each end customer wants a view at the rates they’ve negotiated with the solution provider (e.g., 2% discount from the AWS on demand price for all services). The total amount of AWS charges recomputed is $2,346,053.
The cost would be $10,200, or 0.435% of recomputed spend: (500 accounts * $8.25 per account [$4,125] + 900 accounts * $6.75 per account [$6,075] = $10,200)
Profit Margins
AWS Billing Conductor has a Margin Analysis report that shows the difference between AWS’ cost and what the reseller charges, based on price uplifts. However, it does not directly address RI Unsharing which delivers Arbitrage, or significant profits from buying RIs at a discount and applying them to customers’ workloads and charging On Demand rates (or close to it).
Branding Concerns
AWS Billing Conductor does not deliver a finished invoice to an end user. That would still require manual intervention by a Managed Service Provider. CloudCheckr generates invoices, via PDF, with the MSP’s logo, on-demand or emailed on a schedule.
Management Considerations
AWS Billing Conductor requires AWS Organizations in order to function. This requires that billing groups fall within a management organization. CloudCheckr supports AWS Organizations but also has Multi-Account Views (MAVs), so you can manage groups differently than you bill for them, if you prefer.
Additionally, ABC is strictly for AWS and not multi-cloud. MSPs, however, need to cater to their customers, and increasingly that means supporting more than one cloud platform. Finally, ABC does not have multi-tier support to accommodate distributors who have their own reseller customers.
Feature | AWS Billing Conductor | CloudCheckr |
---|---|---|
Does not require AWS Organizations | No | Yes |
Multi-Cloud Support | No | Yes |
Multi-Tier Distributor Support | No | Yes |
AWS Billing Conductor: Pros and Cons
AWS Billing Conductor is suitable for several types of organizations. If the total number or monthly resource records in your entire cloud bill is below a million, then the cost of generating one bill via ABC should be zero. If custom markups or markdowns can be percentage-based, instead of dollar-based rates, then ABC can handle it. If you use AWS Organizations and are okay treating billing groups the same as management groups, then ABC is an option. If you have no need to charge for AWS Credits, Support Charges, or Tax, then the fact that ABC doesn’t handle those items won’t be an obstacle. Also, if the native tagging support is all you need because you don’t have inconsistencies or the need to split the cost of shared resources, then ABC can probably suffice. If you don’t need to automatically control how RI discounts are applied, then you can use ABC. All the above situations need to be met for ABC to be a solution. If any one of those requirements applies, then you need to look for another option.
CloudCheckr: The Complete Invoicing Solution
CloudCheckr is designed to address the needs of Managed Service Providers. Indeed, based on ChannelE2E’s rankings, 80% of the Top Ten Public Cloud MSPs use solutions from CloudCheckr, part of Spot by NetApp. One of the main reasons for this is CloudCheckr’s robust invoicing capabilities, including Tag Mapping, Tag Splitting, Automated RI Unsharing, Custom Rates (dollar and percent), and support for Credits, Tax, and AWS Support charges. CloudCheckr works with but does not require AWS Organizations, is available for multiple clouds, and costs nothing to generate each invoice.
Of course, CloudCheckr does more than invoicing. Cost Optimization capabilities can help save money on wasted or wrongly sized resources. White labeling allows resellers to display their own logo within the platform and on PDF invoices. CloudCheckr includes security and compliance checks as well as support for Well-Architected Reviews, enabling service providers to bring additional value to customers’ managed cloud services.
AWS Billing Conductor vs. CloudCheckr: The Key Takeaway
When choosing an invoicing solution, there are several concerns to watch out for. The limitations and significant extra cost of AWS Billing Conductor make it practical and affordable only for simple use cases. Larger enterprises and MSPs should consider a purpose-built solution like CloudCheckr to generate invoices for clients with multiple millions of records or if they need flexibility and depth beyond basic billing.
Cloud Resources Delivered
Get free cloud resources delivered to your inbox. Sign up for our newsletter.
Cloud Resources Delivered
Subscribe to our newsletter