MSA에 중요한 3요소에 대해 알아보자

2025. 9. 15. 13:02·백엔드

이 글은 알파코에서 진행 중인 [신한투자증권] 프로디지털아카데미 6기 과정 중 백엔드 과목의 김송아 강사님의 강의를 기반으로 작성되었습니다

 

 

 

MSA를 구현하기 위해서 필요한 3가지 요소에 대해서 공부해보고자 한다.

 

로드 밸런서

들어오는 클라이언트 요청을 여러 서비스 인스턴스로 분산시켜 서버의 부하를 줄이고, 고가용성을 보장하는 역할을 담당

 

특징

  • Health Check: 비정상 인스턴스를 자동으로 제외.
  • Scale-out 지원: 서비스 인스턴스를 수평적으로 확장 가능.
  • 트래픽 분배 알고리즘: Round Robin, Least Connection, IP Hash 등 적용 가능.

 

서비스 레지스트리

 

각 서비스 인스턴스의 네트워크 위치(IP, 포트 등)를 등록·관리하고, 다른 서비스가 이를 조회할 수 있게 하는 주소록 역할.

MSA에 여러개의 서비스가 있기때문에 필요함

 

특징

 

  • 서비스 자동 등록(등록/해제)
  • 클라이언트 사이드 디스커버리 또는 서버 사이드 디스커버리 지원
  • 장애 인스턴스 자동 제거

 

 

 

 

API Gateway

 

 

외부 클라이언트와 내부 마이크로서비스 사이의 단일 진입점(Entry Point) 역할

  • 특징
    • 라우팅: 요청을 적절한 서비스로 전달
    • 인증/인가, 로깅, Rate Limiting, CORS 처리 등 공통 기능 제공
    • 응답 Aggregation: 여러 마이크로서비스 호출을 하나로 묶어 클라이언트에 반환

 

 

 

그림으로 그려보면 다음과 같이

 

요약하자면 로드밸런서를 통해  인스턴스 부하를 나누고 게이트웨이를 통해 요청에 맞는 서비스로 가게 된다.

그리고 이런 서비스를 등록하고 조회하는걸 도와주는 게 서비스 레지스트리

 

 

 

 

 

이때 로드밸런서를 붙이는 위치는 크게 두가지가 있다

이렇게 하나의 서비스에 대해 여러개가 있어서 로드밸런서로 분배할 수도 있고

아래처럼 모든 서비스에 대해 여러개로 로드밸런서로 둘 수 있다.

 

후자는 넷플릭스처럼 엄청 큰 데이터를 다루는 서비스에 적용되고 일반적으로는 전자를 사용한다.

 

 

 

'백엔드' 카테고리의 다른 글

IntelliJ Github 연동시 로그인 실패 오류 해결  (2) 2025.02.04
포스트맨에서 한글 인코딩 오류(마지막 글자 사라짐) 해결  (2) 2022.07.28
like 를 이용하여 키워드검색 api 구현하기  (2) 2022.07.28
git 병합 충돌 발생시에 파일이름을 못찾겠다고 할 때  (0) 2022.07.25
병합시 발생하는 git conflict 충돌 해결  (1) 2022.07.16
'백엔드' 카테고리의 다른 글
  • IntelliJ Github 연동시 로그인 실패 오류 해결
  • 포스트맨에서 한글 인코딩 오류(마지막 글자 사라짐) 해결
  • like 를 이용하여 키워드검색 api 구현하기
  • git 병합 충돌 발생시에 파일이름을 못찾겠다고 할 때
hiwon
hiwon
천천히 굴러가는 코딩일기
  • hiwon
    하이원의 코딩 일기
    hiwon
  • 전체
    오늘
    어제
    • 분류 전체보기 (83)
      • 프론트엔드 (0)
        • react (0)
      • 백엔드 (13)
        • node.js (1)
        • spring (6)
      • 코딩테스트 (57)
        • 백준 (41)
        • 프로그래머스 (15)
      • 프로디지털아카데미 (9)
        • 클라우드 (1)
        • JavaScript (1)
      • github (1)
      • AWS (2)
      • Infra (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프디아
    그리디
    Java
    bastion host
    깃허브
    BFS
    알파코캠퍼스
    UnionFind
    EC2
    K디지털트레이닝
    spring
    github
    코테
    알파코
    백엔드
    프로그래머스
    kdt교육
    알고리즘
    투포인터
    다익스트라
    python
    IT기획
    코딩테스트
    백트래킹
    프로디지털아카데미
    백준
    신한투자증권
    파이썬
    MSA
    AWS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
hiwon
MSA에 중요한 3요소에 대해 알아보자
상단으로

티스토리툴바