SpringBoot+AWS+RDS 서버 배포하기 -RDS편-
개발을 하는 것도 좋지만 서버를 배포할 일이 생겼다. 처음에는 배포하는 게 뭐 그리 어렵겠냐 생각했는데 진짜 생각보다 많이 어렵다. 막상 배포를 끝내고 나니 생각보다 쉬운 것처럼 느끼지만
dev-chw.tistory.com
저번 글의 경우 RDS를 생성하였고 이제 SpringBoot에 연결 후 EC2를 사용해 배포해보도록 하자.
참고로 localhost자리에 엔드포인트 값만 넣어주면 바로 연동이 된다. 프로젝트에서 RDS가 연동이 잘 된 것을 확인했다면 바로 EC2에 배포를 시작해보자. RDS를 만드는 것보다 훨씬 간단하기 때문에 차근차근 따라온다면 어려울 게 없다.
준비사항
1. RDS가 연동된 프로젝트 준비
2. 준비된 프로젝트를 GitHub에 Push 해두기
위 준비사항이 완료되었다면 AWS EC2 인스턴스를 생성하자
AWS EC2는 가상의 컴퓨터라고 생각을 하면서 진행하면 이해하기 훨씬 도움될 것이다.
AWS -> EC2로 들어가 인스턴스 시작을 눌러주면
위와 같이 인스턴스를 생성하는 페이지로 이동한다. 이름은 자신이 원하는 대로, 우리는 Amazon Linux를 사용한다 -> 프리티어도 지원 가능!
인스턴스 유형은 기본값으로 두고 새 키 페어 생성을 해서 자신이 잘 보관해주자! 매우 중요한 파일이기 때문에 사라지면 곤란하다..
보안 그룹은 저번 편에서 우리가 미리 생성해두었기 때문에 생성해두었던 보안 그룹을 선택하도록 하자.
그 외에는 기본값으로 두고 인스턴스 생성!
인스턴스 상태가 위와 같이 실행 중이면 정상적으로 실행되고 있는 것이다.
이제 우리는 터미널에서 생성한 AWS EC2 인스턴스로 접속해줄 것이다. (약간 컴퓨터 가동한다고 생각하자)
// 권한을 pem 파일에 부여
chmod 600 ***.pem
// ssh 접속하기
ssh -i /Users/유저명/Desktop/testserver.pem ec2-user@{할당받은 public IP 주소}
경로의 경우 mac이라면 pem 파일을 option+cmd+c 하면 경로 복사가 되니 참고하도록 하자.
정상적으로 접속했을 시 터미널에 위와 같이 뜰 것이고 처음이기 때문에 가상의 컴퓨터에 git과 java를 설치하도록 하자
커맨드에서 $ 는 그냥 구분하려고 넣은 거니까 빼고 터미널에 적어주자
1. Git 설치
$ sudo yum install -y git
$ git --version
2. java 설치 (17 버전 예시)
자신이 진행한 프로젝트에 jdk 버전을 맞춰서 설치해주도록 하자.
$ wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm
$ sudo rpm -ivh jdk-17_linux-x64_bin.rpm
$ sudo alternatives --config java
$ java -version
완료되었다면 push 해둔 프로젝트를 가져와야 하기 때문에
$ mkdir {아무거나 폴더명}
$ cd {만든 폴더}
$ git clone {git 주소}
로 가져오자
가져왔다면 cd로 clone 한 프로젝트로 이동해
$ sudo chmod 777./gradlew
를 통해 빌드 실행 권한을 주고
$./gradlew build
입력하여 프로젝트를 빌드해주면 되는데 생각보다 좀 걸리니 인내하도록 하자.
마지막으로
프로젝트 내에서
$ cd build
$ cd libs
$ java -jar 자신의 프로젝트. jar
위와같이 libs 폴더로 이동한 다음 jar 파일을 실행해주면 서버가 가동되기때문에 배포까지 완료된다.
생각보다 어렵지 않기 때문에 RDS 부분만 잘 마무리된다면 EC2로 배포하는 과정은 쉽다!
## 추가내용 (서버 무중단배포)
터미널을 종료하게되면 서버가 닫히는데 이를 방지하기 위해서 서버를 킬때
$ nohup java -jar 자신의 프로젝트.jar &
로 실행해주면 터미널을 닫아도 컴퓨터를 꺼도 절대로 서버가 꺼지지 않습니다
서버를 종료하기 위해서는
ssh -i 로 자신의 EC2에 접속한 후
$ ps -ef
를 통해 프로세스를 조회한 후 백그라운드에서 돌아가고 있는 jar파일의 pid 번호를 확인하고
$ kill -9 {pid번호}
명령어를 입력하여 종료한다 !
참조
[AWS] Spring Boot 프로젝트를 AWS EC2 에 배포하기 (mac)
Spring Boot 프로젝트를 AWS EC2 에 배포하기 프로젝트를 AWS EC2에 배포하기 위한 순서는 아래와 같다. Spring Boot 를 통해 프로젝트를 생성하기 (적어도 간단한 텍스트라도 출력되어야 좋음) Github / AWS
rypro.tistory.com
'모험가의 Spring > Spring' 카테고리의 다른 글
[ SpringSecurity + JWT + Redis ] 로그인과 RefreshToken을 이용한 AccessToken 재발급편 👨💻 (0) | 2022.10.21 |
---|---|
[ SpringSecurity + JWT + Redis ] 회원가입편 (0) | 2022.10.20 |
SpringBoot+AWS+RDS 서버 배포하기 -RDS편- (1) | 2022.10.07 |
Docker + SpringBoot 개발환경 구축 (1) | 2022.10.07 |
JPA findAll() 정렬해서 가져오는법 (0) | 2022.10.01 |