
EC2 인스턴스에서 프로젝트를 직접 빌드하고
jar 파일을 실행시켜서 얻은 nohup.out파일을 직접 확인 해봤다.
EC2에서 애플리케이션 로그 확인하기
로그를 분석해보니 데이터베이스 환경 변수를 전혀 읽어오지 못하고 있었다.


사진에서 처럼 MySQL 연결을 위한 환경 변수를 EC2 인스턴스는 전혀 모르고 있었다.


.bashrc 파일에 환경변수를 설정했지만
main 브랜치에서 push하고 서버가 배포되었을때 서버는 여전히 응답하지 않고
ec2에서 프로젝트를 다시 빌드해야 서버가 제대로 동작했다.
CodeDeploy는 시스템 서비스로서 동작하기 때문에,
사용자 로그인 세션에서만 로드되는 .bashrc 파일에 정의된 환경 변수를 읽을 수 없다.
따라서, CodeDeploy를 통해 배포된 애플리케이션이 .bashrc에 설정된 환경 변수를 인식하지 못해 서버가 정상적으로 구동되지 않는 문제가 발생할 수 있다.
.bashrc 파일은 사용자가 쉘 세션(터미널)을 시작할 때 로드되는 스크립트이다. 이 파일은 사용자별 설정과 환경 변수를 포함하며, 로그인할 때나 새로운 터미널 창을 열 때 실행된다. 하지만 이는 사용자 세션에 국한된 것으로, 시스템 전체에서 실행되는 프로세스에는 적용되지 않는다.
즉, .bashrc 파일은 사용자 로그인 쉘 세션에서만 로드되기에
CodeDeploy는 시스템 단에서 동작하기 때문에 .bashrc 파일을 읽지 못한다.
환경 변수를 시스템 전체에서 사용할 수 있도록
/etc/environment파일에 설정해야 합니다.
sudo cat /etc/environment
배포 후 서버가 정상적으로 구동되기 위해서는 환경 변수를 /etc/environment 파일에 설정해야 한다.