우선 DB를 MySQL 쓰는 AWS 로 연결
연결 방법
spring.datasource.url=jdbc:mysql://나의엔드포인트:3306/데이터베이스명
spring.datasource.username=나의USERNAME
spring.datasource.password=나의패스워드
spring.jpa.hibernate.ddl-auto=update
// MySQL
implementation 'mysql:mysql-connector-java'
aws가서 보안그룹에 포트 설정하고
intelliJ 에서 DB > Data Source > MySQL 을 클릭해서 아래 세팅 test 해보고 연결
Name: aws db식별자 이름
Host: 나의 엔드포인트
User: 나의 Username
Password: 나의 비밀번호
Database: db명
만약 이미 있는 db위에다가 만들면 에러 잘뜨니까 주의!
ssh -i AWS에서받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피
배포 파일 빌드. intelli j 에서 우측탭 gradle 누르고
Tasks > build > build 를 더블클릭
좌측 build 폴더 libs 아래에 .jar 로 끝나는 파일 생긴다.
4.(이건 처음에만) gitbash로 가서 jdk 설치
sudo apt-get update
sudo apt-get install openjdk-17-jdk //버전에 맞게 설치해야한다!!
java -version
filezilla 열어서 좌측 위 site manager 연 다음
프로토콜 : SFTP
Host : aws ec2의 퍼블릭 IPv4 주소
포트 : 22
키파일 - ubuntu - 키파일 업로드 후 ok
한 다음 연결되면 마우스 드래그로 위에서 빌드한 .jar 파일을 업로드
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
// 프로세스 pid 찾기
ps -ef | grep java
// 프로세스 종료
kill -9 PID값
nohup java -jar 파일명.jar &