Elasticity is the ability of a system to automatically scale up or down its resources according to the demand. AWS cloud architecture provides high elasticity for various types of applications and workloads. AWS offers a range of services and tools that enable elasticity, such as:
Auto Scaling
This service allows you to create scaling policies that automatically adjust the number of instances in your EC2 fleet or the capacity of your other AWS resources based on metrics, schedules, or events. You can also use predictive scaling to anticipate future demand and optimize your costs.
Elastic Load Balancing
This service distributes incoming traffic across multiple targets, such as EC2 instances, containers, Lambda functions, or IP addresses. You can use different types of load balancers for different scenarios, such as Application Load Balancer for HTTP/HTTPS traffic, Network Load Balancer for TCP/UDP traffic, or Gateway Load Balancer for network appliances.
Amazon CloudFront
This service is a global content delivery network (CDN) that caches your static and dynamic content at the edge locations closest to your users. This reduces latency and improves performance. You can also use CloudFront to route requests to different origins based on conditions, such as path patterns, headers, or query strings.
Amazon S3
This service is a highly scalable object storage that can store and retrieve any amount of data from anywhere on the web. You can use S3 to host static websites, store backups, archive data, or serve media files. You can also use S3 Intelligent-Tiering to automatically move your data between storage classes based on access patterns and save costs.
AWS Lambda
This service is a serverless computing platform that lets you run code without provisioning or managing servers. You can use Lambda to execute your code in response to events, such as HTTP requests, database changes, IoT messages, or S3 uploads. You only pay for the compute time you consume and Lambda scales automatically with the number of requests.