Savings Plans
Complete the full lesson to earn 25 points
Work through each section, then tap “Mark as Complete” on the last one.
✦ Skip the page breaks and see fewer ads — read each lesson on a single page with Pro
Module: Design Cost-Optimized Architectures
Section: Cost-Optimized Compute
Lesson Title: Savings Plans
In the modern landscape of cloud infrastructure, compute costs often represent the single largest line item on a monthly bill. As organizations scale their operations, the ability to manage these costs effectively without sacrificing performance or reliability becomes a primary competitive advantage. Savings Plans represent a flexible, commitment-based pricing model that allows users to reduce their compute costs by up to 72% compared to on-demand pricing. By making a commitment to a consistent amount of usage (measured in dollars per hour) for a one-year or three-year period, organizations can significantly lower their overhead while maintaining the agility to evolve their technical stack.
Understanding Savings Plans is not just an exercise in accounting; it is a fundamental aspect of cloud architecture design. Unlike older, rigid reservation models that required you to specify exact instance families and regions, Savings Plans are designed to adapt to your changing needs. Whether you are migrating from traditional virtual machines to containerized workloads or transitioning from self-managed databases to managed services, Savings Plans provide the financial scaffolding to support these shifts. This lesson will guide you through the mechanics of Savings Plans, how to calculate your commitment, and how to manage them effectively over time.
The Core Concept: What are Savings Plans?
At its simplest, a Savings Plan is a contract between you and your cloud provider. You commit to a specific hourly spend—for example, $10 per hour—for a term of either one or three years. In exchange for this commitment, the provider applies a significant discount to your compute usage up to that hourly threshold. Any usage beyond that threshold is billed at the standard on-demand rate, ensuring you never run out of capacity, while any unused portion of your commitment is billed at your committed rate.
This model is a departure from historical "Reserved Instances," which were often locked to specific hardware configurations. Modern Savings Plans are compute-agnostic, meaning they apply to a wide range of services, including virtual machines, serverless functions, and container orchestrators. Because they apply to the dollar amount rather than the specific instance count, they offer a level of flexibility that allows you to change your architecture—such as upgrading to newer, more efficient processor generations—without invalidating your discount.
Callout: Savings Plans vs. Reserved Instances While both models offer significant discounts, the primary distinction lies in flexibility. Reserved Instances (RIs) are often tied to specific instance families, operating systems, and regions. If you purchase an RI for a "c5.large" instance, your discount only applies to that specific type. Savings Plans, conversely, apply to the total compute usage across the applicable services, regardless of the instance type or size. This makes Savings Plans much more resilient to the inevitable architectural changes that occur during a product's lifecycle.
Types of Savings Plans
To effectively utilize this model, you must understand the different flavors of Savings Plans available. Choosing the wrong type can lead to suboptimal savings or, worse, a commitment that does not cover your actual usage patterns.
Compute Savings Plans
Compute Savings Plans are the most flexible option. They automatically apply to usage across different instance families, regions, and even different compute services like serverless platforms and managed container services. If you start a project using one instance type and later decide to migrate to a more performant family or a different region, the Compute Savings Plan follows your usage automatically. This is the recommended choice for most organizations that are still in a growth phase or have evolving technical requirements.
EC2 Instance Savings Plans
EC2 Instance Savings Plans require a higher level of commitment in exchange for a deeper discount. You must commit to a specific instance family within a specific region. For example, if you commit to the "m6g" family in the "us-east-1" region, your discount only applies to that configuration. This is ideal for stable, long-running workloads where the architecture is finalized and unlikely to change for the duration of the commitment. Because you are taking on more risk by locking into a specific configuration, the provider rewards you with a higher percentage of cost reduction.
SageMaker Savings Plans
For organizations heavily invested in machine learning, SageMaker Savings Plans provide a focused way to reduce costs for ML workloads. These plans apply to your usage of SageMaker instances, including training, inference, and notebook environments. Like other plans, you commit to an hourly spend, and the discount is applied to your SageMaker-related compute usage.
Comparison of Savings Models
| Feature | Compute Savings Plans | EC2 Instance Savings Plans | On-Demand Pricing |
|---|---|---|---|
| Discount Level | High (up to 66%) | Highest (up to 72%) | None |
| Flexibility | High (Any family/region) | Low (Locked to family/region) | Total |
| Commitment | 1 or 3 Years | 1 or 3 Years | None |
| Best For | Evolving architectures | Stable, static workloads | Spiky, unpredictable traffic |
Step-by-Step: Implementing a Savings Plan
Implementing a Savings Plan is a process that requires careful analysis of your historical data. You should never purchase a plan based on a guess. Follow these steps to ensure you are making a data-driven decision.
Step 1: Analyze Historical Usage
Before committing, you need to know your "baseline" usage. This is the amount of compute capacity that is always running, regardless of day-to-day fluctuations. Use your cloud provider’s cost management dashboard to pull a report of your compute spending over the last 30 to 90 days. Look for the "trough"—the lowest point of your hourly spend. This trough is your safe, guaranteed baseline for a commitment.
Step 2: Model the Commitment
Once you have your baseline, use the provider's recommendation tool. These tools analyze your usage patterns and suggest an hourly commitment amount that maximizes your potential savings. However, do not blindly follow the tool. If your baseline is $10 per hour, it is often safer to commit to $8 or $9 per hour. This "undershooting" protects you from sudden architectural changes that might unexpectedly drop your compute usage below the threshold.
Step 3: Purchase the Plan
After determining your commitment level, navigate to the Savings Plans section of your management console. Select the type of plan, the term length (1 or 3 years), and the hourly commitment amount. You will be able to see the estimated savings before you finalize the purchase. Once confirmed, the plan goes into effect immediately and will start applying to eligible usage in your next billing cycle.
Step 4: Monitor and Iterate
A Savings Plan is not a "set it and forget it" tool. Set up alerts for when your Savings Plans are approaching their expiration date. Additionally, monitor your "coverage" metric. If your coverage is 100%, you might actually be under-utilizing your capacity or leaving money on the table by not having enough coverage. Aim for a coverage percentage that balances risk and reward—usually between 80% and 90% is considered a healthy target for most organizations.
Strategic Best Practices
To extract the most value from your Savings Plans, you need to move beyond simple procurement and integrate cost management into your operational culture.
1. Start with a Conservative Commitment
One of the most common mistakes is over-committing. When you first start, lean toward a one-year term rather than a three-year term. While the three-year plan offers a deeper discount, it locks you into a specific cost structure for a long time. In the cloud, three years is an eternity; technology changes, and your business needs may evolve. Start with a one-year plan to test your understanding of your usage patterns.
2. Leverage "Undershooting"
As mentioned earlier, aim to cover only your absolute baseline. If your compute spend fluctuates between $100 and $150 per hour, do not commit to $150. Commit to $90 or $100. The goal of a Savings Plan is to reduce the cost of your "always-on" resources, not to gamble on the volatility of your peak traffic. You can always purchase a second, smaller Savings Plan later if your baseline increases, but you cannot easily undo an over-commitment.
3. Align Finance and Engineering
Cost optimization is a cross-functional effort. Engineers often focus on performance and uptime, while finance teams focus on budget. Savings Plans bridge this gap. Ensure that your engineering team understands that their choice of instance family (in the case of EC2 Instance Savings Plans) affects the financial commitment. If you have an EC2 Instance Savings Plan, the engineering team needs to know they cannot simply switch to a different instance family without consulting the financial impact of that change.
Note: Always check the "Savings Plan Recommendations" provided by the cloud provider, but treat them as a starting point, not a mandate. These tools often assume that your future usage will look exactly like your past usage. If you have a migration project planned for next month, the tool will not know that, and you could end up committing to resources you are about to decommission.
Avoiding Common Pitfalls
Even with the best intentions, organizations often fall into traps that negate the benefits of Savings Plans. By being aware of these pitfalls, you can avoid them entirely.
The "Over-Commitment" Trap
This happens when an organization commits to an hourly amount based on a temporary peak in traffic. For example, if you run a marketing campaign that causes a surge in compute usage, and you purchase a Savings Plan based on that peak, you will be stuck paying for that capacity long after the campaign has ended. How to avoid: Only use the "trough" of your usage, not the average or the peak, when calculating your commitment.
The "Static Architecture" Myth
Many teams believe that once a Savings Plan is in place, they must maintain the current architecture to keep the discount. While this is true for EC2 Instance Savings Plans, it is false for Compute Savings Plans. If you are using Compute Savings Plans, you have the freedom to move to newer, more efficient instance types. How to avoid: Prioritize Compute Savings Plans over EC2 Instance Savings Plans unless the price difference is so significant that it justifies the loss of flexibility.
Neglecting Expiration Alerts
A Savings Plan that expires without a renewal plan in place will result in an immediate, sharp increase in your monthly bill. This is a common "sticker shock" moment for many companies. How to avoid: Set up automated alerts in your cost management tool to notify you 30, 60, and 90 days before a Savings Plan expires. This gives your team plenty of time to re-evaluate the baseline and purchase a new plan.
Technical Implementation: Monitoring with Code
While the management console provides a graphical interface, you can also use command-line tools and SDKs to monitor your Savings Plans. This allows you to integrate cost tracking into your automated dashboards. Below is a conceptual example of how you might use a CLI tool to list your current Savings Plans and their utilization.
# Example: Listing active Savings Plans
aws savingsplans describe-savings-plans --state active
# Example: Checking Savings Plan utilization
aws savingsplans get-savings-plan-utilization --savings-plan-arns arn:aws:savingsplans:us-east-1:123456789012:savingsplan/a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6
In a real-world scenario, you would pipe this output into a monitoring system. For instance, you could write a small script that pulls the "utilization" percentage and sends a notification to a Slack channel if the utilization drops below 80%. This proactive approach ensures that you are constantly aware of whether your commitment is being fully utilized.
Callout: The Role of Automation Do not rely on manual checks for your Savings Plan health. In a large environment, manual oversight is prone to error and delay. Use the APIs provided by your cloud vendor to feed data into your existing observability stack. When cost metrics are treated with the same importance as latency or error rates, you create a culture of financial accountability.
The Economics of Long-Term Commitments
When evaluating 1-year versus 3-year plans, it is helpful to think about the "cost of capital" and "opportunity cost." A 3-year plan provides a deeper discount, but it ties up your financial resources. If your business is in a highly volatile industry where you might pivot your entire tech stack every 18 months, the 3-year plan is a liability. Conversely, if you are a stable enterprise with predictable, long-standing workloads, the 3-year plan is a clear winner.
Consider the following factors when choosing your term length:
- Business Maturity: Startups should generally stick to 1-year plans. Enterprises with established, multi-year roadmaps can safely utilize 3-year plans.
- Technology Lifecycle: If you are currently running older instance generations (like M4 or C4), do not commit to a 3-year plan. You will likely want to migrate to newer, more efficient generations (like M6 or M7) within that timeframe.
- Financial Strategy: Does your organization prefer lower monthly operating expenses, or do you prefer the flexibility to reallocate funds quickly? Your finance department should be a key stakeholder in this decision.
Advanced Management: Multi-Account Environments
If you operate in a multi-account environment, you must understand how Savings Plans are shared. By default, the Savings Plan is applied to the account that purchased it, but it can be configured to share its benefits across the entire organization.
Centralized Purchasing
It is often best to have a "Management Account" or a dedicated "Finance Account" purchase all Savings Plans for the entire organization. This centralizes the billing and makes it significantly easier to track utilization. If you allow individual teams to purchase their own plans, you will end up with fragmented coverage, overlapping commitments, and a nightmare of administrative overhead.
Allocation of Savings
When you purchase a Savings Plan centrally, you need a way to charge back the costs to the individual teams. Most cloud providers offer detailed cost allocation tags and reports that show exactly which account consumed the Savings Plan benefit. Use these reports to show teams the value of the savings they are generating. This creates a positive feedback loop where teams are incentivized to keep their compute usage within the bounds of the Savings Plan coverage.
Common Questions (FAQ)
Q: Can I cancel a Savings Plan if my needs change? A: No, Savings Plans are non-cancelable. Once you commit to the hourly rate, you are responsible for that amount for the duration of the term. This is why the "undershooting" strategy is so critical.
Q: What happens if my usage exceeds my hourly commitment? A: The usage up to your commitment is billed at the discounted rate, and any usage above that amount is billed at the standard on-demand rate. You are never throttled or limited; the discount simply stops applying once you hit your cap.
Q: Can I upgrade my Savings Plan? A: You cannot "upgrade" an existing plan, but you can always purchase additional Savings Plans. If your usage grows, you can simply layer a new plan on top of your existing one to cover the new baseline.
Q: Does the Savings Plan apply to storage or network costs? A: No. Savings Plans are strictly for compute resources. They do not reduce the cost of EBS volumes, S3 storage, data transfer fees, or other non-compute services.
Q: How long does it take for a Savings Plan to go into effect? A: Savings Plans usually take effect within a few hours of purchase. Once processed, they are applied retroactively to the beginning of the hour in which they were purchased.
Best Practices Checklist
- Baseline First: Analyze at least 90 days of cost data before making any commitment.
- Start Small: Begin with a 1-year plan to validate your assumptions.
- Prioritize Flexibility: Favor Compute Savings Plans over EC2 Instance Savings Plans unless the savings differential is massive.
- Centralize: Purchase all plans from a single management account to simplify billing.
- Alerting: Set up notifications for plan expirations at 90, 60, and 30-day intervals.
- Tagging: Ensure your resources are properly tagged to facilitate accurate cost allocation.
- Review Regularly: Perform a quarterly review of your Savings Plan coverage and adjust as needed.
Key Takeaways
- Understand the Commitment: A Savings Plan is a financial commitment to an hourly spend, not a technical reservation of hardware. It provides a discount in exchange for your promise to pay a fixed amount, regardless of usage fluctuations.
- Flexibility is Key: Compute Savings Plans provide the greatest flexibility, allowing you to change instance families, regions, and even underlying services without losing your discount. This is the best choice for most modern, evolving architectures.
- The "Trough" Strategy: Always calculate your commitment based on the lowest point of your hourly compute usage (your baseline). Avoid committing to average or peak usage to prevent over-spending during quiet periods.
- Operational Maturity: Implementing Savings Plans is an operational process, not a one-time event. It requires continuous monitoring, proper alerting for expirations, and cross-functional communication between engineering and finance.
- Avoid Pitfalls: Do not let the promise of deep discounts blind you to the risk of long-term commitment. Always prioritize the ability to pivot your architecture over squeezing out the last few percentage points of savings.
- Centralized Management: In multi-account environments, manage your Savings Plans centrally. This prevents fragmentation and ensures that your organization can effectively track and allocate savings across different teams and departments.
- Data-Driven Decisions: Use the cloud provider's recommendation tools as a starting point, but always verify their suggestions against your own internal knowledge of upcoming product launches, migrations, or architectural changes.
By mastering the mechanics of Savings Plans, you transform compute costs from an unpredictable expense into a managed, optimized component of your infrastructure. This shift not only improves your organization's bottom line but also gives your engineering teams the financial stability to focus on building better products, knowing that their underlying compute costs are handled with efficiency and foresight.
Continue the course
Enjoying the courses?
Everything stays free. Pro shows fewer ads, doubles your daily points limit so you progress twice as fast, and lets you read each lesson on one page.
- ✓ Fewer advertisements
- ✓ 2× daily points limit
- ✓ Distraction-free lessons