Spring Cloud란 무엇일까?

2026. 6. 25. 15:37·MSA

1. Spring Cloud

마이크로서비스 개발을 위해 다양한 도구와 서비스를 제공하는 스프링 프레임워크의 확장으로, 마이크로서비스 아키텍처를 쉽게 구현하고 운영할 수 있도록 도와주는 역할을 하는 프레임워크이다.

 

2. Spring Cloud의 주요 모듈

2-1. 서비스 등록 및 디스커버리

★ Eureka(위치 저장소): 넷플릭스가 개발한 서비스 디스커버리 서버로, 마이크로서비스 아키텍처에서 각 서비스의 위치를 동적으로 관리한다.

  • 모든 서비스 인스턴스의 위치를 저장하는 중앙 저장소 역할을 하며, 서비스 인스턴스의 상태를 주기적으로 체크하여 가용성을 보장한다.

 

2-2. 로드 밸런싱: 서버가 받는 부하(Load)를 여러 대의 서버로 균등하게 나누어 주는(Balancing) 기술

★ Ribbon: 넷플릭스가 개발한 클라이언트 사이드 로드 밸런서로, 서비스 인스턴스 간의 부하를 분산한다.

  • 주요 특징
    • 서버 리스트 제공자: Eureka로부터 서비스 인스턴스 리스트를 제공받아 로드 밸런싱에 사용
    • 로드밸런싱 알고리즘: 라운드 로빈, 가중치 기반 등 다양한 로드 밸런싱 알고리즘 지원
    • Failover: 요청 실패 시 다른 인스턴스로 자동 전환

2-3. 서킷 브레이커: MSA 환경에서 연쇄적인 장애 전파를 막기 위해 문제가 발생한 서비스로의 요청을 즉시 차단하고 우회시키는 패턴

★ Hystrix: 넷플릭스가 개발한 서킷 브레이커 라이브러리로, 서비스 간의 호출 실패를 감지하고 시스템의 전체적인 안정성을 유지하는 역할을 한다.

  • 주요 특징:
    • 서킷 브레이커 상태: 클로즈드, 오픈, 하프-오픈 상태를 통해 호출 실패를 관리한다.
    • Failback: 호출 실패 시 대체 로직을 제공하여 시스템 안정성 확보한다.
    • 모니터링: Hystrix Dashboard를 통해 서킷 브레이커 상태 모니터링한다.

 

★ Resilience4j: 자바 기반의 경량 서킷 브레이커 라이브러리로, 넷플릭스 Hystrix의 대안으로 개발되었다.

  • 주요 특징:
    • 서킷 브레이커: 호출 실패를 감지하고 서킷을 열어 추가적인 호출을 차단하여 시스템의 부하를 줄여준다.
    • Failback: 호출 실패 시 대체 로직을 실행하여 시스템의 안정성을 유지해준다.
    • 타임아웃 설정: 호출의 응답 시간을 설정하여 느린 서비스 호출에 대응할 수 있다.
    • 재시도: 재시도 기능을 지원하여 일시적인 네트워크 문제 등에 대응할 수 있다.

3. Spring Cloud 구성 요소의 활용

3-1. API 게이트웨이

★ Zuul: 넷플릭스가 개발한 API 게이트웨이로, 모든 서비스 요청을 중앙에서 관리한다.

  • 주요 특징:
    • 라우팅: 요청 URL에 따라 적절한 서비스로 요청 전달
    • 필터: 요청 전후에 다양한 작업을 수행할 수 있는 필터 체인 제공
    • 모니터링: 요청 로그 및 메트릭을 통해 서비스 상태 모니터링 할 수 있음

★ Cloud Gateway: Spring Cloud에서 제공하는 API 게이트웨이로, 마이크로서비스 아케틱처에서 필수적인 역할을 수행한다.

  • 주요 특징:
    • 루팅 및 필터링: 요청을 받아 특정 서비스로 라우팅하고 필요한 인증 및 권한 부여를 수행
    • 보안: 외부 요청으로부터 애플리케이션을 보호하고, 보안 정책을 적용함
    • 효율성: 마이크로서비스 아키텍처에서 필요한 요청 처리 및 분산 환경의 관리를 효율적으로 수행

3-2. 구성 관리

★ Spring Cloud Config: 분산된 환경에서 중앙 집중식 설정 관리를 제공한다.

  • 주요 특징:
    • Config 서버: 중앙에서 설정 파일을 관리하고 각 서비스에 제공(APP)
    • Config 클라이언트: Config 서버에서 설정을 받아서 사용하는 서비스
    • 설정갱신: 설정 변경 시 서비스 재시작 없이 실시간으로 반영

 

MSA 구조 아키텍처

'MSA' 카테고리의 다른 글

API 게이트웨이 (Spring Cloud Gateway)  (0) 2026.06.27
서킷 브레이커 (Resilience4j)  (0) 2026.06.27
로드 밸런싱  (0) 2026.06.26
서비스 디스커버리 (Eureka) 와 Server/Client 설정 방법  (0) 2026.06.26
MSA란 무엇일까?  (0) 2026.06.25
'MSA' 카테고리의 다른 글
  • 서킷 브레이커 (Resilience4j)
  • 로드 밸런싱
  • 서비스 디스커버리 (Eureka) 와 Server/Client 설정 방법
  • MSA란 무엇일까?
taeyoon2
taeyoon2
taeyoon2 님의 블로그 입니다.
  • taeyoon2
    taeyoon2 님의 블로그
    taeyoon2
  • 전체
    오늘
    어제
    • 분류 전체보기 (36)
      • 심화_AI를 활용한 백엔드 아키텍처 심화 과정 (24)
      • MSA (11)
      • Study (1)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    Zipkin
    spring cloud
    내일배움캠프 #사전캠프 #til
    로드 밸런싱
    분산추적
    JWT
    OAuth2
    보안구성
    MSA
    spring cloud config
    서킷 브레이커
    RabbitMQ
    Config
    til
    내일배움캠프
    Resilience4j
    이벤트 드리븐
    api gateway
    심화_AI를 활용한 백엔드 아키텍처 심화 과정
    사전캠프
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
taeyoon2
Spring Cloud란 무엇일까?
상단으로

티스토리툴바