Search for Well Architected Advice
< All Topics
Print

Use software patterns and architectures that best support data access and storage patterns

Optimizing data access and storage is crucial for achieving sustainability goals. By understanding how data flows within your workload and minimizing resource consumption, you can significantly reduce the environmental impact of your applications while enhancing overall performance.

Best Practices

Analyze and Optimize Data Usage

  • Regularly review how data is generated, accessed, and stored to identify opportunities to reduce storage requirements. This helps lower energy consumption by shrinking data footprints and reducing the overhead needed to process data. Implement data lifecycle policies (e.g., archiving and deletion) to retire stale information and avoid unnecessary resource use.

Adopt Efficient Storage Architectures

  • Use storage solutions that match workload characteristics (e.g., object storage for infrequently accessed data, or block storage for low-latency data). This ensures you are allocating only the resources you truly need, lowering both costs and environmental impact. Consolidate underutilized storage where possible to achieve higher resource usage while reducing idle capacity.

Leverage Caching and Compression

  • Implement caching layers to reduce repeated data retrieval and redundant network calls. This can significantly decrease storage operations and traffic, minimizing resource consumption. Adopt compression strategies whenever feasible to further lower the data size, reducing the energy required to transfer and store information.

Questions to ask your team

  • How do you identify the most frequently accessed data and optimize its storage or retrieval to minimize resource consumption?
  • What strategies do you use to reduce unnecessary data transfer between services or environments?
  • How do you manage data lifecycle policies to move infrequently accessed data to lower-cost, more sustainable storage tiers?
  • Are you leveraging data compression or deduplication techniques to reduce storage requirements and associated energy usage?
  • How do you optimize your data models to ensure minimal overhead and efficient queries for your workload?
  • Have you considered edge-computing or content delivery strategies to reduce data transfer distances and network usage?
  • What mechanisms do you use to periodically review and retire data that no longer provides business value, thereby reducing resource utilization?

Who should be doing this?

Solutions Architect

  • Design software architectures that minimize redundant data operations
  • Leverage modular and scalable designs to reduce unnecessary resource usage
  • Evaluate and select data service patterns for optimal energy efficiency
  • Collaborate with developers to align solutions with sustainability goals

Data Engineer

  • Implement efficient data pipelines to reduce processing overhead
  • Optimize data formats, storage, and retrieval for lower resource consumption
  • Ensure data lifecycle policies that minimize data retention and optimize usage
  • Monitor and refine data access patterns for sustainable performance

DevOps Engineer

  • Automate deployments to ensure right-sized resources are used
  • Implement continuous monitoring and scaling policies for efficient operations
  • Collaborate on infrastructure-as-code to minimize unnecessary resource creation
  • Streamline CI/CD workflows to promote efficient releases and resource utilization

Sustainability Champion

  • Advocate for sustainability initiatives in engineering and architectural decisions
  • Provide guidelines and best practices for resource utilization and efficiency
  • Coordinate cross-functional efforts to reduce the carbon footprint of workloads
  • Establish KPIs and track progress toward sustainability targets

Product Manager

  • Define product requirements that prioritize low resource usage
  • Align sustainability objectives with product roadmap and user needs
  • Collaborate with technical teams to balance feature goals and sustainability
  • Communicate resource efficiency progress to stakeholders

What evidence shows this is happening in your organization?

Cloud Services

AWS

  • Amazon S3: Provides flexible storage with features like Intelligent-Tiering to optimize resource usage and minimize storage costs.
  • Amazon DynamoDB: Serverless key-value database that efficiently handles data access patterns and scales automatically to match workload demands.
  • Amazon Aurora: Relational database engine that offers high performance and availability while reducing the compute resources needed.

Azure

  • Azure Storage: Highly scalable object storage service that supports tiered storage to optimize data placement and reduce consumption.
  • Azure Cosmos DB: Globally distributed database service that automatically scales throughput to align with actual usage.

Google Cloud Platform

  • Cloud Storage: Scalable and cost-effective storage with lifecycle management for unused data to reduce resource utilization.
  • Cloud Spanner: Fully managed relational database service that automatically scales and adjusts compute resources based on need.
Table of Contents