Spring Boot AWS EC2 배포(1)
이 글은 Spring을 배포하기 위해 공부하면서 겪었던 어려움을 정리하기 위해 작성되었습니다.
1부에서는 8080 포트를 이용하는 기본적인 배포와
2부에서는 nginx와 certbot을 활용 hppts 프로토콜을 사용하는 배포를 진행할 예정입니다.
(저는 따로 설정을 통해 8081 포트를 사용하였습니다.)
우선 EC2 인스턴스 생성까지 마치고 접속한 모습입니다. (ubuntu를 사용했습니다.)
이 부분까지 어려우신 분은 아래 링크를 참고해 주세요.(리액트 배포를 위해 만들었지만 인스턴스 생성 과정은 같습니다.)
https://plants-growth.tistory.com/30
포트도 8080(기본포트), 80, 443 을 미리 열어 주세요.
그럼 시작하겠습니다.
설치
우선 git clone 을 해 주세요.
그리고 java를 설치해 줍니다.(저는 17로 진행했습니다.)
# 설치
sudo apt update
sudo apt install openjdk-17-jdk
# 확인
java -version
build 하기 전에
하기전에 만약 프리티어를 사용하고 있다면 메모리 용량이 부족할 수 있습니다.
부족하면 빌드가 끝이 안나게 됩니다.
메모리를 추가할 거면 아래 명령어를 쳐 주세요. (우선 빌드를 해 보고 5분 기달려도 안되시면 그때 입력하는 것을 추천드립니다. )
sudo dd if=/dev/zero of=/mnt/swapfile bs=1M count=2048
sudo mkswap /mnt/swapfile
sudo swapon /mnt/swapfile
build
권한을 변경해 줍니다.
sudo chmod 777 ./gradlew
빌드해 줍니다.
sudo ./gradlew build
빌드 과정에서 오류가 난다면 주로 로컬 환경과 배포 환경이 달라서 일겁니다. 오류를 잘 확인해서 고쳐주시면 됩니다.
BUILD SUCCESSFUL 이 나오면 성공입니다.
체크
배포가 잘 되는지 확인해 줍니다.
java -jar build/libs/{생성된파일}.jar
사이트가 잘 들어가 진다면 성공입니다.
다음글에서는
Nginx를 사용하여 SSL인증서를 발급받고 https프로토콜을 적용하는 것과
무중단 배포까지 알아보도록 하겠습니다.
다음글: https://plants-growth.tistory.com/34
참고 자료:
java 설치
build 및 배포
https://velog.io/@hyeonwoody/AWS
메모리 부족 현상 해결
https://progdev.tistory.com/26