2023. 12. 22. 11:43ㆍ클라우드/AWS
12월 AWS Enablement (12/22)
- Build Web Application Hands-On
- High Availability of Web Application
- Hands-On ALB AutoScaling
- High Performance of Web Application
- Hands-On CloudFront
- Web Application Architecture
High Availability of Web Application
Elastic Load Balancer (ELB)
네트워크 트래픽을 분산하여 애플리케이션 확장성 개선
Traffic → |
Protocol Port |
EC2 Auto Scaling AWS Lambda IP Address ECS/Fargate EKS/Fargate |
|
1. Listeners | 2. Routing Rules | 3. Target & Target Groups |
ELB workflow
AWS ELB Family
Application Load Balancer (ALB) |
Network Load Balancer (NLB) |
Gateway Load Balancer (GWLB) |
Classic Load Balancer (CLB) |
Gateway Load Balancer
기존 Appliance 디자인 | Gateway Load Balancer 연결 |
|
|
Application Load Balancer (ALB)
Targets | Requires |
Instances AWS Lamba Containers IP |
Layer 7 routing HTTP2/gRPC Redirects, web sockets Fixed response Authentication : basic Auth, IdP federation, mTLS (X.509) (new) Web Application Firewall, AWS Outposts/AWS Local Zones Cookie stickiness, HTTP Desync Mitigation Best option for the AWS Load Balancer Controller for containers |
Network Load Balancer (NLB)
Targets | Requires |
Instances ALB Containers IP |
Low latency Zonal isolation Long-lived TCP connections Connection-based LAyer 4 load balancing PrivateLink Support Elastic IP support Hybrid architecture support AWS Fargate support direct to K8s pod |
AWS ELB 비교
Layer 3 gateway Layer 4 load balancer |
Layer 4 | Layer 7 | Layer 4/7 |
Target Group EC2 instances IP |
Target Group EC2 instances Containers ALB IP |
Target Group EC2 instances Containers AWS Lambda IP |
Target Group EC2-Classic |
Protocol Listener IP |
Protocol Listener TCP/UDP TLS |
Protocol Listener HTTP/HTTPS gRPC |
Protocol Listener TCP SSL/TLS HTTP/HTTPS |
Security SSL Offload SNI/ALPN |
Security SSL Offload SNI/ALPN 사용자 인증 |
Security SSL Offload 사용자 인증 |
ELB Front Door Integration
Amazon Route S3 Amazon CloudFront AWS Global Accelerator |
↔ | Application Load Balancer Network Load Balancer |
Routing to backend Target / Target Groups
Application Load Balancer |
|
Load Balancer Routing Algorithm
- Round Robin (기본)
- 용량이나 사용률에 관계없이 요청이 대상 그룹의 모든 대상 간에 균등하게 배포
- Least Outstanding Requests (선택가능)
- 새로운 요청이 수신될 때 미처리 요청이 가장 적은 대상에 해당 요청을 전송
- Weighted Random
- 대상 그룹에서 정상인 대상 전체에 무작위 순서로 요청을 균등하게 라우팅
- Automatic Target Weights (ATW) (new)
ALB as an NLB target with Private Link
EC2 Auto Scaling
정의된 조건에 따라 애플리케이션 로드를 자동으로 추가하거나 제거하여 애플리케이션 가용성을 유지하기 위한 완전 관리형 서비스 |
Groups 수요를 충족시키기 위해 확장 가능한 EC2 인스턴스틔 컬렉션 Configuration templates EC2 인스턴스를 시작하기 위한 템플릿 Scaling options Auto Scaling group을 동적 혹은 지침에 따라 확장하기 위한 방법 |
EC2 Auto Scaling
애플리케이션의 로드를 처리할 수 있는 정확한 수의 Amazon EC2 인스턴스를 유지
Fleet management 비정상 인스턴스 교체 |
Dynamic Scaling 수요에 맞게 확장 |
EC2 Auto Scaling 이점
내결함성 향상 | 애플리케이션 가용성 향상 | 비용 관리 향상 |
|
|
|
EC2 Auto Scaling - 구성 템플릿 (Configuration Template)
Launch Template 혹은 Launch Configuration 사용
시작 파라미터 Instance type EBS volume AMI ID Network interface tags User data Block device mapping Placement |
→ → → |
Console CLI API |
Launch | Instances |
- 일관된 경험
- 단순한 권한
- 거버넌스 및 모범 사례
- 생산성 향상
EC2 Auto Scaling - Target Group 구성
여러가지 인스턴스 유형, 구매 옵션으로 그룹 구성
EC2 Auto Scaling - Scaling Option
애플리케이션의 컴퓨팅 용량을 증가 혹은 감소
고려 사항 | Role
|
Maintain (min, max, desired) Manual Scaling (desired) Scheduled Scaling (schedule action) Dynamic Scaling (policy) Predictive Scaling (policy) |
Cost
|
||
Metrics
|
EC2 Auto Scaling - Scaling Policy
Dynamic Scaling | |||
Simple/Step Scaling | Target Tracking | Scheduled Scaling | Predictive Scaling |
Metric 모니터링 하여 지정한 단계별로 인스턴스 추가/제거 |
지정된 Metric 목표치를 유지하기 위해 인스턴스 추가/제거 |
지정된 스케줄에 따라 인스턴스 시작/종료 |
이전 경향에 따라 선제적으로 용량 확보 |
Manually calculate capacity Reactive |
Automated Reactive |
Manually calculate capacity Proactive |
automated Proactive |
EC2 Auto Scaling - Scaling Option
Scaling Cooldown |
|
Instance Warmup |
|
Warm Pool |
|
EC2 Auto Scaling - Scaling with Metric
Scaling with Aamzon SQS | Scaling with Custom Metric |
EC2 Auto Scaling - Lifecycle Hooks
인스턴스의 수명 주기 이벤트에 대응하여 사용자 액션을 수행
[Example]
Scale out (Instance Launching) :
인스턴스가 대기 상태일 때 스크립트 구동하여
소프트웨어 설치, 서비스 구성, 에셋 다운로드 등 수행
Scale In (Instance Terminating) :
인스턴스가 대기 상태에서 Lambda 함수 혹은 인스턴스 연결하여
로그 및 데이터 다운로드 등 수행
'클라우드 > AWS' 카테고리의 다른 글
Web Application - High Performance of Web Application (0) | 2023.12.22 |
---|---|
Web Application - Hands-On ALB & AutoScaling (0) | 2023.12.22 |
Web Application - Build Web Application Hands-On (0) | 2023.12.22 |
AWS Core Services - AWS Storage (0) | 2023.12.14 |
AWS Core Services - AWS Database (0) | 2023.12.14 |