AWS EC2를 이용한 스프링부트 프로젝트 배포는 다음과 같은 과정을 거친다.
1. 자바 애플리케이션 jar 파일 생성
2. EC2를 이용한 배포
하나씩 해보자.
1. jar 파일 생성
intellij idea를 사용하고 있다면 간단하다. 다음 버튼을 클릭해보자
성공적으로 완료되었다면 해당 프로젝트 경로/build/libs/proj.jar이 생성됨을 확인할 수 있다.
2. EC2를 이용한 배포
이후 AWS 콘솔에 로그인 후 EC2->인스턴스(실행 중) 을 들어가면 다음과 같은 창이 뜬다
여기서 인스턴스 시작을 누르면 aws의 컴퓨터를 하나 빌릴 수 있다. OS 이미지와 인스턴스 유형을 선택하고 그 아래에서 인스턴스에 연결하기 위해 필요한 키를 발급받을 수 있다.
이후 간단한 설정을 하고 나면 컴퓨터를 성공적으로 빌렸음을 확인할 수 있다.
본 프로젝트는 8080 포트를 이용해 접근했으므로 이 포트를 열어주어야 한다. 네트워크 및 보안>보안 그룹을 클릭하면 다음과 같이 나온다.
방금 연 서버의 보안 그룹 이름은 launch-wizard-1 이므로 이를 선택, 인바운드 규칙을 눌러 규칙 추가를 하면 다음과 같이 나온다.
포트 범위에 8080, 소스 유형에 anywhere-IPv4를 선택하여 포트를 열어주도록 한다.
방금 연 인스턴스에 우클릭하여 연결을 클릭하면 연결하는 방법을 알 수 있다.
이를 git bash 를 통해 그대로 수행한다. ssh 명령어를 통해 쉘에 접속을 하면 연결 성공이다.
새 컴퓨터이므로 다음 명령어를 통해 자바 설치를 진행한다.
sudo apt install openjdk-17-jre-headless
설치 후 확인해보면 자바가 설치되었음을 확인할 수 있다.
이후 현재 컴퓨터에서 빌린 컴퓨터로 jar 파일을 이동시켜야 한다.
scp 명령어를 이용해 testkey.pem을 가지고 프로젝트 파일을 해당 서버의 ~/ 경로로 옮기는 작업을 수행한다. 수행하고 aws 컴퓨터의 파일을 확인하면 정상적으로 들어간 것을 확인할 수 있다.
이 파일을 실행시키면 되는데 그 전에 한 가지 과정이 더 필요하다.
3. DB 설치
이 프로젝트는 postgresql db를 사용하므로 aws 컴퓨터에 이를 설치해주어야 한다.
이후 이를 외부에서 접속하는 걸 허용해야 한다.
해당 파일에서 listen_addresses = '*' 를 추가하고,
해당 파일에서 IP 주소를 127.0.0.1/32->0.0.0.0/0으로 수정해주면 된다.
다음 코드로 postgres 비밀번호를 설정하고 db를 만들어주면 초기 설정은 끝난다.
#비밀번호 설정
sudo -u postgres psql
ALTER USER postgres with encrypted password '비밀번호';
\q
#db 생성
sudo -u postgres createdb db이름
잘 실행되는 걸 확인할 수 있다.
ps) 무중단 배포는 다음 명령어로 할 수 있다.
sudo nohup java -jar 파일이름.jar &
'Proj > 구구모' 카테고리의 다른 글
댓글 알림 구현(feat. sse) (0) | 2024.06.25 |
---|---|
EC2 한국 시간으로 변경 (0) | 2024.06.08 |
스프링 스케쥴러를 이용한 게시글 마감 처리 (0) | 2024.06.07 |
추천 게시글 기능 구현 (2) | 2024.06.04 |
댓글 및 대댓글 기능 구현 (0) | 2024.05.29 |