[스프링] Eureka 설정과 운영 가이드라인

목차

Eureka란 무엇인가?

Eureka는 마이크로서비스 아키텍처에서 서비스 디스커버리와 서버 레지스트리를 제공하는 오픈 소스 소프트웨어이다. 스프링 클라우드 프로젝트의 일부로, 스프링 기반의 애플리케이션을 위한 클라우드 네이티브 애플리케이션을 구축하는 데 사용된다.

Eureka 서버 설정

Eureka 서버를 설정하는 데는 다음과 같은 단계가 필요하다.

  1. 의존성 추가: 스프링 부트 프로젝트의 pom.xml 또는 build.gradlespring-cloud-starter-netflix-eureka-server 의존성을 추가한다.

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
    
  2. 애플리케이션 클래스에 어노테이션 추가: Eureka 서버로 설정하기 위해 @EnableEurekaServer 어노테이션을 사용하는 것이다.

    import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
       
    @EnableEurekaServer
    @SpringBootApplication
    public class EurekaServerApplication {
        public static void main(String[] args) {
            SpringApplication.run(EurekaServerApplication.class, args);
        }
    }
    
  3. YAML 파일 설정: Eureka 서버 애플리케이션의 application.yml 또는 application.properties 파일을 설정한다.

    spring:
      application:
        name: eureka-server
    server:
      port: 8761
    eureka:
      client:
        registerWithEureka: false
        fetchRegistry: false
        serviceUrl:
          defaultZone: http://localhost:8761/eureka/
    

Eureka 클라이얼트 설정

클라이언트 애플리케이션을 Eureka에 등록 및 연결하려면 다음 단계를 수행해야 한다.

  1. 의존성 추가: 클라이언트 애플리케이션의 pom.xml 또는 build.gradlespring-cloud-starter-netflix-eureka-client 의존성을 추가한다.

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    
  2. YAML 파일 설정: 클라이언트 애플리케이션의 application.yml 또는 application.properties 파일에 Eureka 클라이언트 구성을 추가한다.

    spring:
      application:
        name: hello-service
    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:8761/eureka/
    

Eureka 서버 운영 가이드라인

Eureka 서버를 안정적으로 운영하기 위해 다음 사항을 고려해야 한다.

  1. 고가용성: Eureka 서버를 여러 개의 인스턴스로 실행하여 고가용성을 제공한다.
  2. 모니터링: Eureka 서버의 상태 및 성능을 지속적으로 모니터링하고 이상 징후를 감지하는 메커니즘을 구축한다.
  3. 보안: Eureka 서버에 대한 액세스를 안전하게 제어하기 위해 적절한 보안 메커니즘을 구현한다.

Eureka는 마이크로서비스 아키텍처에 필수적인 요소 중 하나로, 올바르게 설정하고 운영함으로써 애플리케이션의 디스커버리와 레지스트리에 대한 요구사항을 충족시킬 수 있다.

참고 자료