인프런 커뮤니티 질문&답변

Chanuk님의 프로필 이미지
Chanuk

작성한 질문수

미국 빅테크 29개의 실습으로 배우는 시스템 디자인 설계

General Service 서비스 컴포넌트

General Service 서비스 컴포넌트 관련 질문있습니다!

해결된 질문

작성

·

71

·

수정됨

1

안녕하세요~ 섹션 2 General Service 서비스 컴포넌트의 마지막 부분에 질문이 있습니다.

 

이번 강의 마지막 부분에서 설명해주신 내용과 그림에는 게이트웨이가 모놀리스 서비스에만 적용이 가능하고 마이크로서비스에는 로드밸런서를 사용해야 하는 걸로 나와있는데요~

보통 MSA에는 게이트웨이로 설명하고, 동일한 서비스들에 트래픽을 분산시키거나 장애 조치를 할 때 로드밸런서를 둔다고 하지 않나요?

혹시나 제가 잘못 알고 있는 부분을 짚어 주셨으면 해서 질문 드립니다!

 

그리고 이전 강의에서 LB와 게이트웨이를 다르게 설명해주신 부분도 굳이 분리할 수도 있지만... 보통 게이트웨이에는 로드 밸런싱 기능이 포함되는 것으로 보는 것 같던데 이 부분도 궁금합니다!

답변 2

1

미국달팽이님의 프로필 이미지
미국달팽이
지식공유자

좋은 관점의 질문입니다. 제가 강의에서 명확하게 설명드리지 못한 부분인 것 같습니다.

 

먼저 MSA(마이크로서비스 아키텍처)에서는 API 게이트웨이로드 밸런서가 모두 중요한 역할을 합니다. 강의에서 게이트웨이를 모놀리식 아키텍처에만 적용 가능하다고 설명한 부분이 있었다면, 이것은 의도하지 않은 오해일 수 있습니다. 사실, API 게이트웨이는 MSA에서도 매우 흔하게 사용됩니다.

게이트웨이는 MSA에서도 클라이언트의 진입점으로서, 다양한 마이크로서비스로 요청을 라우팅하고 보안, 인증, 트래픽 관리 등의 여러 기능을 제공합니다. 또한, 로드 밸런서는 동일한 서비스 인스턴스들 간에 트래픽을 분산시키는 역할을 하죠. 즉, MSA에서는 API 게이트웨이가 상위에 위치하고, 각 서비스 인스턴스에 대한 트래픽을 분배할 때 로드 밸런서가 사용될 수 있습니다.

그리고, 게이트웨이와 로드 밸런서는 그 기능과 목적이 다릅니다. API 게이트웨이는 트래픽을 여러 마이크로서비스로 라우팅하는 중간 브로커 역할을 하며, 로드 밸런서는 특정 마이크로서비스의 여러 인스턴스 사이에서 트래픽을 분배하는 역할을 합니다.

하지만, 요즘에는 게이트웨이에서 로드 밸런싱 기능이 통합되어 제공되는 경우도 많습니다. 예를 들어, Nginx나 AWS API Gateway 같은 서비스들은 게이트웨이 기능과 함께 기본적인 로드 밸런싱도 수행할 수 있습니다. 그래서 때로는 두 개념이 겹치기도 하지만, 여전히 그 목적과 역할은 다르다고 볼 수 있습니다.

 

제가 강의에서 이 부분이 조금 더 명확하게 전달될 필요가 있었을 것 같네요. 앞으로 수정하거나 보완하는 데 참고하겠습니다.

1

안녕하세요, 인프런 AI 인턴입니다. Chanuk님께서 질문해 주신 부분에 대해 답변 드리겠습니다.

Gateway와 Load Balancer의 차이

  1. 게이트웨이(Gateway):

    • 보통 API Gateway는 클라이언트 요청을 받아 그 요청을 적절한 서비스로 전달하는 역할을 합니다. 이는 API 요청 인증, 요청 변환, 경로 제어 등 다양한 기능을 수행할 수 있습니다.
    • 종종 모놀리스 시스템에서도 사용되며, 마이크로서비스 아키텍처(MSA)에서도 서비스의 엔트리 포인트로 활용됩니다.
    • 마이크로서비스 환경에서는 각각의 서비스에 대한 접근을 제어하고 라우팅하는 데 주로 사용됩니다.
  2. 로드 밸런서(Load Balancer):

    • 대상 서버들 간의 트래픽을 분산시킵니다. 동일한 서비스의 여러 인스턴스들 사이에 트래픽을 효율적으로 분배하는 역할을 합니다.
    • 로드밸런서는 MSA에서도 각각의 마이크로서비스 뒤에 위치하여 복수의 인스턴스 간에 트래픽을 분배하고, 장애 발생 시 서비스 가용성을 보장할 수 있습니다.

API Gateway에 포함된 Load Balancing

  • 많은 최신 API Gateway 솔루션들은 로드 밸런싱 기능을 포함하고 있습니다. 즉, API Gateway가 클라이언트와 여러 서비스 인스턴스 간의 요청을 자연스럽게 분산시킬 수 있습니다.
  • 하지만, 이러한 것도 솔루션마다 다르고 구현에 따라서도 달라질 수 있으므로 개별 솔루션의 기능을 확인해야 합니다.

기존 답변 참고

이와 관련하여 추가적으로 도움이 될만한 정보를 제공하는 질문 게시글을 추천드립니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Chanuk님의 프로필 이미지
Chanuk

작성한 질문수

질문하기