로드 밸런싱

갱두·2021년 10월 24일
0

📓 AWS

목록 보기
7/7

로드 밸런싱

로드밸런싱이란, 네트워크 기술의 일종으로 네트워크 트래픽을 하나 이상의 서버나 장비로 분산하기 위해 사용되는 기술로, 로드 밸런싱을 수행하는 소프트웨어나 하드웨어를 로드 밸런서라고 함.

로드 밸런싱 서비스를 통해 외부에서 발생되는 많은 인터넷 트래픽을 여러 웹 서버나 장비로 부하를 분산하여 처리할 수 있음.

웹 트래픽이 증가했을 때

1. Scale-up을 통해 CPU, 메모리, 디스크 등의 기능을 업그레이드
기존보다 높은 성능을 보유한 웹 서버로 시스템을 업그레이드함으로써 문제를 해결하는 방식.

  • 필요로 하는 성능이 높아질수록 비용이 기하급수적으로 늘어나는 단점
  • 하나의 서버에서 웹 서비스를 제공하여 서버 중지 및 장애로 인해 웹 서비스 가용성에 문제가 발생할 수도 있음

2. Scale-out을 통해 저렴한 노드 여러 개를 하나의 클러스터로 구성하는 방식
클러스터로 구성하는 경우, 클러스터 내 하나의 노드에 문제가 발생하여도 웹 서비스가 중단되지 않으므로 가용성이 높은 웹 서비스를 구성할 수 있음.
로드 밸런싱은 Scale-out 방식의 웹 서비스 구성에 주로 사용되고, 네트워크 트래픽을 서비스의 포트 단위로 제어하고, 트래픽을 분산처리함으로써 높은 가용성과 부하 분산을 통한 고효율 웹 서비스를 제공함.

✅ 로드 밸런싱의 방식

라운드 로빈

세션 연결을 순차적으로 맺어주는 방식임. 연결되어 있는 세션 수에 상관없이 순차적으로 연결시키는 방식

해시

해시 알고리즘을 이용한 로드 밸런싱 방식. 클라이언트와 서버 간에 연결된 세션을 계속 유지해 주는 방식으로 클라이언트가 특정 서버로 연결된 이후 동일 서버로만 연결되는 구조

리스트 커넥션(Least Connection)

세션 수를 고려하여 가장 작은 세션을 보유한 서버로 세션을 맺어주는 연결 방식

Response Time

서버 간의 리소스와 커넥션의 차이가 있는 환경에서 사용되는 방식으로 응답시간을 고려하여 빠른 응답시간을 제공하는 서버로 세션을 맺어주는 방식

Amazon ELB

  1. 수신되는 트래픽을 여러 EC2 인스턴스에 자동 배포
  2. 애플리케이션의 내결함성을 확보하며 네트워크 트래픽을 원활하게 자동 분산 처리 기능 제공
  3. 고가용성, 자동 조정 및 강력한 보안 서비스 제공
  4. 세가지 유형의 로드 밸런서를 지원하고 애플리케이션의 필요에 따라 로드 밸런싱 함.

ELB의 주요 특징

1. 상태 확인 서비스(Health Check)

ELB와 연결된 인스턴스의 연결 상태를 수시로 체크하여 인스턴스의 OS나 애플리케이션의 문제로 인해 연결 장애나 서비스 가능 여부에 대한 Health Check를 지속적으로 수행함.
➡️ Health Check를 실패하면 트래픽 전달 ❌

2. Sticky Session

ELB를 사용해서 트래픽을 부하 분산하는 경우 기본적으로는 라운드로빈 사용함.
이 경우 한번 연결된 세션은 다음 연결 시 그대로 연결되지 않고, 다음 연결할 때 다른 인스턴스로 연결될 수도 있어서 세션을 유지할 수 없게 됨.
➡️ 처음 연결된 클라이언트에 별도의 HTTP 기반의 쿠키 값을 생성하여 다음번 연결 요청에 대해 처음 접속했던 서버로 계속 연결하도록 트래픽을 처리

3. 고가용성 구성

단일 가용 영역 또는 여러 가용 영역에 있는 여러 대상에 걸쳐 트래픽을 자동으로 분산할 수 있음.

4. SSL Termination 및 보안 기능

profile
👩🏻‍💻🔥

0개의 댓글