High Availability and Scalability
ELB(Elastic Load Balancing) Overview
ELB (Elastic Load Balancing)
서버 / 서버세트로 EC2인스턴스나 서버로 수신되는 트래픽 전달하는 역할.
- managed load balancer -> 사용자가 관리할 필요 없음
Health Check
특정 포트에 /heath와 같은 경로로 체크. 200인지 아닌지 확인. 비정상이며 해당인스턴스로 트래픽 보내지않음
AWS Load Balancer 종류
CLN (Classic Load Balancer. v1) : HTTP, HTTPS, TCP, SSL -> 더이상 사용하지 않음
ALB (Application Load Balancer. V2) : Layer 7 HTTP, HTTPS, Websocket
NLB (Network Load Balancer. V2) : TCP, TLS, UDP, 초고성능 분산 필요할 때
GWLB (Gateway Load Balancer) : 네트워크 계층에서 동작(IP protocol),보안, 방화벽, 침입 감지등에 사용 네트워크 트래픽 분석
Load Banacer Security Group
EC2는 Load Balancer에서 온 트래픽만 허용함
ALB
URL path, hostname, 쿼리 스트링/헤더 별로 타겟 그룹마다 다르게 라우팅 가능
마이크로 서비스, 컨테이너 기반 어플리케이션에 적합 포트 매핑기능이 있기때문에 ECS의 동적 포트에 리다이렉트 할 수 있게 해줌
고정된 hostname
client가 LB 통하기 때문에 application 서버는 client ip를 직접적으로못봄 (클라이언트 진짜 IP는 헤더 X-Forwarder-For에 삽입되어있음)
NLB
Layer 4. 인스턴스에 TCP, UDP 트래픽 포워드. 초당 수만 request 처리. latency(대기) 매우 낮음
NLB는 AZ당 1개 고정 IP가짐. Elastic IP로 할당 가능
cokie 사용x
target group
- EC2 인스턴스, IP 주소(private), ALB(NLB 앞에두어서 고정 IP, 트래픽 처리 규칙 등 사용가능해짐), hptt, https, TCP 프로토콜 health check.
GWLB
Layer 3 - IP packet
target group
EC2인스턴스, IP주소(private),
Elastic Load Balancer
Stcky Session
client -> lb에 전송된 쿠키 사용하여특정 사용자는 특정 인스턴스에 리다리엑트되도록 하기(만료될 때 까지)
세션 데이터(로그인) 유지 등에 사용. 로드 불균형 생길 수 있음
쿠기 종류 : Applicatioin-based, duration-based. load balancer에의해쿠키생성됨
Cross-Zone Load Balancing
사용자는 Cross-zone Load Balancer에 액세스 -> 등록된 모든 AZ의 인스턴스에 고르게 분산
AZ에 2, 8개가 있다고 가정,각각 10씩 분산됨(20, 80씩 분산되어 각각 10씩)
Cross-Zone Load Balancing이 없으면 AZ당 50, 50씩 분산되고, 25,25, 6.25, 6.25, 6.25 ... 씩 분산됨
SSL Certicificates
SSL / TLS
: client-lb간 트래픽 암호화함 (in-flight encryption). 송,수신자만 해독 가능
SSL : Secure Sockts Layer. 연결 암호화
TLS : Transport Layer Security
ACM (AWS Certicicate Manager) 사용해 인증서 관리 가능
SNI (Server Name Indication)
: SNI가 다중 SSL 읹으서를 한 웨서버에 로드할 것인가 (해당 웹 서버가 다중 웹사이트 서비스하기 위해) 하는 문제 해결 해줌
ALB, NLB, Cloudfront 에서 동작
Connection Draining (for CLB) & Deregistration Delay (for ALB, NLB)
인스턴스의 등록 취소(de-registring) 시 존재하는 connection, 요청이 완료될 때까지 기다리고, 해당 인스턴스로 새 request 보내는거 중단함.
ASG (Auto Scaling Group)
모표 : load 증가/감소에따라 scale out/in
인스턴스 min,max 수 설정 가능하고 , 새로운 인스턴스는 LB에 자동으로 등록됨. 하나가 unhealthy 등의 이유로 종료되면 재생성함.
ELB가 EC2 healty check할 수 있는데, ASG로 전달 가능함. -> ASG가 unhealthy EC2 종료가능함.
Cloudwatch 알람에의해 scale 정책 생성
Scaling Poiicies
정책에 사용하는 기준 : CPU Utilization, RqeustCountPerTarget, Average Network In/Out ....
Instance Refresh
목표 : 시작 템플릿 어데이트와 모든 EC2 인스턴스 재생성
'Cloud' 카테고리의 다른 글
[AWS] 4. Lambda (0) | 2025.01.17 |
---|---|
[DVE-C02] 08. RDS + Aurora + ElasticCache (0) | 2024.10.25 |
Udemy 강의 - Ultimate AWS Certified Developer Associate 2024 NEW DVA-C02 (0) | 2024.10.17 |
[AWS] EC2 인스턴스 자동 중지 설정 (0) | 2023.01.08 |
[AWS] AWS Cloud Practitioner(CLF-01) 합격 후기 + 팁 (0) | 2022.11.16 |