AWS Sustainability: Approaches to Shrink Your Workload's Footprint
As concerns grow over the environmental impact of technology, companies are looking for ways to make their AWS workloads more sustainable. Let us explore various approaches AWS users can take to optimize their workloads for improved energy efficiency and lower carbon emissions.
Anand Malayil Sasi
Amazon Employee
Published Feb 27, 2024
With the rise of cloud computing, it's important to consider the energy consumption and carbon emissions associated with our IT operations. AWS has made significant investments in renewable energy and energy efficiency, but as cloud users, we also have a responsibility to ensure that our workloads are designed and operated in a sustainable manner.
We often tend to think that the steps towards making our AWS workloads more sustainable always involve adoption of entirely new services. This is not necessarily true. There are several capabilities of common AWS services that a majority of the customers use which can make impactful contributions to a sustainability.
Lets us take a look at some of the approaches and AWS capabilities that you can leverage for being more sustainable
When you are thinking about sustainability, Auto scaling capabilities of AWS services might not be the first thing that pops up in your mind. However, this is a very powerful tool in improving sustainability of your AWS workloads. Depending upon the application in scope, it might also be a quick win towards being more sustainable.
Various AWS services such as Amazon EC2, Amazon ECS, Amazon DynamoDB and AWS Lambda support auto scaling. Auto scaling allows AWS resources to automatically scale up or down based on the load on the application. This helps sustainability because it means resources are not left idle when not needed. Auto scaling only launches the amount of AWS resources required to handle the current load based on the configuration you have defined. So computing power is optimized and not wasted. Since auto scaling responds to changes in demand, it can help right-size resource usage. For example, auto scaling can increase capacity during peak hours but decrease it during off-peak times. By only using what is needed, organizations reduce their energy consumption and carbon footprint. Auto scaling also helps ensure application availability by launching new instances if some fail. The elasticity of auto scaling supports sustainable growth as application demand increases. Overall, the automation and optimization of auto scaling leads to more efficient resource utilization. This minimizes waste, saves energy, reduces costs, and promotes environmental sustainability.
Another unsuspecting AWS service that can be extremely powerful in your sustainability journey is Amazon CloudWatch. Most of the customers are already using it but it is often overlooked in its capabilities in helping you with your sustainability posture.
Amazon CloudWatch allows you to monitor metrics for all your AWS resources like Amazon EC2 instances, databases, storage etc. This gives visibility into resource utilization and helps optimize costs by ensuring resources are right-sized based on actual demand. Over-provisioning of resources leads to wastage. By setting up and monitoring relevant and purposefully designed Amazon CloudWatch metrics, you can set alarms that trigger automated actions such as Auto scaling that we discussed in the previous section or even complete shut down of relevant services in cases where it is no longer being used.
Amazon CloudWatch logs allow collection of operational data which can provide insights. For example, analyzing application logs may reveal inefficiencies that can be addressed to reduce resource footprint. You can also monitor custom metrics published by your application using Amazon CloudWatch providing crucial insights to optimize processes which in-turn optimizes the usage of underlying AWS infrastructure components and reduce emissions.
In a large multi-account AWS environment, The Amazon CloudWatch dashboards provide a centralized place to view metrics and logs from all your AWS accounts, helping you to get a consolidated view of performance and usage for better decision making. This visibility into operations aids sustainability efforts.
This might sound as an obvious step however, most of the times, we might think of shutting down unused AWS resources as a cost saving measure. It is important to recognize that this is also a very impactful steps towards sustainability. Idle AWS resources still consume energy even when not in active use. Shutting them down helps reduce carbon footprint by lowering overall energy consumption. Automating the shutdown and startup of AWS resources based on demand patterns further optimizes resource usage. For example, shutting down test/development environments after office hours using automated scripts is a recommended best practice. In addition to approaches such as stopping and starting AWS resources as per requirement, establishing a process of decommissioning AWS resources at end of life following the defined change and release management process ensures a sustainable infrastructure.
The sustainability pillar of the AWS Well-Architected Framework focuses on reducing environmental impacts and resource usage. It provides guidance on measuring energy consumption and efficiency to help lower costs and carbon footprint. Architecting for efficiency from the start helps optimize resource usage which is important for sustainability goals. The framework recommends designing infrastructure that uses least amount of resources possible to meet requirements.
The key areas the sustainability pillar covers include:
- Alignment to demand - Ensuring capacity and usage match workload requirements to avoid over-provisioning.
- Software and architecture - Designing applications to be efficient, reusable and long-lived. Using managed services and serverless technologies.
- Data - Implementing data management best practices like archival storage, data deletion and compaction.
- Hardware and services - Choosing optimal instance types and deploying resources in a balanced way across AWS Regions. Shutting down unused resources.
- Energy efficiency - Leveraging energy-efficient instance types, auto scaling and rightsizing.
The improvement plans recommended by the framework suggest actionable steps to make workloads more sustainable over time. The Well-Architected Framework is not something that you do once and forget. Regularly reviewing workloads against the sustainability pillar and following the guidance can help continuously improve your sustainability posture.
AWS Graviton is a custom-built ARM-based processor designed by AWS for cloud workloads. Graviton is available across several AWS services such as Amazon EC2, Amazon Aurora, Amazon RDS, Amazon ElastiCache, Amazon OpenSearch, Amazon EMR, AWS Lambda and AWS Fargate. Graviton-based EC2 instances help customers reduce their carbon footprint by using up to 60% less energy for the same workload performance compared to comparable x86-based instances. This significantly improves efficiency. Migrating eligible workloads to Graviton and using other services like spot instances, scheduler etc can further optimize resource consumption on AWS and reduce environmental impact.
The title of this section is a quote from Amazon CTO Werner Vogel's keynote speech at AWS re:Invent 2023. Optimizing your cost inherently optimizes your workload for sustainability as well. AWS provides various tools and services that you can leverage to optimize the cost of your AWS workload such as:
- AWS Cost Explorer - Allows you to visualize, understand, and manage your AWS costs and usage over time. It helps identify opportunities for cost savings.
- AWS Compute Optimizer - Provides recommendations for optimizing compute resources like EC2 instances to improve performance and reduce costs. It analyzes workload patterns to provide tailored recommendations.
- AWS Trusted Advisor - Provides real-time guidance to help you provision your resources following AWS best practices. It includes cost optimization checks that analyze your resources and usage to help reduce costs.
Make use of these capable AWS services to optimize the cost and in-turn sustainability of your AWS workload.
Sustainability is as very important topic as we need to ensure that the environment is protected and preserved for future generations. It is our responsibility to reduce the impact of climate change, which is a major threat to the planet and its inhabitants.
AWS aims to power all of its global infrastructure with 100% renewable energy by 2025. It is also committed to achieving Amazon's goal of net-zero carbon emissions by 2040. AWS provides services and solutions such as the Customer Carbon Footprint Tool that can help customers track their own carbon footprints and sustainability metrics and make responsible choices in running their businesses.
Through this post, we tried to understand some of the approaches you can take towards a more sustainable future for your cloud workloads. Together, let us leave a good planet for our future generations.
Any opinions in this post are those of the individual author and may not reflect the opinions of AWS.