..
Spring Cloud Config: 중앙 집중식 환경 설정 관리
1. 왜 필요한가?
마이크로서비스 아키텍처(MSA)에서는 수많은 서버가 각자의 설정값(DB 접속 정보, 외부 API 키 등)을 가집니다. 프로젝트가 비대해질수록 각 서버의 application.yml 파일을 일일이 관리하는 것은 비효율적이며 보안 사고의 위험도 큽니다.
2. Spring Cloud Config의 역할
Spring Cloud Config는 애플리케이션의 모든 설정 정보를 하나의 Config Server에서 관리하고, 하위 클라이언트 서비스들이 구동될 때 서버로부터 설정을 내려받아 적용하도록 돕습니다.
- 중앙 관리: 모든 마이크로서비스의 설정을 한곳(Git, 파일 시스템 등)에서 제어합니다.
- 동적 갱신: 서버 구동 중에 설정이 바뀌어도 재시작 없이 실시간으로 반영할 수 있는 메커니즘을 제공합니다.
- 버전 관리: 설정 파일을 Git 리포지토리에 보관하므로 변경 이력을 완벽하게 추적할 수 있습니다.
3. 구성 방식 요약
- Config Server:
@EnableConfigServer를 통해 서버를 올리고, 설정 파일이 담긴 Git 저장소 주소를 등록합니다. - Client Services: 설정 파일명을 명시하고 Config Server의 주소를 가리킵니다. 구동 시 서버로부터 자신의 설정값을 가져와서 컨텍스트에 로드합니다.
Config Server 연결 시에는 SSH 키 등록이나 권한 인증 세팅이 선행되어야 안전하게 데이터를 주고받을 수 있습니다.