Search for Well Architected Advice
< All Topics
Print

Select resource type, size, and number based on data

Choosing the appropriate type, size, and number of resources is crucial in minimizing costs while meeting workload requirements. This approach not only reduces waste but also ensures that resources are efficiently utilized based on actual data and previous workload characteristics.

Best Practices

Analyze Workload Characteristics

  • Collect data on workload patterns, including compute usage, memory consumption, input/output operations, and peak usage times. This helps in understanding the exact resource needs.
  • Utilize AWS CloudWatch metrics to monitor usage over time, which can reveal opportunities for right-sizing resources to avoid over-provisioning.
  • Tools like AWS Compute Optimizer can analyze existing resources and suggest optimal instance types based on historical performance data, enhancing cost efficiency.
  • Review historical data from similar workloads to establish benchmarks for selecting resource types and sizes.

Leverage Automated Scaling

  • Implement Auto Scaling for your applications, allowing AWS to automatically adjust the number of instances based on real-time demand, thus minimizing costs associated with idle resources.
  • Set scaling policies based on utilization metrics to ensure resources are scaled up during peak times and scaled down during off-peak periods.
  • Monitor scaling activities and adjust policies as necessary to strike a balance between performance and cost.

Evaluate Pricing Models

  • Analyze the different pricing options available for AWS resources, including On-Demand, Reserved Instances, and Spot Instances, to select the most economical choice for your usage patterns.
  • Consider committing to Reserved Instances for predictable workloads to reduce costs over time compared to On-Demand pricing.
  • Regularly reassess your resource utilization and adjust your purchasing strategy as necessary to align with changes in workload or application usage.

Conduct Cost Reviews

  • Regularly review your AWS bills and usage reports to identify underutilized or idle resources that can be downsized or terminated.
  • Use AWS Cost Explorer to visualize spending patterns and make informed decisions about resource allocation based on data-driven insights.
  • Establish a routine for reviewing resource allocation against workload demands to ensure continuous optimization.

Questions to ask your team

  • What data do you have on the historical performance of similar workloads?
  • How do you monitor resource utilization to ensure it meets your workload requirements?
  • Are you regularly optimizing resource type and size based on metrics and usage patterns?
  • What tools or processes do you have in place to analyze the cost-effectiveness of resource decisions?
  • Do you review and adjust your resource allocation as workloads change over time?

Who should be doing this?

Cloud Architect

  • Analyze workload characteristics to determine optimal resource needs.
  • Evaluate historical performance data for accurate sizing recommendations.
  • Select appropriate resource types based on workload requirements and cost-efficiency.
  • Collaborate with development teams to understand application demands and usage patterns.
  • Monitor resource usage and costs, and adjust selections as needed.

DevOps Engineer

  • Implement automation for resource provisioning based on predetermined sizes and types.
  • Collect and analyze utilization data to provide insights for cost optimization.
  • Work with monitoring tools to track performance and spending.
  • Adjust resources in real-time based on workload changes and requirements.

Financial Analyst

  • Assess overall cloud spending against budget and cost targets.
  • Identify trends in resource usage to recommend adjustments for efficiency.
  • Collaborate with technical teams to align cost management strategies with operational goals.
  • Provide reporting on cost optimization initiatives and their impact on budgets.

Product Manager

  • Define business needs that drive resource utilization and cost decisions.
  • Prioritize features based on cost versus value considerations.
  • Work with architects to align technology choices with product goals and budget constraints.
  • Facilitate communication between technical and financial teams to balance performance and cost.

What evidence shows this is happening in your organization?

  • Resource Size and Type Selection Template: A template to guide teams in selecting the appropriate resource sizes and types based on workload data, including fields for documenting compute, memory, and throughput requirements.
  • Cost Optimization Checklist: A checklist to ensure teams consider historical data and workload characteristics when selecting resources, helping to prevent overspending and resource waste.
  • Workload Characterization Report: A report format for documenting workload characteristics and previous performance metrics to support data-driven decisions for resource selection.
  • Cost Optimization Dashboard: An interactive dashboard that visualizes current resource usage, costs, and optimization opportunities based on historical workload data.
  • Resource Optimization Strategy Guide: A comprehensive guide outlining strategies for evaluating and selecting resource types and sizes based on workload data, including best practices and case studies.

Cloud Services

AWS

  • AWS Cost Explorer: Helps analyze costs and usage patterns, enabling users to make informed decisions regarding resource size and type.
  • AWS Budgets: Allows users to set spending limits and receive alerts when costs exceed predefined thresholds, promoting cost-effective resource management.
  • AWS Trusted Advisor: Provides real-time guidance to help users provision their resources following AWS best practices, including cost optimization recommendations.

Azure

  • Azure Cost Management + Billing: Tracks and manages Azure spending, offering insights into resource usage to optimize cost and size selections.
  • Azure Advisor: Provides personalized recommendations to help save costs and optimize your resources in Azure based on usage data.

Google Cloud Platform

  • Google Cloud Billing: Provides detailed billing reports that allow users to analyze costs by project, helping in resource allocation decisions.
  • Google Cloud Recommender: Uses machine learning to provide recommendations for cost optimization on GCP resources, guiding efficient resource utilization.

Question: How do you meet cost targets when you select resource type, size and number?
Pillar: Cost Optimization (Code: COST)

Table of Contents