Research summary:
- Auto Scaling Groups (ASGs)
- Load Balancers
- CDNs
Why we need to learn these concepts/services?
1 Auto Scaling Groups
1.1 ASG
Using Auto Scaling to Provide Elasticity
Free
Amazon EC2 Auto Scaling
- Launches or terminates instances based on specified conditions
- Automatically registers new instances with load balancers when specified
- Can launch across Availability Zones
Way to Auto Scale
- Scheduled
- Good for predictable workloads
- Scale based on time or day
- Use case: Turning off your Dev and Test instances at night
- Dynamic
- Excellent for general scaling
- Supports target tracking
- Use case: Scaling based on CPU utilization
- Predictive
- Easiest to use
- Machine learning based scaling
- Use case: No longer need to manually adjust rules
Auto Scaling - Purchasing Options
- On-Demand Instances
- Reserved Instances
- Spot Instances
Auto Scaling Minimum Capacity
Auto Scaling group defines:
- Desired capacity
- Minimum capacity
- Maximum capacity
What would be a good minimum capacity to set it to?
What would be a good maximum capacity to set it to?
Auto Scaling Considerations
- You might need to combine multiple types of autoscaling
- Your architecture might require more hands scaling using Step scaling
- Some architectures need to scale on 2 or more metrics (not just CPU)
- Try to scale out early and fast, while scaling in slowly over time????
- Use lifecycle hooks - perform custom actions as Auto Scaling launches or terminates instances
- Avoid thrashing (aggressive instance termination)
Scale in and scale out??
Scale out - more instances
Scale in - less intances (terminate some instances)
Load Balancers
Elastic Load Balancing (ELB)
A managed load balancing service that distributes incoming application traffic across multiple Amazon EC2 instances, containers, and IP addresses.
- The idea is traffic distribution as a service.
ELB: Features
- Use HTTP, HTTPS, TCP and SSL (secure TCP) protocols.
- Can be external or internal facing
- Each load balancer is given a DNS name
- Recognises and responds to unhealthy instances
ELB: Options
Application Load Balancer
HTTP & HTTPS
- Flexible application management
- Advanced load balancing of HTTP and HTTPS traffic
- Operates at the request level (Layer 7)
- Support content-based routing and applications that run in containers
- Check the health of their targets (instances or containers)
- Best used with websites and mobile apps
Network Load Balancer
TCP, TLS, UDP
- Extreme performance and static IP for your application
- Load balancing of TCP, TLS, and UDP traffic
- Operates at the connection level (Layer 4)
- Ideal for balancing TCP traffic
- Are optimized to handle sudden and volatile traffic patterns while using a single static IP address per Availability Zone
- Are designed to handle tens of millions of requests per second while maintaining high throughput at ultra-low latency, with no effort on your part
Classic Load Balancer
- Existing application that was built within EC2 Classic network
- Operates at both the request level and connection level
- Support load balancing across multiple Availability Zones
Why use ELB
- High availability
- Health checks
- Security features
- TLS termination
Connection Draining
If you need to remove an instance from your production fleet, but don’t want to affect your users:
Affected backend instances will complete requests in progress before deregistration
CDNs
AWS Global Infrastructure
In oreder to deliver contetn to users,Amazon CloudFront uses
- 10+ Regional Edge Caches
- 80+ Edge Locations
- (number increases as well)
- benefits: lower latency, improve access speed to interact with web apps.
-
e.g. Web server is in Singapore, User in New York. Can use CloudFront to cache content in New York locally.
- Edge locations
- locations around the world that they can serve your website from with CloudFront.
- more than 225 points of presence, in 88 cities across 45 countries.
Amazon CloudFront Overview
CDN → Content Delivery Network
- Content delivery networks provide a globally-distributed network of proxy servers that cache content. (e.g. web videos, bulky media). → more locally to consumers. → Improve access speed.
- Amazon CloudFront is a content delivery network operated by AWS.
Characteristics:
- Global, Growing Network
- Secure Content at the Edge
- Deep Integration with Key AWS Services
- High Performance
- Cost effective
- Easy to use
Configure a CDN
- AWS Console → CloudFront → Create Distribution → Choose type (RTMP for video streaming, Web for usual content delivery) → Set one origin and one behaviour(origin can be S3, or app outside of AWS; Behaviour matches URL patterns you want to associate with that origin)
Use cases
- Static Asset Caching
- Live and On-Demand Video Streaming
- Security and DDoS Protection
- Dynamic and Customized Content
- API Acceleration
- Software Distribution
Whiteboard structure of VPC with brand new concepts
Presentation:
We discussed about the Networking on AWS last week. The next thing we want to talk about is another major benefit of AWS.— Scalability & Elasticity
Or how capacity can grow and shrink based on your business needs
Useful Resources: