본문 바로가기

Study

[내일배움캠프 TIL] 18일차 - aws ec2 배포 및 이슈

728x90
반응형

오늘은 aws ec2에 배포를 해보았는데,

처음해보다보니 시행착오들이 있었고

관련해서 정리해보았습니다.

 

1.  처음에 ec2에서 프로젝트를 git clone으로 통째로 받아서 빌드하는 방식으려 하려했습니다.

그런데 아무래도 작은 서버를 쓰다보니 램도 적고, 빌드하면서 먹통이 되는 현상이 일어났습니다.

그리고 빌드를 할때 prod환경에서 하다보니 test 코드가 맞지 않아 오류가 발생하는 케이스도 있었습니다.

테스트 코드는 빌드하지 않는 옵션을 알아내어 추가하였습니다.

./gradlew build -x test

그래서 로컬에서 jar파일을 빌드하고 

jar파일과 .env 파일만 넣고 실행하는 구조로 바꾸었습니다.

 

2. 스크립트를 만들었습니다. .env 를 읽어오면서 

이미 실행되어있는 프로그램은 kill 하고 다시 실행하는 과정을 스크립트로 만들어서

한번 실행하면 자동으로 배포가 되도록 했습니다.

 

3. jar 파일을 실행하면서 database가 생성되고 테이블들이 생성이되어야하는데,

생성이 계속안되었습니다.

확인해보니 권한문제였고, postgress에서 db 스키마에 대한 권한을 열어줘야

프로그램 실행할때 테이블을 만들수 있었습니다.

 

일단은 모두 권한을 허용하였는데, 나중에 특정 유저에게 권한을 부여하는 방식으로 바꾸는것이 좋을 것 같습니다.

-- 1. public 스키마에 대한 권한을 모두에게 허용 (가장 빠르고 확실함)
GRANT ALL ON SCHEMA public TO public;

-- 2. (선택사항) 특정 유저에게 명확히 권한 부여
GRANT ALL ON SCHEMA public TO postgres;

 

반응형