-
yml 환경 변수 설정Project/TravelFeelDog 2023. 7. 18. 16:39
공개된 장소 인 퍼블릭 깃허브에는 데이터 베이스의 정보나 aws 키를 유출하면 안된다.
이러한 사유로 .gitIgnore 를 사용해서 application.yml 전부를 제외를 시켰다.
운영 측면에서 민감한 정보를 가지는 부분 즉 비공개용 정보보다는 공개가 가능한 부분이 많아 환경 변수를 이용하여 관리하고자 한다.
.gitIgnore 에는 application-credentials.yml 파일만 설정 하고 나머지 yml 은 전부 공개를 해도 되는 환경으로 변경하고자 한다.
기본 사용부터 보자. 데이테이스의 이름을 변수로 바꾸는 방법이다.
1. graddle 에 다음과 같이 추가 해주자.
implementation 'org.springframework.boot:spring-boot-configuration-processor'
2. application.yml 이다 . 디비 이름을 환경변수로 관리 할 거다.
spring: datasource: #local url: jdbc:mysql://127.0.0.1:3306/${Db_Name}?serverTimezone=Asia/Seoul&characterEncoding=UTF-8
3. application-credentials.yml 이다.
#application-credentials.yml Db_Name : testDB
4. 다음과 같이 config.import 를 사용하여 환경 변수를 넣어 주자.
spring: config.import: application-credentials.yml datasource: url: jdbc:mysql://127.0.0.1:3306/${Db_Name}?serverTim....
이번에는 aws 의 정보를 따로 관리 하는 상황의 예시이다.
기존의 파일들의 위치와 같은 곳에서 다음과 같이 aws 설정파일을 만든다.
file : application-aws.yml
#application-aws.yml cloud: aws: s3: bucket: ${S3_BUCKET_NAME} region: static: ap-northeast-2 stack: auto: false credentials: instanceProfile: true accessKey: ${AWS_ACCESS_KEY} secretKey: ${AWS_SECRET_KEY}
데이터 베이스 이름을 저장한 파일에 새로 작성한 aws 의 정보가 들어갈 것을 적는다.
file : application-credentials.yml
#application-credentials.yml Db_Name : testDB S3_BUCKET_NAME : [이름] AWS_ACCESS_KEY : [접근 키] AWS_SECRET_KEY : [비밀 키]
main 설정 파일을 수정해 준다.
spring.profiles.active
변수데이터가 있는 파일을 불러준후 활성해 주는 코드라고 이해하면 된다.
file : application.yml
spring: datasource: #local url: jdbc:mysql://127.0.0.1:3306/${Db_Name}?server.. .. config.import: classpath:application-credentials.yml profiles: active: credentials include: - aws - credentials
- 분산 서비스 아키텍처를 구성시에는 스플링 부트 클라우드 컨피그를 이용하여 런타임 실행중에 데이터베이스의 연결 정보와 같은 것 들을
주입이 가능하다 .
'Project > TravelFeelDog' 카테고리의 다른 글
SpringBoot MySql bulkInsert 도입기 (0) 2023.08.30 Service Layer 에 읽기 쓰기 분리기 (0) 2023.08.10 Firebase 에서 OAuth2 , JWT 로 전환기(1) (0) 2023.08.08 경로 에러 추가 하기 (0) 2023.07.18 AWS s3 이미지 업로더 분리기 (feat. @Configurration 활용) (0) 2023.07.14