Optimize your Microsoft SQL Server licensing costs on Amazon EC2 instances. CloudFix leverages AWS Compute Optimizer, enhanced with insights from CloudWatch Application Insights (if enabled), to identify opportunities for reducing SQL Server license costs. This typically involves recommending changes to the EC2 instance configuration (like adjusting vCPU count) or suggesting different instance types that better match the workload’s performance needs while potentially requiring fewer licenses, especially for Bring Your Own License (BYOL) scenarios.

Manual Fix Required

CloudFix identifies potential SQL Server license optimization opportunities but requires manual action to implement them. Modifying EC2 instance types or configurations requires careful validation against performance requirements and potential downtime during the change. Users must manually execute the instance modification based on the recommendation.

Contents

Overview

Problem Statement

Microsoft SQL Server licensing on EC2 is often based on vCPU cores. Running SQL Server on EC2 instances that are overprovisioned in terms of CPU capacity, even if memory or I/O are the true bottlenecks, can lead to significantly higher licensing costs than necessary, particularly for customers using the Bring Your Own License (BYOL) model.

Solution Identification

CloudFix utilizes AWS Compute Optimizer, which analyzes historical performance metrics from CloudWatch. Compute Optimizer specifically provides recommendations for SQL Server workloads on EC2, suggesting alternative instance types or configurations that could meet performance needs with fewer vCPUs, thereby reducing licensing costs. Enabling CloudWatch Application Insights for SQL Server can provide more detailed performance data to enhance these recommendations. CloudFix filters these Compute Optimizer findings to present actionable optimization opportunities.

AWS Services Affected

Service Icon
Amazon EC2
Amazon EC2
AWS Compute Optimizer
AWS Compute Optimizer
CloudWatch Application Insights
Amazon CloudWatch

How CloudFix Identifies the Opportunity

CloudFix identifies potential SQL Server license optimizations by:

  • Ensuring AWS Compute Optimizer is enabled for the account.
  • Filtering Compute Optimizer recommendations specifically for EC2 instances running Microsoft SQL Server.
  • Checking if CloudWatch Application Insights is enabled (required by Compute Optimizer for detailed SQL Server recommendations).
  • Identifying recommendations that suggest changing to an instance type or configuration with fewer vCPUs while still meeting performance needs based on historical metrics.
  • Calculating potential savings based on Compute Optimizer estimates (considering License Included vs. BYOL differences).
  • Excluding instances tagged with cloudfix_dont_fix_it and ensuring potential savings meet cost thresholds.

Manual Fix Steps

After CloudFix identifies a SQL Server license optimization opportunity:

  1. Review Recommendation: Carefully examine the recommendation from CloudFix, which originates from AWS Compute Optimizer. Note the current instance, the recommended instance type/configuration, and the estimated savings.
  2. Validate Performance Needs: Confirm that the recommended instance configuration (especially the vCPU count) aligns with your SQL Server workload’s actual performance requirements. Review the detailed metrics in Compute Optimizer and CloudWatch (including Application Insights if enabled). Consider peak loads, query complexity, and acceptable performance levels.
  3. Plan the Instance Change: Schedule a maintenance window. Plan for potential downtime required to stop the instance, change its type or configuration, and restart it.
  4. Backup: Ensure you have recent, reliable backups of your SQL Server databases before making infrastructure changes.
  5. Modify the EC2 Instance: Stop the target EC2 instance. Modify its instance type or vCPU configuration (if supported by the instance type) through the AWS Management Console or AWS CLI/SDK to match the recommendation. Start the instance.
  6. Verify SQL Server Functionality: After the instance restarts, thoroughly test SQL Server and the applications relying on it to ensure everything functions correctly and performance is acceptable.
  7. Monitor: Continue monitoring performance metrics in CloudWatch and Compute Optimizer after the change.

FAQ

Q: Why is this a manual fix?
A: Changing the underlying EC2 instance configuration for a production SQL Server requires careful validation, planning for downtime, and verification to ensure performance and functionality are not negatively impacted. These steps require manual oversight.

Q: Does this apply to both License Included (LI) and BYOL?
A: Yes, Compute Optimizer provides recommendations for both. Savings calculations may differ, as Compute Optimizer uses actual LI costs but nominal estimates for BYOL savings.

Q: Is Compute Optimizer required?
A: Yes, this finder relies on AWS Compute Optimizer recommendations for SQL Server workloads.

Q: Is CloudWatch Application Insights required?
A: Compute Optimizer requires Application Insights to be enabled for the SQL Server instance to provide the most detailed and accurate licensing recommendations.

Q: Is downtime required?
A: Yes, modifying the instance type or vCPU configuration of an existing EC2 instance requires stopping and starting the instance, resulting in downtime for the SQL Server workload.