8.1 EC2 서버에 프로젝트 배포하기
참고
순서대로 진행하기
sudo yum install git
git —version
mkdir ~/app && mkdir ~/app/step1
cd ~/app/step1
git clone [복사한 주소]
cd [프로젝트명]
11
./gradlew test
에러 메세지: 권한이 없다.
다음과 같은 코드가 끈다는 것은 권한이 없다는 뜻이다.
-bash: ./gradlew: Permission denied
chmod +x ./gradlew를 친다.- 이후 다시
./gradlew test를 시행한다.
에러 메세지: 오류 발견
만약 오류가 발견되었다면, 우선 putty를 끄고 코드를 수정.
오류 수정 후
오류를 수정하고 다시 putty를 켰을 때는 다음과 같이 하면 된다.
cd ~/app/step1/[프로젝트명]
git pull
./gradlew test
성공 명령어
다음과 비슷한 명령어가 뜨면 성공이다.
BUILD SUCCESSFUL in 30s
5 actionable tasks: 2 executed, 3 up-to-date
[ec2-user@free-springboot Spring-study]$ cd
8.2 배포 스크립트 만들기
우선 ~/app/step1으로 되돌아 가야 한다.
cd ..
deploy.sh 파일을 하나 만든다.
vim ~/app/step1/deploy.sh
다 작성하고 insert 누르고 :wq! 누르면 된다.
만약 실패한 경우
8.3 외부 Security 파일 등록
우선 app/properties 파일에 등록하자
또한 code를 수정한다.
실패하는 케이스
- 보통 오타가 많다.
안 되면
8.4 스프링부트 프로젝트로 RDS 접근하기
- 여기서부터는 AWS EC2가 아닌 인텔리제이를 키고 한다.
현재 RDS는 MariaDB를 사용하는 중이다.
MariaDB로 스프링부트 프로젝트에 접근하기 위해서는 몇 가지 작업이 필요하다.
다음과 같다.
- 테이블 생성
- 프로젝트 생성
- EC2 설정
(1) 테이블 설정
-
DB Browser로 들어간다.
-
맨 위 파일 누르고 ‘Open SQL Console’ → New SQL Console
-
첫 번째 콘솔 : 엔티티 테이블
- 테스트 파일(인텔리제이에서 application.java)을 실행시킬 때 나오는 hibernate 코드를 복붙하면 된다.
-
두 번째 콘솔
- 다음 내용을 복붙한다.
다시, EC2 리눅스로 돌아가서 (=putty 실행해서)
새로운 파일 생성; vim ./app/application-real-db.properties
다음 내용을 입력한다.
spring.jpa.hiberante.ddl-auto=none
spring.datasource.url=jdbc:mariadb://rds주소:포트명/database이름
spring.datasource.useraname = db계정
spring.datasource.password = db계정 비밀번호
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
- rds주소 = 엔드포인트
- database이름
- db계정 = 마스터 사용자 이름
spring.jpa.hiberante.ddl-auto=none- jpa로 테이블이 자동 생성되는 옵션을 non으로 지정한다.
- rds에는 실제 운영으로 사영될 테이블이니 절대 스프링 부트에서 새로 만들지 않도록 해야함
- 주의해야 하는 옵션이다
(2) 프로젝트 생성
spring.jpa.hiberante.ddl-auto=none
- jpa로 테이블이 자동 생성되는 옵션을 non으로 지정한다.
- rds에는 실제 운영으로 사영될 테이블이니 절대 스프링 부트에서 새로 만들지 않도록 해야함
- 주의해야 하는 옵션이다
8.5 EC2에서 소셜 로그인하기
EC2 관련 오류
ec2에서 RDS를 연결하고 jar 파일을 빌드한후 확인해 보는데 다음과 같은 오류가 생겼다.
nohup 파일을 확인해 보니 다음과 같은 오류를 확인할 수 있었다.
확인해 보니 8080 port에 다른 process가 실행 중이었다
kill -15 PID- 빌드 전에 생성된 jar 파일을 지운 후 다시 실행