How Snowflake Optimized its Virtual Warehouses for Sustainability Using AWS Graviton
By Gabe Bryant, Cloud Engineering Sr. Manager – Snowflake
By Murray Stokely, Efficiency Architect – Snowflake
By Archana Srinivasan, Sr. Technical Account Manager – AWS
By Frank Dallezotte, Sr. Solutions Architect – AWS
Snowflake enables every organization to mobilize their data with the Snowflake Data Cloud. Customers use the Data Cloud to unite siloed data, discover and securely share data, and execute diverse analytic workloads. Wherever data or users live, Snowflake delivers a single data experience that spans multiple clouds and geographies.
Snowflake understands that organizations and individuals need to act immediately to mitigate climate change and protect our planet. Hence, it committed to adopting innovative sustainable practices and prioritized sustainability in daily operations to reduce the company’s global environmental footprint.
Snowflake aspires to be a leader in environmental sustainability, and its goal is to provide the best data cloud with the lowest carbon footprint on the planet.
Snowflake is an AWS Competency Partner and AWS Marketplace Seller that has reinvented the data warehouse, building a new enterprise-class SQL data warehouse designed from the ground up for the cloud and today’s data.
AWS and Snowflake Sustainability Efforts
In December 2021, Amazon Web Services (AWS) launched the Sustainability Pillar of the AWS Well-Architected Framework which defines sustainability in the cloud as a “continuous effort focused primarily on energy reduction and efficiency across all components of a workload by achieving the maximum benefit from the resources provisioned and minimizing the total resources required.”
Snowflake separates compute and storage resources in its architecture, which enables users to scale processing power independently of their storage needs. This type of architecture allows Snowflake to quickly take advantage of cloud sustainability best practices and pass those savings on to customers.
Snowflake made progress towards its sustainability goals related to carbon emissions by using instance types with the least impact. AWS Graviton-based instances offer the best performance per watt energy use in Amazon Elastic Compute Cloud (Amazon EC2) by leveraging the new energy efficient AWS Graviton processors, which use up to 60% less energy for the same performance than comparable EC2 instances.
Snowflake uses AWS Graviton-based instance types for customers operating on AWS, which allows Snowflake customers to leverage AWS’s innovative energy efficient products.
Snowflake compute pricing is based on the actual usage of resources only when the customer is performing work through the consumption of Snowflake credits. Virtual warehouses consume credits as they execute queries, load data, and perform other data manipulation language (DML) operations. In this post, we will refer to Snowflake compute usage in terms of Snowflake virtual warehouse credits.
Snowflake reduced its carbon footprint per Snowflake virtual warehouse credit by an estimated 57% by transitioning workloads from x86 to Graviton-based instances. Snowflake is also delivering a 10% performance benefit for customers after transitioning to Graviton-based instances.
Transitioning Snowflake virtual warehouses from x86-based instances to instance families based on AWS Graviton processors helped Snowflake move towards its sustainability goals, and further optimize its cloud environment for cost and performance.
Plan, Transition, and Optimize
Snowflake’s transition to Graviton-based instances included planning considerations such as operating system (OS) support, language and runtime dependencies, and build systems.
Snowflake worked with its AWS account team and Graviton experts to transition the application and associated dependencies from x86 to 64-bit Arm. Snowflake optimized application performance by reviewing compiler flags, and tuning instruction sets and low-level code with architecture-specific CPU instructions. Then, Snowflake performed extensive functional and synthetic testing of the application to ensure there were no performance regressions.
Finally, Snowflake updated its build pipelines to produce a 64-bit Arm artifact, associated Amazon Machine Image (AMI), and use these resources at the time of deployment. For more information about transitioning workloads to AWS Graviton-based Amazon EC2 instances, see the transition guide.
Both the virtual warehouses and cloud services layer of the Snowflake Elastic Data Warehouse have benefited from the new AWS Graviton instances. Snowflake was able to move applications to Arm and immediately realize performance and cost improvements for its customers.
“Core workloads that were blocked on shared resources on Hyperthreaded CPUs achieved greater performance improvements on AWS Graviton,” says Eric Musser, Principal Engineer (Database Engineering) at Snowflake. “Our applications were able to seamlessly take advantage of these architectural improvements and benefit our customers.”
Snowflake executed the transition to AWS Graviton-based instances through a configuration change on its cloud provisioning layer, so that all new requests and workloads launched on the Snowflake platform seamlessly used AWS Graviton-based instances by default, wherever they are available.
Snowflake is now using Graviton-based instances across 17 AWS regions, and is continuing to expand into other regions. Snowflake operates in nine AWS regions that are powered by over 95% renewable energy (as of 2021), and provides customers the ability to choose an AWS region for their Snowflake deployment that align with their own sustainability goals.
Additionally, customers running Snowflake on AWS Graviton-based instances see 10% faster compute performance on average for their workloads. Snowflake customers required no user intervention or configuration change for this latest performance enhancement.
Snowflake collaborated with its AWS account team to support the large-scale transition and ensure a seamless customer experience.
By transitioning to AWS Graviton-based instances, Snowflake is able to make progress on its sustainability goals. On AWS, these decisions are informed by the design principles and best practices in the Sustainability Pillar of the AWS Well-Architected Framework.
AWS Graviton-based instances enabled Snowflake to reduce the carbon intensity of workloads, so it can meet customer demand sustainably even as compute requirements continue to grow. Additionally, the transition improved performance for Snowflake’s workload on AWS.
For more information about planning and executing a similar transition, this AWS whitepaper provides a roadmap and guidance for ISVs evaluating their workloads. To explore migrating workloads to AWS Graviton-based instances, see the AWS Graviton Fast Start Program, AWS Graviton Technical Guide GitHub Repository, AWS Graviton Transition Guide, and Porting Advisor for Graviton.
For any questions on sustainability topics, or to learn how AWS can help, reach out to your AWS account team for further guidance. You can also learn more about Snowflake in AWS Marketplace.
Snowflake – AWS Partner Spotlight
Snowflake is an AWS Competency Partner that has reinvented the data warehouse, building a new enterprise-class SQL data warehouse designed from the ground up for the cloud and today’s data.