How to Track Cost Allocation for Cloud Apps

25.09.2012

Instead of one very large instance, the right design approach is to use multiple smaller instances that can grow or shrink in number as appropriate. Of course, this requires the application be facile with respect to adding or subtracting resources while in operation. There are implications in terms of state and session management, load balancing, and application monitoring and management and these must be taken into account to ensure the application can respond to changing workloads.

2. Operations: Monitor utilization and terminate unneeded resources. As previously mentioned, lots of bad habits from the previous, upfront investment approach remain in cloud computing users. Probably the worst one is the habit of starting resources and never shutting them off, or, indeed, never monitoring them to determine whether they're being used or not.

In the pay-as-you-go world, every unused or underused resource is a hole down which you're pouring money. A service such as or one of its competitors can be enormously helpful here, but to my mind the financial tracking needs to be married to an operational tracking in which developers and system administrators are constantly monitoring resources to evaluate use, use levels, and potential design optimizations to reduce cost while still maintaining operational efficiency and required performance levels.

3. Finance: Evaluate total organizational spend. I've worked with a number of companies that have many, many AWS accounts and don't realize that by centralizing the spend, they would achieve greater discounts. While within some companies that decentralized approach is deliberate (aka ""), everyone will benefit from lower prices, so it makes sense to move to a collective bill.

4. Procurement: Negotiate pricing. While AWS posts its prices, if there is sufficient spend, it will demonstrate flexibility. Certainly every other cloud service provider (CSP) out there is very flexible on pricing, especially in a situation in which the account would be moving from AWS. Of course, it's critical to ensure other critical elements of the application, like availability and security, can be achieved in another cloud environment.