AWS 로드밸런싱 기법
2023. 3. 13. 01:25ㆍAWS (Amazon Web Services)
1. Round Robin
- 대부분의 로드 밸런서에서 사용하는 가장 기본적인 방식
- 서버들의 스펙이 모두 동일한 경우 사용
- 클라이언트로부터 받은 요청을 대상 서버 순서대로 트래픽을 분산시키는 방식
- 이론상 모든 서버에 동등한 부하가 걸리는 안정적인 방법
- 요청들마다 소요되는 처리 시간이 다르기 때문에 특정 서버에 부하가 집중될 가능성이 있음
2. Weighted Round Robin
- 서버들의 스펙 다를 경우 사용
- 서버마다 가중치를 할당하여 가중치가 높은 서버에 더 많은 트래픽을 분산시키는 방식
- 3개의 서버의 가중치가 각각 서버 A(3), 서버 B(2), 서버 C(5)일 경우 각각 30%, 20%, 50% 의 트래픽을 분산
- 가중치를 잘못 설정 할 경우 특정 서버에 부하가 집중될 수 있음
3. Path-Based Routing
- URL 경로에 따라 트래픽을 분산시키는 방식
- 한개의 서버에서 다양한 경로를 가진 애플리케이션을 실행할 때 주로 사용
- /keum1 경로는 서버 A로 /keum2 경로는 서버B로 트래픽을 분산
- 경로에 따라 분산되는 방식이기 때문에 경로와 연관된 서버에 장애 발생시 해당 경로의 서비스 전체가 중단될 수 있음
4. Host-Based Routing
- 클라이언트의 도메인 이름에 따라 트래픽을 분산시키는 방식
- 도메인 이름에 따라 다른 서비스를 제공할 때 주로 사용
- www.keum.com, www.chang.com 두개의 도메인이 있을 경우 www.keum.com 도메인으로 들어오는 트래픽은 서버 A로 www.chang.com 도메인으로 들어오는 트래픽은 서버 B로 분산
- DNS 서버에 문제 발생하면 로드밸런싱에 문제가 발생 할 수 있음
5. HTTP Header-Based Routing
- 클라이언트의 HTTP 요청 헤더 정보에 따라 트래픽을 분산시키는 방식
- 헤더 정보(User-Agent, Language, Cookie 등)에 매치되는 서버로 트래픽 분산
- HTTP/HTTPS 프로토콜에서만 사용되며 웹 서비스에 적합
- 클라이언트의 User-Agent 헤더가 브라우저 정보일 경우 브라우저 별로 트래픽 분산
- 클라이언트가 헤더 정보를 조작할 수 있기 때문에 보안적으로 문제가 발생 할 수 있음
6. Least Connections
- 클라이언트로부터 요청이 들어오면 가장 연결 수가 적은 서버부터 트래픽을 분산시키는 방식
- A 서버에 4개의 요청이 할당되었고 B 서버에 2개의 요청이 할당되어 있다면 연결이 가장 적은 B 서버에 우선 할당
- 서버의 연결 수가 분산되지 않고 특정 서버에 집중될 수 있음
7. Source IP Hash
- 클라이언트의 IP 주소를 해싱하여 특정 서버로 트래픽을 분산시키는 방식
- 1) 클라이언트 A, B, C가 있을때 각각의 IP 주소를 해싱하여 일정한 값으로 변환
- (해싱된 값이 각각 202, 89, 192라고 가정)
- 2) 클라이언트 IP 주소가 IPv4라고 가정 했을 때 0부터 2^32-1개의 범위로 설정한뒤 서버 개수대로 분할
- (서버는 3개, 범위는 0 ~ 300으로 설정, 즉 서버 1 : 0 ~ 100, 서버2 : 101 ~ 200, 서버3 : 201 ~ 300)
- 3) 클라이언트 IP 주소를 해싱한 값을 각 서버에 해당하는 범위에 매핑
- (클라이언트 A, B, C는 각각 서버3, 서버1, 서버2에 매핑)
8. Static Routing
- 라우팅 테이블에 미리 정의된 경로를 사용하여 트래픽을 분산시키는 방식
- 경로를 수동으로 설정 하기 때문에 변경이나 추가에 용이
- 소규모 네트워크에서 주로 사용되며 경로가 고정되어 있을때 가장 효과적
- 대규모 네트워크나 경로를 자주 변경해야 하는 경우 관리가 어려움 (수동으로 설정 해야 하기 때문)
- 대규모 네트워크의 경우 라우팅 프로토콜을 사용하는 것이 효과적
- 1) 회사 A의 두 부서가 서로 다른 서브넷에 존재
- (부서 A : 192.168.1.0/24, 부서 B : 192.168.2.0/24)
- 2) 두 부서가 통신하기 위해서는 라우터가 필요, 라우터의 라우팅 테이블에 수동으로 경로 추가
- (목적지 IP 주소 : 192.168.2.0/24, 게이터웨이 IP 주소 : 192.168.1.2)
- (목적지 IP 주소 : 192.168.1.0/24, 게이터웨이 IP 주소 : 192.168.2.2)
- 3) 부서 A에서 부서 B로 데이터 전송 시 부서 A는 게이터웨이 IP 주소를 참조하여 라우터로 패킷을 전송
- 4) 라우터로 전송된 패킷은 라우팅 테이블을 참조하여 목적지인 부서 B로 전송
9. Anycast IP Routing
- 하나의 IP 주소를 여러 대의 서버에서 공유하며 클라이언트의 요청이 들어오면 해당 IP를 갖는 가장 가까운 서버로 트래픽을 분산시키는 방식
- 가장 가까운 서버로 라우팅 되기 때문에 빠른 응답 시간을 제공
- 서버 장애 시 다른 서버로 클라이언트 요청을 전환하기 때문에 높은 가용성 제공
- 하나의 IP 주소를 여러 서버가 공유하기 때문에 효율적인 서버 사용이 가능
- 1) 하나의 DNS 서버 IP 주소를 여러 서버에서 공유
- 2) 클라이언트가 DNS 서버에 요청을 보내면 가장 가까운 서버로 요청이 전송
- 3) 클라이언트는 빠른 응답을 받을 수 있음
'AWS (Amazon Web Services)' 카테고리의 다른 글
AWS Documentation (0) | 2023.03.27 |
---|---|
클라우드 컴퓨팅 (0) | 2023.03.18 |
Amazon ELB - ALB (0) | 2023.03.13 |
Amazon ELB (0) | 2023.03.06 |
DevOps란? (1) | 2023.02.20 |