Spring Cloud – Eureka 정리
Spring Cloud는 마이크로서비스 아키텍처(MSA)를 구축할 때 필요한
서비스 디스커버리, 로드 밸런싱, 설정 관리, 게이트웨이 등을 제공하는 Spring 기반 확장 모음이다.
그중 Eureka는 서비스 등록/발견(Discovery)을 담당하는 핵심 컴포넌트다.
1. Eureka란?
Netflix가 만든 서비스 등록(Registry) + 서비스 발견(Discovery) 서버
- 각 마이크로서비스는 Eureka 서버에 자신을 등록
- 다른 서비스는 Eureka 서버를 통해 대상 서비스의 위치(IP/Port) 를 조회
- 클라이언트 측 로드 밸런싱, 장애 감지 등과 함께 사용되며
Spring Cloud Netflix(Eureka, Ribbon 등)와 자주 조합된다.
2. 전체 구조 개념 정리
Eureka를 사용하는 전형적인 흐름을 역할별로 나누면 다음과 같다.
2-1. 클라이언트와 API Gateway
2-2. Service Discovery – Eureka
-
Eureka Server
- 각 마이크로서비스 인스턴스가 자신을 등록하는 중앙 서버
- 현재 살아 있는 서비스 인스턴스 목록 및 상태를 유지
-
Eureka Client
- 각 서비스 인스턴스(A, B, C…)는 Eureka Client로 동작
- 기동 시 Eureka 서버에 자신의 정보(IP/Port/상태) 를 등록
- 주기적으로 헬스 체크(Heartbeat) 를 보내며 상태를 갱신
-
장점
- 서비스 인스턴스가 동적으로 늘고 줄어도 위치를 자동으로 관리
- API Gateway나 다른 서비스가 “서비스 이름”만 알고 있어도 호출 가능
2-3. Load Balancer
2-4. Service Instances
-
서비스 인스턴스 A, B, C …
- 각각 서로 다른 포트/서버에서 동작
- 실제 비즈니스 로직을 수행하는 주체
-
트래픽 증가 시
- 동일 서비스를 여러 인스턴스로 수평 확장(scale-out)
- Eureka에 자동으로 등록되며 로드 밸런서 대상에 포함
2-5. 전체 요청 흐름 요약
- 클라이언트가 특정 기능 호출 → API Gateway에 요청
- API Gateway는 필요한 서비스 이름으로 Eureka 서버에 조회
- Eureka 서버는 해당 서비스의 인스턴스 목록을 응답
- 로드 밸런서가 그중 하나를 선택해 요청 전달
- 선택된 서비스 인스턴스가 비즈니스 로직 수행 후 응답
- 응답은 다시 API Gateway를 통해 클라이언트에게 반환
핵심 정리
Spring Cloud의 Eureka는 서비스가 어디에 떠 있는지 찾는 주소록 역할,
API Gateway는 입구, Load Balancer는 분배기,
각 서비스 인스턴스는 실제 일꾼이라고 보면 전체 그림이 한 번에 잡힌다.