daily

Dockerization [2] - awsebcli로 deploy할 때 알아야 할 세 가지

Juhyuck 2023. 6. 3. 16:33
728x90

이번에는 awsebcli 를 통해서 배포해봤다.

사실 압축파일을 올리는것과 다른 것이 없지만 몇가지 차이가 있어서 잠시 삽질한 것을 기록한다.

 

앞의 글에서 Dockerfile과 .dockerignore를 만들어서 프로젝트 폴더에 갖고 있다고 하면, 

eb init

을 통해 AWS EB에 연결하고, 

eb deploy

를 통해 배포할 수 있다. 

 

이때 Dockerfile이 있으면 Docker환경인걸 식별하고 물어보니 따라가면된다. 이때,

 

1. git commit 한 것만 deploy 

 

awsebcli를 이용해서 배포할 때 잠깐잠깐 수정을 했으나 배포에서 변화가 없어서 찾아보니,

git으로 관리할 때, commit한 것만 배포에 반영된다고 한다.

 

해결은 아래 2번과 한번에 할 수 있어서 우선 다음 문제를 보면,

 

2. 환경 변수

 

환경변수를 dotenv 모듈을 사용했고, .env 파일에 환경변수를 저장했으나, gitignore에 .env 파일을 담고 있기 때문에, 환경변수가 불러오지 않고 DB와 연결이 끊기고, API도 작동하지 않는 등의 문제가 생긴다.

 

위의 1과 2의 문제를 동시에 해결하려면, .ebignore 파일을 만들면 된다.

 

awsebcli를 통해 deploy 할 때, .ebignore 파일이 있으면 git 관리에서 벗어나고, commit과 상관없이 .ebignore파일에 있는 것만 무시하고 다 deploy에 포함시키는 것.

https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/eb-cli3-configuration.html

 

3. 그렇지만 환경변수는 EB에서 직접 써주자

.ebignore로 git 관리와 무관하게 진행하는 것은 버전관리에 좋지 않을 것이다. 버전도 관리부터, 실제 레포와 다르게 운영되는 상황을 관리하기란 어려우니...

git을 따라가면서 환경변수를 챙기려면 aws EB 콘솔에서 직접 입력해주면 된다. 

 

AWS EB 콘솔 > 환경 > 구성 > 업데이트, 모니터링 및 로깅 > 편집 > 플랫폼 소프트웨어 > 환경속성

 

에서 입력하면 된다. 아래는 접속 경로 캡쳐.

 

 

이렇게 하면, git으로 관리하면서도 gitignore로 처리된 환경변수를 사용할 수 있게 된다.