[Spring Boot] Spring Cloud Config(1) -MSA(6)

모지리 개발자·2022년 9월 26일
0

MSA

목록 보기
6/9

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
를 수강하면서 작성한 글입니다.

Intro


각각의 MicroService가 가지고 있어야할 구성정보 파일로써 지금까지는 application.yml 파일을 사용했었습니다.
yml 파일이 변경이 되어버리면 application 자체가 다시 빌드가 되어야하고 배포가 되어야합니다. 그런 문제를 개선하기 위해서 application 내부에서 구성정보의 내용을 가지고 있는 것이 아니라 외부에 있는 시스템을 통해서 구성정보를 관리할 수 있는 Spring Cloud Config에 대해서 알아보겠습니다.

Spring Cloud Config란?

  • 분산 시스템에서 서버, 클라이언트 구성에 필요한 설정 정보(application.yml)를 외부 시스템에서 관리하는 것 입니다.
  • 하나의 중앙화 된 저장소에서 구성요소 관리를 가능하게 합니다.
  • 각 서비스를 다시 빌드하지 않고 바로 적용 가능합니다.
  • 애플리케이션 배포 파이프라인을 통해 DEV - UAT - PROD 환경에 맞는 구성 정보를 사용할 수 있게 합니다.

Local Git Repository

$ mkdir git-local-repo
$ cd git-local-repo
$ git init
$ touch ecommerce.yml

파일 생성 후에 내용을 추가해줍니다.
ecommerce.yml

token:
  expiration-time: 86400000 # 하루짜리 토큰 생성
  secret: secret-key

gateway:
  ip: ip정보 실제로 사용하진않음(아무거나 추가해봐도 됩니다.)

그 후에 아래 명령어를 실행시켜주시면 됩니다.

$ git add ecommerce.yml
git commit -m "메세지"

위의 과정을 통해 Local Git Repository를 생성합니다. Spring Cloud Config는 이곳에서 필요한 설정정보를 가져와 각각의 서비스로 값을 전달해주게 됩니다.

Spring Cloud Config 프로젝트 생성

저는 config-service라는 이름으로 프로젝트를 생성했습니다.

build.gradle

implementation 'org.springframework.cloud:spring-cloud-config-server'

위와 같은 의존성을 추가해주시면 됩니다.

ConfigServerApplication.java

@SpringBootApplication
@EnableConfigServer
public class ConfigServiceApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfigServiceApplication.class, args);
    }

}

@EnableConfigServer 어노테이션을 추가하게되면 Config 서버로써 역할을 하게 됩니다.

application.yml

server:
  port: 8888

spring:
  application:
    name: config-service
  cloud:
    config:
      server:
        git:
          uri: file:///Users/..../local-repo

uri에는 위에서 추가했던 설정정보 파일의 위치를 작성해주시면 됩니다.

실행해보기

실행한 뒤에Spring Cloud Config에 접속해보시면

위의 사진과 같이 파일에 작성해둔 값들이 잘 나오는 것을 볼 수 있습니다.

결론

간단하게 Spring Cloud Config서버를 실행시켜보았습니다. 다음글에서는 실제 MicroService와 연동해보겠습니다.

profile
항상 부족하다 생각하며 발전하겠습니다.

0개의 댓글