HTTP 200 OK

Memento mori & Carpe diem

CS

Nginx Proxy vs API Gateway(Part. 2)

sjoongh 2023. 12. 20. 13:24

Gateway와 Nginx Proxy의 차이는?

API 프록시와 API 게이트웨이는 모두 기존 API 앞에 위치하여 게이트키퍼처럼 작동하지만 기능에는 큰 차이가 있습니다. 대부분의 경우 API 게이트웨이는 API 프록시가 수행하는 모든 작업과 그 이상을 수행할 수 있습니다. 기능 측면에서 볼 때 아래 다이어그램에 표시된 것처럼 API 프록시는 API 게이트웨이가 보유한 기능의 하위 집합만 있다고 합니다.

 

 

그렇다면 Proxy는 Gateway의 완벽한 하위호환일까요??

 

개인적으로는 그 간의 설명들을 살펴보니 proxy 자체와 비슷하다기보다는 reverseProxy와 Gateway의 개념이 일치하는 것으로 생각됩니다.

 

하지만 reverse Proxy가 Gateway와 일치하는 개념이라고 보기에는 석연찮은 부분이 있었습니다. 이쯤 되니 머릿속에 혼란이 와서 다시 Proxy의 개념을 살펴보았습니다.

 

Proxy 개념

프록시 서버가 설치된 처음 목적은 웹 서핑을 비롯한 인터넷 속도의 향상이었다.
1990년대 후반까지만 해도 이런 목적으로 사용되었다. 현재 이 역할은 CDN이 하고 있다. 그리고 내부정보 보안이 필요한 다수의 기업에서 프록시서버를 이용해서 외부망에 접속한다.
https://namu.wiki/w/프록시 서버

 

 

기존의 프록시는 인터넷 속도의 향상을 위한 목적으로 사용되었고, 현재는 CDN(콘텐츠 전송 네트워크)이 전문적으로 그 역할을 이어받았습니다. 즉 프록시는 CDN보다는 조금 더 광범위한 기능을 제공하고 있는 것이라고 볼 수 있습니다.

 

 

개념을 다시 살펴보아도 무언가 명확하지 않은 부분이 있었고 답답한 마음에 GPT에게 답을 물어보았습니다.

 

API Gateway와 Reverse Proxy의 개념은 비슷하지만, 완전히 같은 것은 아닙니다.

API Gateway는 일반적으로 서비스 게이트웨이처럼 작동하지만, 주로 애플리케이션 프로그래밍 인터페이스(API) 트래픽을 제어하는 데 사용됩니다. API Gateway는 주로 보안, 모니터링, 로깅, 라우팅, 트랜잭션 관리 등의 기능을 제공합니다.

Reverse Proxy는 반대로 클라이언트 요청을 다른 서버에 전달하는 것이 주목적이며, 일반적으로 보안, 로드 밸런싱, 캐싱 등의 기능을 제공합니다.

따라서 API Gateway와 Reverse Proxy는 비슷한 기능을 제공할 수 있지만, 정확하게는 다릅니다.

 

답변을 받은 저의 생각으로는 reverse proxy와 Gateway는 유사한 기능이 많지만 목적에 따라 어떤 것을 선택해야 할지가 중점이라고 느꼈습니다.

 

API 게이트웨이 역방향 프록시
API 트래픽에 대한 단일 진입점 제공 웹 서버 앞에서 적절한 서버로 요청을 전달
API의 보안, 확장성, 관리 효율성 향상 웹 애플리케이션의 보안 및 성능 향상

 

  • 게이트웨이 라우팅은 라우팅 규칙 및 메타데이터를 기반으로 백엔드 서비스에 착신 요청을 지시하는 데 중점
  • NGINX 로드 밸런싱은 성능 및 가용성을 향상하기 위해 여러 백엔드 서버에 걸쳐 네트워크 트래픽을 균등하게 분산하는 데 중점
  • 게이트웨이 라우팅은 NGINX 또는 다른 프레임워크를 사용하여 구현될 수 있지만,
  • NGINX 로드 밸런싱은 게이트웨이 라우팅과 더불어 독립형 로드 밸런싱으로도 사용할 수 있습니다.

 

즉 주요 목표가 전체 수명 주기 관리 및 향상된 개발자 경험을 통해 서로 다른 네트워크 통신에서 서로 다른 프로토콜을 호환시키고 여러 API를 관리하는 것이라면 API 게이트웨이에서 제공하는 다양한 기능이 필요하고
웹 트래픽 처리를 위한 범용 솔루션, 신뢰할만한 중개자 역할로 보안적인 요소가 필요할경우 프록시가 더 적합하다고 생각합니다.

 

 

결론

이제야 GateWay와 Proxy서버의 차이가 무엇인지 구분 할 수 있었습니다.

 

최근에는 프록시 서버의 발달로 인해 게이트웨이가 하고 있던 역할을 프록시 서버가 대체하고 있는 추세입니다. 때문에 최근에는 위에서 언급한 프로토콜의 변환이 가능한 프록시 서버도 존재합니다. 이처럼 모호한 부분이 많지만 프록시 서버와 게이트웨이 모두 게이트키퍼의 역할이기에 각 프로그램들이 제공하는 서비스 명칭(게이트웨이인지, 프록시인지)을 유심히 살펴보고 기본 사용 사례를 체크해 현재 프로젝트 에 적합한 기술을 채택하는것이 중요할 것 같습니다.

 

여기까지 Proxy와 API Gateway에 대해 알아보았습니다. Nginx에 대해서도 추가적인 설명을 하고 싶었으나 글을 작성하다 보니 Proxy와 Gateway의 차이에 중점을 두고 작성한 것 같습니다. 미흡한 부분이 많지만 읽어주셔서 감사합니다.

 

 

출처

https://konghq.com/blog/engineering/api-gateway-vs-api-proxy-understanding-the-differences

https://www.devopsschool.com/blog/load-balancers-vs-api-gateway-vs-reverse-proxy/

'CS' 카테고리의 다른 글

event storming이란?  (1) 2024.04.28
Decode, Encode, Parse, Stringify 개념과 사용  (0) 2024.02.17
Nginx Proxy vs API Gateway(Part. 1)  (0) 2023.12.09
Connection Pool 테스트와 고찰(2)  (0) 2023.11.07
Connection Pool 테스트와 고찰(1)  (0) 2023.11.07