Programming

API 게이트웨이와 로드밸런서 차이, 진짜 아는 지 확인해보시죠

송코딩 songcoding 2024. 11. 9. 09:39

안녕하세요, 김송아입니다.

 

 

요즘 API 게이트웨이와 로드밸런서는 소프트웨어 아키텍처 설계에 없어서는 안되는 요소로 등장하고 있습니다.

하지만 이상~하게도 이 두가지 개념이 혼용되어 사용되고 있다는 거예요..!

 

그래서.. 오늘은 가볍게(?) API 게이트웨이와 로드밸런서를 구분해보는 시간을 가져보려 해요.

 

사실 이 두가지가 합쳐진다는 건..👀

전혀 다른 이상해씨랑 메타몽이 합쳐진 그런 겁니다...

말이 되는 것 같기도 하고..?

 

메타몽 조하

 

 

근데 또, 이 헷갈리는 이유가 너무 당연한 것 같기도 해요.

왜냐면, 그냥 멀리서 흐린눈으로 보면 둘다 그냥 갈림길 역할 인 것 같거든요..!

 

ㅋㅋㅋㅋㅋㅋ이게 뭐얔ㅋㅋ @인생 최대의 갈림길 출처: DVDPrime

 

 

 

자, 하나씩 뜯어봅시다.

 

🕵🏻‍♂️ API 게이트웨이

는 말 그대로 게이트 웨이 입니다.

게이트(gate; 대문 역할을 하는) 웨이(way; 길)

 

 

클라이언트에게 요청이 오면, 무조건 지나가야 하는 대문 같은 길입니다.

 

일단 서로 다른 기능들이라도 어떤 요청이든 이 길은 무조건 지나가야하고,

✔️클라이언트가 어떤 요청인지에 따라 어떤 길로 보내줄 지 결정되는 거죠.

 

우리는 이런 기능을 클라이언트에게 온 요청을 라우팅한다 라고 표현합니다.

💡라우팅이란?
네트워크에서 적절한 경로를 선택하는 프로세스

 

마! 게이트웨이는 이런겁니다

 

무조건 지나가야하는 길이기 때문에 추가 기능도 제공할 수 있는 곳입니다.

인증, 인가와 같이 요청에 무조건 수행되어야 하는 로직을 여기서 구현할 수 있거든요!

 

 

 

그럼, 이제 두번째입니다.

🕵🏻‍♂️로드 밸런서

로드(load) 밸런서(balancer)

@구글 어학 사전

 

 

로드(load)란, 영어로 싣다, 채우다, 적재하다 라는 의미를 가지고 있어요.

서버의 입장에서는, 클라이언트의 요청에 맞게 일을 수행하는 과정들을 의미합니다.

 

즉, 일을 수행하는 과정에 균형을 맞춰주는 친구입니다.

멋진 말로 다시 얘기하면, 동일한 기능을 수행할 수 있는 ✔️여러 서버 간의 트래픽을 균등하게 분산시키는 역할을 합니다.

 

 

 

트래픽을 분산시킨다니.. 직접하려니 벌써 뭐 부터 해야할지 감이 안잡힙니다.

그래서 보통 우리는 만들어진 기술을 활용하곤 합니다.

 

AWS ELB(Elastic Load Balancing)도 로드 밸런서의 대표적인 제품입니다.

 

 

 

 

자 이제 느낌 오시겠지만, 두가지 기술은 전혀 다른 역할을 담당하고 있습니다.

 

그럼 여태 왜 헷갈려했냐구요?

이 두가지 기술 다 일단 갈림길 전에, 무조건 지나와야하는 길이기 때문에, 헷갈렸던 거죠..!

 

다시 체크할게요.

 

✔️ API 게이트 웨이는 하는 일이 A, B인지에 따라서 나누는 역할을 하는 것이고

✔️ 로드 밸런서는 하는 일이 A라면, 부하가 걸리지 않도록 A1, A2, A3 ... 서버에 분산시키는 겁니다!

 

즉, 하나의 그림을 그려보면 이렇게 되겠죠?

 

소리질뤄 아키텍ㅊ ㅓ!!!! @김송아

 

 

 

두 기술 모두 쓰면 당연히 서비스가 안정적으로 운영 되겠죠?

 

요즘 많이 쓰이는 NginX(엔진엑스)라는 제품은,

API 게이트웨이와 로드 밸런서의 역할을 동시에 수행할 수 있습니다.

 

갓진엑스

 


NginX 하나 만으로도 API 라우팅과 트래픽 분산을 해낼 수 있으니,

이것이야 말로 일석이조!

시스템 아키텍처를 짤 때, 어떤 것을 선택할지 고민할 필요가 없는 좋은 선택지가 되겠죠?

 

 

혹시 관심 있으신 분들은 한번 슬쩍 공부해보시는 걸 추천드립니다.

 

 

자 그럼 여러분,

좋은 주말 보내시구 우린 또 다음주에 보시죠💓

 

감사합니다.

김송아 드림