Desktop and Application Streaming

Methods of allocating your AppStream 2.0 costs to your business units

Enterprises really like the pay-as-you-go model that Amazon AppStream 2.0 provides, only paying for the instances that they provision. Enterprises are using AppStream 2.0 to replace application streaming technologies that stream line of business and graphics apps to employees, contractors, and temporary workers without acquiring, provisioning, or operating any hardware or infrastructure. However, AppStream 2.0’s model is different than the traditional application streaming technologies that are based on provisioning for peak capacity, even during nights, weekends, and holidays when load is lower. Within an enterprise, AppStream 2.0 is often managed by a central IT team that partners with the business units to stream applications as a shared service. The central IT team then calculates the usage associated from that business unit’s users, and allocates it to the business unit. Allocating the costs to the business units enables business units to make business decisions on which applications they need, and experience versus cost (for example, Always-On versus On-Demand fleets, or the instance type their users use).

In this blog post, we will go over the common ways enterprises allocate AppStream 2.0 costs to their business units, using AppStream 2.0’s Usage Reports, and fleets that have been tagged with AWS Billing and Cost Management Cost Allocation Tags. The Usage Reports data and fleet-specific billing data provide all of the information needed to determine the cost allocation to the business units. The Usage Reports data provides per user data – how many users streamed, how long they streamed for, and from which fleets. The billing data, with tagged fleets, provides per fleet data – total fleet instance hours, and cost for that fleet. In previous blog posts, Johnson & Johnson showed how they use AppStream 2.0’s Usage Reports, and we showed how to estimate AppStream 2.0 costs using a simple pricing tool we released.

We will use an example to determine the cost for two business units using the common allocation types. The data for ExampleCo came from the Usage Reports feature, and billing data. ExampleCo maintains two AppStream 2.0 fleets – one for HR, and one for Finance. The HR fleet is Always-On, uses stream.standard.medium instances, and had a total of 200 instance hours in the month, with 150 instance hours used by two users – John for 120 hours, Mary for 30 hours. The Finance fleet is On-Demand, uses stream.compute.large instances, and had a total of 300 instance hours in the month, with 225 instance hours used by five users with about the same usage. The total cost for the month is $78.13, with the HR fleet costing $20, and the Finance fleet costing $58.13. Both fleets are in us-east-1, and have cost-allocation tags to identify the use case and business unit.

Using ExampleCo’s data, we can explore the various options IT has to allocate the costs back to the HR and Finance business units:

  1. Evenly divide costs by all users of a fleet
    HR: HR is allocated $20 total cost/2 users=$10 for John, and $10 for Mary
    Finance: Finance is allocated $78.13 total cost/5 users=$15.63 for each user.
  2. Per user cost allocation based only on usage, while IT maintains the buffer capacity that isn’t used by users
    HR: HR is allocated 120 hours*$0.10 per hour=$12 for John, and 30 hours*$0.10=$3 for Mary. The remaining $5 is not allocated to HR.
    Finance: Finance is allocated (225 hours*$0.25 per hour/5 users)=$11.25 per user, totaling $56.25. The stopped instance fee (buffer capacity) of (75 hours*$0.025 per hour)=$1.88 is not allocated to Finance.
  3. Per user cost allocation based on usage, but include buffer capacity
    HR: HR is allocated (120 hours*$0.10 per running instance hour)+((50 hours buffer capacity hours*$0.10 per running instance hour)/2 users) users)=$14.50 for John, and (30 hours*$0.10 per running instance hour)+((50 hours buffer capacity hours*$0.10 per running instance hour)/2 users)=$5.50 for Mary
    Finance: Finance is allocated (45 hours per user*$0.25 per running instance hour)+((75 hours buffer capacity hours*$0.025 per stopped instance hour)/5 users)=$11.63 per user
  4. Allocate the total cost to the business unit, without determining per user costs
    HR: HR is allocated the $20 fleet cost based on the cost allocation tag of business unit.
    Finance: Finance is allocated the $58.13 fleet cost based on the cost allocation tag of business unit.

Other considerations

While this blog covers how to allocate your AppStream 2.0 fleet streaming instance costs to users, you should also consider the image builder and other AWS resources your users are using to access their applications. For example, if you provide users an Amazon FSx file share, you should also consider how to allocate those costs back to your business units.

Conclusion

In this blog post, we walked through four common ways we see central IT teams in enterprises allocate the AppStream 2.0 costs to their business units. Allocating AppStream 2.0 costs to the business units provides them transparency on the costs for streaming applications to their users, and enables them to make the experience versus cost decision.