Spring Cloud Config 서버가 GitHub Repo에서 구성 파일들을 로드하고 읽도록 설정

날아올라돼지야·2024년 8월 27일
0

이 접근 방식은 구성 파일의 버전 관리, 감사 기능, 보안 등을 강화할 수 있어 실무에서 가장 많이 추천되는 방법입니다.

GitHub Repo에 구성 파일 저장하기

먼저, GitHub 리포지토리에 구성 파일을 저장합니다. 예를 들어, eazybytes-config라는 리포지토리를 생성하고, 여기에 accounts, cards, loans 마이크로서비스와 관련된 모든 yaml 파일을 업로드합니다. 이후, 이 리포지토리를 Spring Cloud Config 서버와 연결하여 해당 리포지토리에서 구성 파일을 로드할 수 있도록 합니다.

Spring Cloud Config 서버 설정

application.yml 업데이트:

기존의 native 프로필을 git 프로필로 변경하고, GitHub 리포지토리의 URL을 설정합니다. GitHub 리포지토리 URL을 spring.cloud.config.server.git.uri 속성에 설정합니다.

  cloud:
    config:
      server:
        # native:
          # search-locations: "classpath:/config"
          # search-locations: "file:///Users//eazybytes//Documents//config"
        git:
          uri: "https://github.com/eazybytes/eazybytes-config.git"
          default-label: main
          timeout: 5 #연결 5초 기다림
          clone-on-start: true
          force-pull: true

default-label 속성을 사용하여 기본 브랜치(main)를 설정하고, clone-on-start 및 force-pull 속성을 true로 설정하여 서버가 시작될 때마다 최신 구성 파일을 가져오도록 합니다.

서버 시작

Config 서버를 시작하고, 이후 각 마이크로서비스를 순차적으로 시작하여 Config 서버와의 통합이 제대로 이루어지는지 확인합니다.

통합 테스트

각 마이크로서비스가 Config 서버와 통합되어 올바르게 구성 파일을 로드하는지 확인하기 위해 Postman을 사용해 테스트를 진행합니다. 예를 들어, cards 마이크로서비스의 contact-info API를 호출하여 prod 프로필과 관련된 구성이 올바르게 적용되었는지 확인합니다.

기타 Spring Cloud Config 서버 사용 옵션

Spring Cloud Config 서버는 GitHub 외에도 다양한 백엔드를 지원합니다. 공식 문서를 참조하여 파일 시스템, 데이터베이스(JDBC), Vault, AWS CodeCommit 등 다양한 백엔드 옵션을 사용할 수 있습니다. 또한, 프라이빗 GitHub 리포지토리와의 연동 시 인증 방법에 대한 내용도 문서에서 확인할 수 있습니다.

정리하며...

이번 챕터에선 Spring Cloud Config 서버를 GitHub 리포지토리와 연결하여 마이크로서비스 구성 파일을 중앙에서 관리하는 방법을 배웠습니다. 이 접근 방식은 실무에서 추천되며, 버전 관리, 보안, 감사 기능을 효과적으로 지원합니다. 다음 챕터에서는 더 발전된 방법을 탐구하거나, 이러한 설정을 기반으로 추가적인 실습을 진행해 볼 예정입니다.

profile
무슨 생각하며 사니

0개의 댓글