COST 5: How do you evaluate cost when you select services?

Amazon EC2, Amazon EBS, and Amazon S3 are building-block AWS services. Managed services, such as Amazon RDS and Amazon DynamoDB, are higher level, or application level, AWS services. By selecting the appropriate building blocks and managed services, you can optimize this workload for cost. For example, using managed services, you can reduce or remove much of your administrative and operational overhead, freeing you to work on applications and business-related activities.


Cloud products
Amazon S3 storage classes
AWS Total Cost of Ownership (TCO) Calculator

Best Practices:

Improvement Plan

Identify organization requirements for cost

  • Identify organization requirements for cost : Meet with team members from your organization, they include product management, application owners, development and operational teams, management, and finance. Prioritize the Well-Architected pillars for this workload and its components, the output is be a list of the pillars in order. You can also add a weighting to each, this can help indicate how much additional focus a pillar has, or how similar the focus is between two pillars.
  • Analyze all components of this workload

  • List the workload components : Build the list of all the workload components, this is used as verification to check that each component was analyzed. The effort spent should reflect the criticality to the workload as defined by organization priorities. Grouping together resources functionally improves efficiency, i.e. production database storage, if there are multiple databases.
  • Prioritize component list : Take the component list and prioritize it in order of effort. This is typically in order of the cost of the component from most expensive to least expensive, or the criticality as defined by organization priorities.
  • Perform the analysis : For each component on the list, review the options and services available and chose the option that aligns best with your organizational priorities.
  • Perform a thorough analysis of each component

  • Perform a thorough analysis : Using the component list, work through each component from the highest priority to lowest priority. For the higher priority and more costly components, perform additional analysis and assess all available options and their long term impact. For lower priority components, assess if changes in usage would change the priority of the component, and then perform an analysis of appropriate effort.
  • Select software with cost effective licensing

  • Analyze license options : Review the licensing terms of available software. Look for open source versions that have the required functionality, and whether the benefits of licensed software outweigh the cost. Favorable terms will align the cost of the software to the benefit it provides.
  • Analyze the software provider : Review any historical pricing or licensing changes from the vendor. Look for any changes that do not align to outcomes, such as punitive terms for running on specific vendors hardware or platforms. Also look for how they execute audits and penalties that could be imposed.
  • Select components of this workload to optimize cost in line with organization priorities

  • Select each service to optimize cost : Using your prioritized list and analysis, select each option that provides the best match with your organizational priorities.
  • Perform cost analysis for different usage over time

  • Define predicted usage patterns : Working with your organization such as marketing and product owners, document what the expected and predicted usage patterns will be for the workload.
  • Perform cost analysis at predicted usage : Using the usage patterns defined, perform the analysis at each of these points. The analysis effort should reflect the potential outcome, for example, if the change in usage is large, a thorough analysis should be performed to verify any costs and changes.