Spring Cloud 개념
- 분산 시스템을 구축하고 운영하기 위한 스프링 프레임 기반 라이브러리의 모음
- 마이크로서비스 아키텍처(MSA)를 구현할 때 주로 사용
- 서비스 디스커버리, 로드 밸런싱, 분산 설정 관리, 분산 추적, API 게이트웨이 등 다양한 기능을 포함하며, 통합과 확장이 가능하고 이를 통해 유연성을 높일 수 있음
Spring Cloud가 제공하는 기능
- API 게이트웨이(API Gateway)
- MSA에서 클라이언트와 백엔드 서비스 간의 통신을 중앙에서 관리하는 서버
- 클라이언트 애플리케이션이 서비스에 요청을 보낼 때 API 게이트웨이가 서비스 간 통신을 관리하고 모니터링함으로써 이를 조정하고 보안 검사를 수행하는 데 사용
- API Gateway는 주로 라우팅, 인증, 보안, 로드 밸런싱, 캐싱 등의 기능을 담당하여 MSA를 더 효과적으로 관리하고 사용할 수 있도록 도움
- 서비스 디스커버리(Service Discovery)
- 서비스들의 위치와 상태를 자동으로 찾고 관리하는 기능
- 서비스 디스커버리의 과정
- 서비스는 자동으로 디스커버리 시스템에 등록
- 서비스가 종료되면 등록 정보가 자동으로 해제
- 클라이언트 애플리케이션은 이것을 통해 동적으로 사용 가능한 서비스를 검색하고 선택
- 이를 통해 클라이언트는 부하 분산을 수행하고 요청을 적절히 분배 가능
- 분산 설정(Distributed Configuration)
- MSA에서 필요한 설정을 중앙에서 관리하고 업데이트할 수 있도록 하는 기능
- 서비스는 이 서버에서 설정을 동적으로 가져와 사용
- 서비스가 실행 중일 때 설정을 변경하고, 변경된 설정을 즉시 적용 가능
→ 서비스를 중지를 하지 않고도 설정을 변경하여 유연한 구성이 가능
- 분산 추적 (Distributed Tracing)
- 트랜잭션 추적을 위한 기능
- 스프링 클라우드는 분산 추적을 위한 Spring Cloud Sleuth을 제공
- 발생한 작업을 트레이스와 스팬으로 기록하여 마이크로서비스 간의 요청과 응답을 추적하고 모니터링하는 데 사용
- 이를 통해 서비스 간의 통신이 어떻게 이루어지고 있는지를 시각적 확인 가능
- 로드 밸런싱 (Load Balancing)
- 여러 서버에게 들어오는 트래픽을 균등하게 분배하여 부하를 분산시키는 기술
- 세션 유지, 스케일 아웃과 같은 기능을 통해 네트워크 트래픽을 효과적으로 관리
- 회로 차단기 (Circuit Breaker)
- 서비스 간의 통신에서 발생할 수 있는 장애에 대응하는 메커니즘
- 서비스 간의 통신이 실패할 경우 회로 차단기는 일시적으로 연결을 차단하여 전체 시스템에 영향을 최소화하고, 일정 시간이후에 다시 시도하거나 다른 대체 서비스를 호출
스프링에서 사용하는 도구
- API Gateway구성에는 Spring Cloud Gateway를 활용
- 이는 경량의 도구로서 API 라우팅, 필터링, 로드 밸런싱과 같은 역할을 효과적으로 수행
- 서비스 디스커버리 단계에서는 Spring Cloud Discovery를 사용
- 서비스 인스턴스의 등록, 검색, 상태 감지 등을 자동화하고 효과적으로 관리
- 분산 시스템에서의 설정 관리를 위해 Spring Cloud Config를 도입
- 중앙 집중식으로 애플리케이션의 설정을 관리하고 배포할 수 있는 기능을 제공
'MicroService Architecture' 카테고리의 다른 글
[Spring Cloud] Netflix Eureka 개념, 용어 정리 및 사용 예제 (0) | 2024.08.20 |
---|---|
Service Discovery 개념, 종류, 특징 (0) | 2024.08.20 |
API Gateway란? (0) | 2024.08.20 |
마이크로 서비스 설계 시 주의 사항 (0) | 2024.08.08 |
모놀리식 아키텍처 vs 마이크로 서비스 아키텍처 (0) | 2024.08.08 |