본문 바로가기
Spring & SpringBoot

MSA 환경에서 Spring Clound의 Role

by 창따오 2025. 4. 15.
728x90

☁️ MSA에서 Spring Cloud는 별도로 배포될까?

마이크로서비스 아키텍처(MSA)를 구성할 때, Spring Cloud를 함께 사용하는 경우가 많습니다.
그런데 한 가지 궁금한 점이 생기죠:

“Spring Cloud는 마이크로서비스처럼 따로 배포해야 하나요?”

결론부터 말하자면:

Spring Cloud는 별도로 배포되는 게 아니라, 각 서비스에 라이브러리로 포함되어 사용됩니다.

🔍 Spring Cloud란?

Spring Cloud는 마이크로서비스 아키텍처에서 필요한 기능(예: 설정 관리, 서비스 디스커버리, 게이트웨이, 로드 밸런싱 등)을 쉽게 구현할 수 있도록 도와주는 라이브러리 집합입니다.

자주 사용되는 Spring Cloud 기능들은 다음과 같습니다:

기능 설명 배포 방식
Config Server 설정 중앙 관리 별도 배포 (예: config-service)
Eureka Server 서비스 디스커버리 별도 배포 (예: discovery-service)
Spring Cloud Gateway API Gateway 역할 별도 배포 (예: gateway-service)
Feign, LoadBalancer 서비스 간 통신 각 서비스에 포함
Zipkin, Sleuth 분산 추적 서버는 별도, 클라이언트는 포함

📦 Spring Cloud는 어떻게 사용될까?

Spring Cloud는 대부분 아래처럼 구성됩니다:

[config-service]         ← Spring Cloud Config Server (별도 배포)
[discovery-service]      ← Eureka Server (별도 배포)
[gateway-service]        ← API Gateway (별도 배포)
[order-service]          ← 마이크로서비스 (Spring Cloud 라이브러리 포함)
[member-service]         ← 마이크로서비스 (Spring Cloud 라이브러리 포함)
[zipkin-server]          ← 분산 추적 수집기 (별도 배포)

즉, order-service, member-service 등은 Spring Cloud 라이브러리를 의존성으로 추가하여 사용하는 것이고, 따로 띄우거나 배포하지 않습니다.


💡 Spring Cloud 구성요소 배포 정리

구성요소 배포 여부 설명
spring-cloud-starter-openfeign Feign 클라이언트 라이브러리. 각 서비스에 포함됨
spring-cloud-starter-config ❌ / ✅ 클라이언트는 포함, 서버는 별도로 배포
spring-cloud-starter-netflix-eureka-client 서비스 디스커버리 클라이언트. 서비스에 포함
spring-cloud-starter-netflix-eureka-server Eureka 서버는 별도 서비스로 배포
spring-cloud-starter-gateway Gateway도 독립 서비스로 배포

📌 정리하면...

  • Spring Cloud는 대부분 라이브러리 형태로 포함되어 사용된다.
  • Config Server, Discovery Server, Gateway 등은 독립적으로 배포된다.
  • 각 마이크로서비스는 필요에 따라 Spring Cloud의 다양한 기능을 의존성으로 가져온다.

🧠 마무리

Spring Cloud는 MSA 환경에서 매우 강력한 도구입니다.
하지만 그 자체가 배포 대상은 아니라는 점, 그리고 어떤 기능이 별도 배포가 필요한지를 구분하는 게 중요합니다.