AWS CodeDeploy에서 환경변수 적용하는 방법
환경변수를 사용 한 이유Permalink
일반적인 Executable jar 실행Permalink
$ java -jar application.jar
필자의 상황Permalink
$ java -Dspring.profiles.active=dev -Djasypt.encryptor.password=key -jar application.jar
spring.profiles.active
스프링 부트 프로파일 정보(local, dev, production)jasypt.encryptor.password
DB 패스워드를 암호화 하기 위한 jasypt key
문제점Permalink
jar를 위와 같이 실행시킬 경우 몇 가지 문제점이 있습니다.
- 명령어가 길어서
실수를 유발
합니다. - 테스트를 하거나 여러 대의 서버에 설정할 경우
번거롭습니다.
- 서버 재기동 shell이 프로젝트 내에 존재할 경우
중요 정보가 노출
될 수 있습니다.
제가 구축한 배포 환경에서는 서버의 재기동 쉘을 프로젝트 내에 두었습니다.
일반적인 환경변수 사용Permalink
.bashrc
에 등록해서 사용합니다.
문제점Permalink
- CodeDeploy는
.bashrc
에 있는 환경변수를 읽어들이지 못합니다.
CodeDeploy에서 환경변수 사용Permalink
/etc/.profile.d/codedeploy.sh
에 환경 변수를 등록하면 CodeDeploy가 읽어 들일 수 있습니다.
# /etc/profile.d/codedeploy.sh
export SPRING_PROFILES_ACTIVE=dev
export JASYPT_ENCRYPTOR_PASSWORD=key