API Gateway를 알아보기 전에 우선 모놀로틱 아키텍처와 마이크로 서비스를 알아야 합니다.
1. 모놀로틱 아키텍처 (Monolithic Achitecture)
비즈니스 로직, DB, UI 등을 하나의 패키지에 담아 빌드하고 배포하는 아키텍처입니다
장점
- 개발 초기에 단순한 아키텍어 구조와 개발이 용이합니다.
- 어떤 서비스든지 개발 환경이 같아 복잡하지 않습니다.
단점
- 프로젝트 규모가 커짐에 따라 애플리케이션 구동시간이 늘어나고 빌드, 배포 시간도 길어집니다.
- 조그마한 수정사항이 있어도 전체를 다시 빌드하고 배포를 해야합니다.
- 일부분의 오류가 전체에 영향을 미칩니다.
만약, 애플리케이션에서 일부 기능의 패치가 필요하게 된다면 모놀로식 아키텍처로 설계된 애플리케이션은 서버 전체를 다운시킨 후 코드를 수정하고 장시간에 걸쳐 배포 작업을 해야 합니다.
이러한 문제점에 대한 대안으로 마이크로 서비스 아키텍처가 있습니다.
2. 마이크로 서비스
느슨히 결합된 작은 분산 서비스이며 애플리케이션 기능을 분해하고 분리해서 완전히 상호 독립적이어야 합니다.
장점
- 대형 애플리케이션을 관리하기 편합니다.
- 해당 서비스에 대한 적합한 기술, 언어, DB등을 선택하여 구현할 수 있습니다.
단점
- 여러 서비스들이 분산되어있기 때문에 모니터링이 힘듭니다.
- 통신관련 오류가 잦을 수 있습니다.
그렇다면, 많은 서버를 어떻게 연결할까?
3. API Gateway
여러 API 서버 앞에서 서버들의 엔드 포인트를 하나로 통합해주고, 클라이언트의 특정 API에 대한 요청을 라우팅 해주는 역할을 합니다.
사용하는 이유
마이크로 서비스는 애플리케이션의 다양한 기능을 더 쉽게 개발, 배포 및 유지 관리할 수 있지만 고객이 애플리케이션에 빠르고 안전하게 액세스하기가 더 어려워 질 수 있습니다.
API 게이트웨이는 이 문제를 해결할 수 있는데, 고객이 각 마이크로 서비스에 대한 액세스를 개별적으로 요청하는 대신 게이트웨이는 요청을 단일 진입 점으로, 해당 요청을 적절한 서비스에 지불하고 결과를 수집하여 요청자에게 다시 전달합니다. API 게이트웨이를 사용하는 주된 이유인 이 기능을 라우팅이라고 합니다.
역할 및 기능
- 여러개로 분산된 백엔드 서비스 또는 데이터와 접속하도록 합니다.
- 백엔드 서비스의 트래픽 제어
- 과도한 트래픽 인입 제한 기능 : API Gateway 호출 양을 제헌하여 경곗값을 넘는 트래픽을 제한할 수 있습니다.
- 백엔드 서비스 인입 제한 기능 : 캐시 설정을 통해 백엔드 서비스로 인입되는 트래픽을 제어할 수 있습니다.
- 안전한 사용자 인증
- 모니터링
- API 호출 모니터링, 사용 현황, 응답시간, 오류 발생 등의 다양한 정보 확인이 가능합니다.
출처
https://tommypagy.tistory.com/143
https://lion-king.tistory.com/entry/마이크로-서비스-vs-모놀로식-아키텍처
https://ideatec.co.kr/APIGateway_view/?bmode=view&idx=6718917&back_url=&t=board&page=
https://ideatec.co.kr/APIGateway_view/
https://www.tibco.com/ko/reference-center/what-is-an-api-gateway
'Spring Cloud' 카테고리의 다른 글
Spring Cloud Gateway 설정 및 테스트 (0) | 2021.10.31 |
---|---|
DB 클러스터링과 리플리케이션 (0) | 2021.10.27 |
캐시 서버 (0) | 2021.10.27 |
VIP(Virtual IP)란? (0) | 2021.10.27 |
부하 분산(로드밸런싱)을 위한 네트워크 (0) | 2021.10.27 |