고가용성(High-Availability)과 확장성(Scalability)
클라우드의 로드 밸런서(Load Balancer) 개념을 다룰 때 가장 많이 언급되는 것이 고가용성과 확장성이다.
언뜻 보면 동일해보이지만 약간의 차이점을 띈다.
일단 확장성은 수직 Vertical 확장성과 수평 Horizontal 확장성으로 분류된다.
수직 확장성은 현재 사용 중인 인스턴스의 크기를 키우는 것으로, t2.micro를 t2.large로 바꾸는 것이 그 예이다.
이 방식은 주로 데이터베이스 같이 시스템 distribution이 요구되지 않는 프로그램에 유효하다.
수평 확장성은 가용 영역 내에 동일한 기능을 수행하는 인스턴스의 수를 늘리는 것으로, distribution 시스템을 의미하며 현대 웹 애플리케이션의 대다수를 차지한다.
고가용성은 이 중 수평 확장성의 연장으로, 최소 둘 이상의 데이터 센터(즉, 가용영역)에서 애플리케이션을 운영하는 것을 의미한다. 여러 가용 영역(Multi-AZ)에 걸쳐 자동 스케일링 그룹(ASG)을 운영함으로써 데이터의 손실을 낮추는 것이 주된 목표이다.
ALB vs. NLB vs. GWLB
로드 밸런서는 말 그대로 네트워크에서 발생하는 데이터 양인 로드(Load)를 연결된 여러 네트워크에 분배하는 네트워크 장애 대비책으로, 적용되는 OSI 모델 계층에 따라 Application Load Balancer(7계층), Network Load Balancer(4계층), 그리고 Gateway Load Balancer(3계층)로 구분된다. 4, 7계층을 아우르던 Classic Load Balancer는 더 이상 사용하지 않는다.
(로드 밸런서의 주된 적용 대상은 EC2 인스턴스와 private IP 주소가 있다.)
.
Application Load Balancer (ALB)
OSI 모델 7계층의 HTTP/HTTPS 프로토콜을 사용하는 ALB는 여러 서버/머신에 걸쳐 존재하는 HTTP 애플리케이션(target groups)과 동일 머신에 존재하는 여러 애플리케이션(ex. 컨테이너)에 대한 로드 밸런싱을 담당한다.
URL 내 경로에 따른 라우팅, hostname에 따른 라우팅, 그리고 Query String에 따른 라우팅을 지원한다.
- 경로 라우팅 : www.host.com/posts, www.host.com/users
- hostname 라우팅 : host.com, guest.com
- QueryString 라우팅 : www.example.com?id=abcd&password=1234
라우팅의 대상이 되는 target group 별로 별도의 라우팅 주소를 제공함으로써 로드 밸런싱을 구현할 수 있다.
ALB는 주로 마이크로서비스와 컨테이너 기반 애플리케이션을 구현하는데 사용한다.
Network Load Balancer (NLB)
OSI 모델 4계층의 TCP, UDP 트래픽을 다루는 NLB는 초당 수백 만 이상 발생하는 트래픽에 대한 100ms 이하의 낮은 지연을 보장한다. 가용 영역 당 하나의 static IP 주소를 가져야 하며, Elastic IP 주소 사용을 지원한다.
Gateway Load Balancer (GWLB)
OSI 모델 3계층의 IP 패킷을 활용하는 GWLB는 모든 트래픽에 대한 단일 출입점을 지원하여 투명한 네트워크 흐름을 보장한다. 3rd-party 서비스에 대한 배포와 확장 및 관리를 담당하는 AWS 내 virtual appliance로, 방화벽과 침입 탐지&예방 시스템 등에 적용 가능하다.
Sticky Session (Session Affinity)
Sticky Session은 로드 밸런서가 보장하는 기능 중 하나로 동일 클라이언트의 요청을 항상 같은 ec2 인스턴스로 전송하여 사용자의 세션 데이터를 유지하는데 사용된다.. 주로 네트워크 트래픽의 쿠키(cookie)를 관리하는 데 사용한다. NLB는 쿠키가 없어도 사용할 수 있다.
'자격증 공부 > AWS SysOps Administrator - Associate' 카테고리의 다른 글
AWS SOA(02) - CloudFormation (1) | 2024.07.10 |
---|---|
AWS SysOps Administrator - Associate 7일차 (1) | 2024.07.06 |
AWS SOA(02) - Systems Manager (1) | 2024.07.03 |
AWS SOA(02) - AMI (1) | 2024.07.01 |
AWS SOA(02) - CloudWatch, EC2 세부사항 (1) | 2024.06.29 |