HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
SFAM 포트폴리오
SFAM 포트폴리오
/
❗
CodeDeploy에서는 왜 환경변수가 안 불러와져?
❗

CodeDeploy에서는 왜 환경변수가 안 불러와져?

식별

 
CodeDeploy를 통해 배포할 때, 배포 완료 후 스크립트로 JAR파일 실행 시 시스템 환경 변수에 지정해둔 복호화 키, profile 정보 등을 불러와 사용합니다. 하지만 어째서인지 환경변수가 불러와지지 않는 문제점이 발생했습니다.

분석 및 개선방향

이 문제를 해결하기 위해 이것저것 검색하다 다음과 같은 해결책을 제시한 글이 있었습니다.
AWS CodeDeploy에서 환경변수 적용하는 방법
일반적인 Executable jar 실행 $ java -jar application.jar 필자의 상황 $ java -Dspring.profiles.active=dev -Djasypt.encryptor.password=key -jar application.jar spring.profiles.active 스프링 부트 프로파일 정보(local, dev, production) jasypt.encryptor.password DB 패스워드를 암호화 하기 위한 jasypt key 문제점 jar를 위와 같이 실행시킬 경우 몇 가지 문제점이 있습니다. 명령어가 길어서 실수를 유발 합니다. 테스트를 하거나 여러 대의 서버에 설정할 경우 번거롭습니다.
AWS CodeDeploy에서 환경변수 적용하는 방법
https://godngu.github.io/aws/codedeploy-envrionment-variable
AWS CodeDeploy에서 환경변수 적용하는 방법
notion image
이 블로그대로 /etc/profile.d/codedeploy.sh 를 생성해서 환경변수를 등록해줬지만 저에게는 적용이 되지 않았습니다. 아마 예전에는 통했던 방법이지만 지금은 통하지 않은듯 해보였습니다.
 
많은 실험과 고민을 한 결과 결론은 CodeDeploy를 통해 Script를 실행할때에는 기본적으로 .bashrc를 사용하지 않는다 입니다.
CodeDeploy로 배포할 때에도 .bashrc 를 사용할 수 있게된다면 문제를 해결할 수 있을 듯 해보였습니다.

해결

저는 다음과 같이 CodeDeploy가 사용하는 스크립트에서 .bashrc를 사용할 수 있도록 했습니다.
 
  • vim ~/.bashrc
  • export 환경변수 등록
notion image
 
CodeDeploy에서 실행 시킬 script 파일에서 source ~/.bashrc 명령어를 통해 .bashrc를 사용할 수 있도록 추가해줍니다.
  • deploy.sh
 
notion image