사붐이개발일기

MSA 요약 정리 (Load Balancer, API Gateway, Service Discovery) 본문

Study/개발방법론

MSA 요약 정리 (Load Balancer, API Gateway, Service Discovery)

sabeom 2023. 8. 11. 16:35

Load Balancer - aws ALB

로드밸런서는 서버에 가해지는 부하(=로드)를 분산(=밸런싱)해주는 장치 또는 기술을 통칭합니다. 클라이언트와 서버풀(Server Pool, 분산 네트워크를 구성하는 서버들의 그룹) 사이에 위치하며, 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리해 각각의 서버가 최적의 퍼포먼스를 보일 수 있도록 합니다.

 

그렇다면 로드 밸런싱은 모든 경우에 항상 필요할까요?

 

로드밸런싱은 여러 대의 서버를 두고 서비스를 제공하는 분산 처리 시스템에서 필요한 기술입니다.

 

서비스의 제공 초기 단계라면 적은 수의 클라이언트로 인해 서버 한 대로 요청에 응답하는 것이 가능합니다. 하지만 사업의 규모가 확장되고, 클라이언트의 수가 늘어나게 되면 기존 서버만으로는 정상적인 서비스가 불가능하게 됩니다. 이처럼 증가한 트래픽에 대처할 수 있는 방법은 크게 두가지 입니다. 

 

Scale-up과 Scale-out

Scale-up의 경우 서버 자체의 성능을 확장하는 것을 의미합니다.

Scale-out의 방식으로 서버를 증설하기로 결정했다면 여러 대의 서버로 트래픽을 균등하게 분산해주는 로드밸런싱이 반드시 필요합니다.

 


API Gateway  - Spring Cloud Gateway, Spring Cloud Netflix Zuul

  • 각각의 마이크로서비스들은 서로의 포트 번호를 몰라도 된다.
  • Front 에서는 요청을 Gateway로만 보내면 되기 떄문에 Gateway 포트만 알면 모든 요청을 수행할 수 있다.
  • 모든 요청은 Gateway를 거치기 때문에 로그를 쉽게 다룰 수 있다.
  • Gateway가 요청의 진입점이므로 통합 인증을 수행할 수 있다.

API Gateway 주요 기능

1. 인증/인가 및 토큰 발급

2. 공통 로직 처리

3. 로드밸런싱

4. 메디에이션 기능


Service Discovery - Spring Cloud Eureka

마이크로 서비스가 다른 마이크로 서비스를 호출하려면 대상의 IP, Port를 알아야한다.

하지만, random IP, port일 경우 마이크로 서비스의 정보를 알기가 쉽지 않기 때문에, 각 마이크로 서비스의 IP, Port 정보를 저장하고 검색해주는 Discovery Service(Eureka Service)가 필요하다.

 

 


API Gateway + Service Discovery


https://wonit.tistory.com/497

 

 

Service Discovery


Client-side Discovery

 


Server-side Discovery

 

 

 

 

 

 

 

 

참고자료

1. MSA 아키텍처 구현을 위한 API Gateway의 이해

2. Spring Cloud Gateway 를 이용해 API Gateway를 구성하고 실습해보자 (Eureka Server 를 이용해 Load Balancing 하기)

3. 마이크로서비스 패턴 - 서비스 디스커버리

4. API Gateway란? 개념과 주요 기능

5. 로드밸런서의 개념과 특징

  • https://m.post.naver.com/viewer/postView.naver?volumeNo=27046347&memberNo=2521903