Elasticity
💡 Definition
Elasticity is a core cloud computing concept that refers to the ability to quickly expand or decrease computer processing, memory, and storage resources to meet changing demands without worrying about capacity planning for peak usages. You only pay for the capacity that you actually use.
🔑 Key Concepts
- Automatic Scaling: The system automatically adjusts its capacity based on demand.
- Resource Provisioning: Resources are provisioned and de-provisioned on demand.
- Cost-Effectiveness: Avoids over-provisioning (and thus paying for unused resources) and under-provisioning (which can lead to performance issues and lost business).
⚙️ How it Works
In AWS, elasticity is primarily achieved through services like Auto Scaling for EC2 instances, where groups of instances can automatically scale in or out based on predefined metrics or schedules. Other services, especially serverless ones like Lambda and DynamoDB, are elastic by nature, scaling seamlessly without direct user intervention.
🎯 Use Cases
- Variable Workloads: Applications with unpredictable traffic patterns (e.g., e-commerce sites during seasonal sales).
- Cost Optimization: Ensuring that compute resources closely match actual demand to minimize costs.
- Performance Maintenance: Automatically adding resources during traffic spikes to maintain application performance and user experience.
💰 Pricing Model
- Elasticity itself is a concept. The pricing is tied to the underlying services that provide elasticity (e.g., per-second billing for EC2 instances, per-request/GB-second for Lambda).
📝 Exam Tips (CLF-C02)
- Keywords: "Scale up/down quickly", "Meet changing demands", "Pay only for what you use".
- Often discussed in contrast with Scalability (ability to handle increased load, often manually), with elasticity implying automation.
- Key services demonstrating elasticity: Auto Scaling, Lambda, DynamoDB.
See Also: * Auto Scaling * EC2 * Lambda * DynamoDB