작성
·
293
0
안녕하세요. 처음 msa를 접하고 구성 관련해서 공부 중 궁금한 게 있어 문의드립니다.
msa를 구성한다고 할 때
프론트엔드 <->APIGateway <-> 백엔드 <-> DB
이 흐름이 기본이라고 봐야 하나요?
이렇게 구성하고 외부로 노출되는 도메인이 프론트엔드, APIGateway 이렇게 두 개가 되는걸가요?
여기에 ISTIO까지 추가된다면
ISTIO GATEWAY <-> 프론트엔드 <-> APIGateway <-> 백엔드 <-> DB
이런 구조로 구성해서 도메인을 ISTIO GATEWAY만 가지고 ISTIO GATEWAY가 프론트엔드와 APIGateway로 라우팅하는 식으로 구성하는게 맞을까요?
아니면 APIGatway를 가장 앞에 두고 APIGateway를 통해서만 프론트엔드와 백엔드를 호출하는 방법은 잘못 구성한거라고 봐야할까요?
아래처럼 구성하니 프론트엔드에서 css, image들을 불러올 때마다 APIGateway를 타고 가야해서 이 방법이 맞는 건가 싶습니다.
APIGateway <-> 프론트엔드
<-> 백엔드 <-> DB
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
일반적으로 MSA 아키텍처에서는 프론트엔드 - API Gateway - 백엔드 - DB 의 흐름을 따르는 것이 일반적입니다. 이렇게 구성하면 외부 도메인에서는 프론트엔드와 API Gateway 두 개가 노출되게 됩니다.
ISTIO를 추가한다면 ISTIO Gateway가 프론트엔드와 API Gateway로 라우팅하는 구조로 구성할 수 있습니다. 즉, ISTIO Gateway가 프론트엔드와 API Gateway를 호출하는 역할을 수행하는 것이죠.
하지만 API Gateway를 가장 앞에 두고 API Gateway를 통해서만 프론트엔드와 백엔드를 호출하는 방법도 가능합니다. 이 경우 프론트엔드의 CSS나 이미지를 불러올 때마다 API Gateway를 타고 가야하는 단점이 있을 수 있습니다.
어떤 구성 방식을 선택하느냐는 여러 요소(보안, 확장성, 유지보수 등)를 고려하여 결정해야합니다. 구성 방식은 프로젝트의 상황과 요구사항에 따라 다를 수 있으니 참고해주시면 좋을 것 같아요.
추가로 API Gateway의 역할은 주로 인증, 인가, 라우팅, 트래픽 제어 등의 기능을 수행하는 것이 일반적입니다.
더 자세한 내용은 MSA 아키텍처의 설계 원칙에 대해 공부하시면 도움이 될 것입니다. 혹시라도 구체적인 기술에 대한 질문이 있다면, 해당 기술에 대한 특징과 사용 사례를 따져보시면 되겠습니다.