Spring 숙련 230308 #8 배포 / AWS RDS DB / EC2 / 포트포워딩 / nohup

김춘복·2023년 3월 8일
0

Spring 공부

목록 보기
14/14

배포

AWS RDS DB

  • 우선 DB를 MySQL 쓰는 AWS 로 연결

  • 연결 방법

  1. application properties에 아래 내용 추가
spring.datasource.url=jdbc:mysql://나의엔드포인트:3306/데이터베이스명
spring.datasource.username=나의USERNAME
spring.datasource.password=나의패스워드
spring.jpa.hibernate.ddl-auto=update
  1. build.gradle에 dependancies 추가 (MySQL)
//    MySQL
    implementation 'mysql:mysql-connector-java'
  1. aws가서 보안그룹에 포트 설정하고

  2. intelliJ 에서 DB > Data Source > MySQL 을 클릭해서 아래 세팅 test 해보고 연결

    Name: aws db식별자 이름
    Host: 나의 엔드포인트
    User: 나의 Username
    Password: 나의 비밀번호
    Database: db명

  3. 만약 이미 있는 db위에다가 만들면 에러 잘뜨니까 주의!

EC2 연결해서 배포

  1. gitbash 열고 아래 입력
ssh -i AWS에서받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피
  1. 배포 파일 빌드. intelli j 에서 우측탭 gradle 누르고
    Tasks > build > build 를 더블클릭

  2. 좌측 build 폴더 libs 아래에 .jar 로 끝나는 파일 생긴다.

4.(이건 처음에만) gitbash로 가서 jdk 설치

sudo apt-get update
sudo apt-get install openjdk-17-jdk //버전에 맞게 설치해야한다!!
java -version
  1. filezilla 열어서 좌측 위 site manager 연 다음
    프로토콜 : SFTP
    Host : aws ec2의 퍼블릭 IPv4 주소
    포트 : 22
    키파일 - ubuntu - 키파일 업로드 후 ok
    한 다음 연결되면 마우스 드래그로 위에서 빌드한 .jar 파일을 업로드

  2. git bash에서 아래 명령어로 스프링 부트 실행

java -jar 파일명.jar

(ec2 보안설정에서 8080과 80 포트 설정.)
하면 http://내 public 아이피:8080 에서 접속 가능

포트포워딩

: 아래 입력 후 다시 시작하면 포트 번호 없이도 실행 가능. (80번으로 설정)

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
  • 포트포워딩이 안될 때 참고사이트
    이미 다른 쪽으로 포트포워딩이 된 상태여서 안될 가능성이 높다.
// 현재 포워딩 된 포트를 확인한다.
sudo iptables -t nat -L
// 80포트에서 5000포트로 포워딩 된 것을 제거하는 명령어
sudo iptables -D PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000
// 80포트에서 8080으로 포워딩시켜주는 명령어
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

nohup

  • 프로세스 종료 방법
// 프로세스 pid 찾기
ps -ef | grep java

// 프로세스 종료
kill -9 PID값
  • nohup 설정
nohup java -jar 파일명.jar &
profile
Backend Dev / Data Engineer

0개의 댓글