어제 TIL에 Elastic Beanstalk와 Git Action을 사용해 CI/CD를 구축하기 위한 발판 작업을 시도했다가 멘붕이 됐던 스토리를 담았다. 위 작업을 해결하기 위해 구글링을 하고 하나하나 변경해보며 시도했는데도 해결이 되지 않았다. 그리고 기존의 FTP를 사용해 EC2 인스턴스로 파일을 옮겨 배포해서 정상적으로 작동하던 우리의 웹앱도 갑자기 말썽이었다.
일단 결론부터 말하자면 문제를 해결했고 현재 Elastic Beanstalk와 Git Action을 사용해 release 브랜치에 push할 때마다 정상적으로 변경사항이 적용된다.
application.py에
DB_INFO = os.getenv('DB_INFO')
DB_PORT = os.getenv('DB_PORT')
client = MongoClient(DB_INFO, int(DB_PORT))
db = client.myTrip
위와 같이 적었고 DB_INFO, int(DB_PORT)은 EB 구성에서 환경변수로 각각
DB_INFO -> mongodb://아이디:패스워드@EB 인스턴스 ip주소
DB_PORT -> 27017
로 설정했다.
EB 환경에 접속하면 화면이 뜨면서 잘 나오는데 이후 작동이 원활하지 않았다 ㅠㅠ
EB로 만들어진 인스턴스(Amazon Linux)에 MongoDB가 설치되지 않았고 MongoDB 사용자 아이디, 패스워드 등이 설정되지 않아 제대로 작동하지 않았던 것 같다. 그래서 해결한 방법은 EC2 인스턴스(Ubuntu)를 하나 생성해 그 인스턴스를 MongoDB 전용 서버로 사용하는 것이다. 그리고 이 인스턴스에 MongoDB를 설치하고 사용자 아이디, 패스워드 관련 설정을 해주었다. 아무래도 지금까지 Ubuntu 환경에서 MongoDB 관련 설정을 했기 때문에 EC2 인스턴스를 새로 생성해서 하는 게 편했다.
하루 동안 해봐도 정답을 찾지 못 했는데 Slack에서 다른 팀원 분의 힌트를 받아 해결할 수 있었다!!