개발/Spring

Spring boot profile(AWS Secret Manager, Log4j2)

JangHC 2022. 4. 6. 21:59

 

 

build 또는 run 할 때, local,dev,prod 환경으로 진행 할 수 있다.

 

gradle

implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap:3.0.3'
implementation 'org.springframework.cloud:spring-cloud-starter-aws-secrets-manager-config:2.2.6.RELEASE' 
implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.17.1'
implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.17.1'
implementation group: 'org.apache.logging.log4j', name: 'log4j-jul', version: '2.17.1'
implementation group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.17.1'
implementation group: 'org.slf4j', name: 'slf4j-api', version: '1.7.32'
implementation group: 'org.slf4j', name: 'jul-to-slf4j', version: '1.7.32'
implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4:1.16'

 

stater로 하지않고 log4j를 나눈것은 취약점 패치를 위해 한다. (stater로 하면 낮은 버전이 import 된다)

 

bootstrap.properties 에는

 

아래와 같이 설정해주면 ec2에 올렸을 때 알아서 가져와 진다.

aws.secretsmanager.name="mykey"
cloud.aws.region.static=ap-northeast-2

 

Propertis에서는 이런식으로 key 설정 한 것을 사용한다.
# jwt secret key 설정
jwt.secret:${JWT_SECRET_KEY}

 

로컬에는 enable해야 한다. (AWS 환경이 아니므로)

aws.secretsmanager.enabled=false

 

또한, log4j config를 설정하기 위해


#LOG
logging.config=classpath:log4j2-dev.xml

 

각 properties에 맞는 log4j2 설정을 해줘야 한다.