SpringBoot 프로젝트 AWS에 배포하기 - 지속 배포까지

이하얀·2023년 2월 16일
0
post-thumbnail

📌 현재 성공 프로젝트(ec2-user ver)

  • RDS까지 적용할 시간을 없을 듯하여, 직접 EC2 서버에 로컬 PC와 동일한 환경을 만들어주기로 했다.

📌 어떻게 성공했는지?

우선, EC2 서버에 접속하여 그 서버의 로컬에 MariaDB를 설치했다.

  • 그리고 Spring 프로젝트에서 application.yml의 mysql 부분을 mariadb 설정으로 바꿨다.
    build.grade에는 runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' 의존성을 추가했다.
    이 부분은 우분투 서버에서는 mariaDB로 설치하고 그 안의 mysql을 이용하기에 결국 나는 mariaDB로 프로젝트 환경변수가 리다이렉팅되도록 해야 했다.

그 다음 Spring 프로젝트에서 build 더블클릭으로 다시 빌드해줬다.
(여기에서 test 에러나는데 이건 무시해도 된다.)

그리고 파일 질라에 들어가줘서 ec2 서버에 있던 jar 파일을 삭제하고, 내 로컬 PC에서 다시 드래그 앤 드랍으로 보내줬다.

그 결과, 회원가입과 로그인은 성공!
그러나 정보 조회부터 막혔다...

가만히 생각해보니, 토큰 정보 자체는 Redis에서 저장하고 있는데?? 싶었다.
그래서 어쩔 수 없이 EC2 서버에서 Redis도 설치해줬다.
(Redis 참고 : [AWS] EC2에 Redis 설치)

그 결과 회원가입과 로그인은 물론이고, 정보 조회&수정, 토큰 재발급, 회원탈퇴 모두 잘 작동했다. (로그도 정상적으로 뜨고, ERROR가 없었다)


❓ 접속 방법 & 테스트

  1. PuTTY 접속
  • 주소 입력 부분에 ec2-user@탄력적 IP 입력, SSH에 key.ppk 넣어주고 open
  1. java -jar /home/ec2-user/smilegate/Authserver7-0.0.1-SNAPSHOT.jar -p8085 입력
  • 결과
  1. 테스트(Postman에서 URL만 바꿔주고 테스트하면 된다.)

드디어 배포까지 성공했다.

백그라운드에서 계속 서버를 돌리는 nohup(?)는 명령어를 바꿔주면 되기 때문에 생략하겠다.

추가 : 무중단 배포

출처
다음 명령어를 PuTTY에 작성한다.
nohup java -jar /home/ec2-user/smilegate/Authserver7-0.0.1-SNAPSHOT.jar &

맨 아랫줄을 보면
nohup: ignoring input and appeding output to 'nohup.out'
을 볼 수 있는데 처음에는 오류인 줄 알았다.

그래서, ps -ef 명령어로 Authserver7.jar 파일이 실행중인 PID를 찾고
kill -9 1433으로 kill해주었다.

그런다음 다시 해보니 똑같은 output이 나와서 검색해보니...출처

에러가 아니라 정상적으로 동작한 것이며, 일단 시작되면 입력/출력이 콘솔에서 제거된다는 것을 알려주는 output이라고 한다.

다행이야....
이거한다고 얼마나 또 울었는지...ㅠㅠㅠㅠ

이렇게 배포를 마쳤다!!

+ 궁금해서 실험

진짜 PuTTY를 닫아도 실행이 될까?? 싶어서 한번 실험해봤다.
열어놨던 PuTTY를 닫고 postman만 열어서 정보조회를 해봤다.

그리고 다시 PuTTY에 들어가서 ps -ef 명령어로 실행중인지 확인했다.

팀 노션에 정보까지 올려두고 마무리했다.(내건 인증/인가 서버만!)

성공!!!

profile
언젠가 내 코드로 세상에 기여할 수 있도록, BE 개발 기록 노트☘️

0개의 댓글