웹 애플리케이션이 발전하면서 현대적인 애플리케이션을 설계하고 확장하기 위해서는 여러 가지 구성 요소들의 역할을 이해하고 사용하는 것이 필수적이 되었습니다. 서비스의 규모와 복잡성이 증가하게 되었고, 이로 인해서 다양한 아키텍처들이 등장했어요. 그중에서도 로드 밸런서(Load Balancer)와 API Gateway(API 게이트웨이)는 분산 시스템에서 중요한 역할을 담당하는 요소들입니다.
이번 글에서는 로드 밸런서와 API 게이트웨이의 개념과 역할 그리고 이 둘의 차이점과 사용 사례들을 알아볼게요.
🎛️ 로드 밸런서 Load Balancer
개념
로드 밸런서(Load Balancer)는 여러 서버에 걸쳐 네트워크 트래픽을 분산시키는 장치 또는 소프트웨어입니다. 로드 밸런서는 특정 서버에 과도한 트래픽이 몰려 처리하지 못하고 과부하가 걸리는 것을 방지하고 서비스의 가용성을 높이는 데 중점을 두고 있습니다.
이는 클라이언트의 요청을 수신한 후, 내부 알고리즘을 사용하여 가장 적합한 서버에 해당 요청을 전달합니다.
로드 밸런서의 역할
로드 밸런서는 다음과 같은 역할을 수행합니다.
트래픽 분산: 서버의 부하를 줄여주기 위해 다른서버들에게 균등하게 트래픽을 분산시켜 서비스의 성능을 최적화합니다.
장애 조치: 특정 서버에 문제가 발생하면, 로드 밸런서는 자동으로 트래픽을 다른 서버로 전환합니다.
스케일링: 트래픽이 증가함에 따라 서버를 추가하거나 제거하는 스케일링 작업을 지원합니다.
SSL 종료: 클라이언트와의 SSL 연결을 로드 밸런서에서 종료하여 백엔드 서버의 부담을 줄일 수 있습니다.
로드 밸런서의 종류
로드 밸런서는 L4 로드 밸런서와 L7 로드 밸런서가 있습니다. L4와 L7의 의미는 OSI 7 계층의 숫자를 의미합니다.
L4 로드밸런서는 OSI 모델의 4계층인 전송 계층에서 동작하며, IP 주소와 포트 번호를 기반으로 트래픽을 분산시킵니다.
L7 로드밸런서는 OSI 모델의 7계층인 애플리케이션 계층에서 동작하며, URL, 쿠키, HTTP 헤더 등을 기반으로 트래픽을 분산시킵니다.
🛠️ API 게이트 웨이 (API Gateway)
개념
API 게이트웨이는 클라이언트의 요청을 수신하고, 이를 내부 서비스로 라우팅 하는 데 사용되는 서버입니다. 주로 MSA(마이크로서비스 아키텍처)에서 활용되며, 여러 서비스 간의 복잡한 통신을 단순화하고 중앙에서 관리할 수 있게 합니다.
API 게이트에이는 단순한 라우팅 외에도 인증, 인가, 로깅, 모니터링 등 다양한 기능을 제공합니다.
API 게이트웨이의 역할
API 게이트웨이는 다음과 같은 역할을 수행합니다.
요청 라우팅: 클라이언트의 요청을 적절한 마이크로서비스로 라우팅합니다.
API 집합체: 여러 API를 하나의 엔드포인트로 묶어 클라이언트에 제공할 수 있습니다.
보안: API 게이트웨이는 인증 및 인가 작업을 수행하여 보안을 강화합니다.
데이터 변환: 요청 및 응답 데이터를 필요한 형식으로 변환합니다.
캐싱: 자주 요청되는 데이터를 캐싱하여 응답 속도를 향상합니다.
🚀 로드 밸런서 vs API 게이트웨이
목적과 기능
로드 밸런서와 API 게이트웨이는 모두 트래픽을 처리하고 관리하는 역할을 하지만, 그 목적과 기능에는 차이가 있습니다.
로드밸런서는 트래픽을 각 서버들에게 균등하게 분산시키는 것, 즉 부하분산이 주목적입니다. 그리고 장애 조치, SSL 종료 등 네트워크 레벨의 기능을 제공합니다.
API 게이트웨이는 마이크로서비스 간의 통신을 관리하고, 다양한 부가 기능을 제공하는 것이 주 목적입니다. 추가적으로 라우팅, 인증/인가, 데이터 변환, 로깅 등 애플리케이션 레벨의 기능을 제공합니다.
스케일링과 확장성
로드 밸런서는 서버의 스케일링과 관련된 기능에 중점을 두고 있습니다. 따라서 트래픽이 증가에 함에 따라 쉽게 서버를 추가하거나 제거할 수 있게 합니다.
반면에 API 게이트웨이는 마이크로서비스 아키텍처의 확장성을 지원하며, 서비스 간의 통신을 중앙에서 관리함으로써 시스템의 복잡성을 줄입니다.
🌴 결론
로드 밸런서와 API 게이트웨이는 현대의 분산 시스템에서 매우 중요한 역할을 수행하는 두 가지 핵심 컴포넌트입니다. 로드 밸런서는 주로 네트워크 레벨에서 트래픽을 관리하고, 서버의 부하를 분산시키는 데 중점을 둡니다. 반면에 API 게이트웨이는 애플리케이션 레벨에서 마이크로서비스 간의 통신을 관리하고, 인증, 인가, 데이터 변환 등의 다양한 기능을 제공합니다. 두 컴포넌트를 적절히 활용함으로써 시스템의 가용성과 확장성을 높이고, 복잡한 서비스 간의 통신을 효율적으로 관리할 수 있습니다.
이 글을 통해 로드밸런서와 API 게이트웨이의 개념과 차이점을 이해하시는데 도움이 되시길 바랍니다. 감사합니다.
'쿤즈 Dev > 용어사전' 카테고리의 다른 글
Base64 와 Base64 Url Safe 의 차이점 (0) | 2020.12.15 |
---|
댓글