EC2 설정
1. java 설치
# Corretto 공개 키 시스템 목록에 추가
wget -O - https://apt.corretto.aws/corretto.key | sudo gpg --dearmor -o /usr/share/keyrings/corretto-keyring.gpg && \ echo "deb [signed-by=/usr/share/keyrings/corretto-keyring.gpg] https://apt.corretto.aws stable main" | sudo tee /etc/apt/sources.list.d/corretto.list
# java 17 설치
sudo apt-get update; sudo apt-get install -y java-17-amazon-corretto-jdk
- 초기에는 openjdk-17을 설치하여 진행하였지만 build 시 Java Toolcahin 미 인식으로 빌드가 되지 않았다.
- 아래를 참고하여 자바 설치를 진행하였다.
Amazon Corretto 17 Installation Instructions for Debian-Based, RPM-Based and Alpine Linux Distributions - Amazon Corretto 17
Amazon Corretto 17 Installation Instructions for Debian-Based, RPM-Based and Alpine Linux Distributions This topic describes how to install Amazon Corretto 17 on Debian-based, RPM-based and Alpine Linux distributions. If you need to install Amazon Corretto
docs.aws.amazon.com
2. 타임존 변경
# 기존 타임존 삭제
sudo rm /etc/localtime
# 신규 타임존 설정
sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
- date 명령어를 통해 타임존 변경 전/후를 비교하여 잘 적용된 것을 확인한다.
3. git 설치
sudo apt-get install git
4. git clone
git clone 원격 저장소 url
5. application.yml 파일 생성
# clone 후 프로젝트 내 main까지 이동 후 resources 폴더 생성
mkdir resources
# application.yml 파일 생성
nano application.yml
- application.yml 파일은 보안상의 문제로 깃허브에 업로드하지 않아 EC2 서버 내에 따로 생성해주었다.
- appication.yml 파일 입력 후 컨트롤 + x를 통해 나간 뒤 저장하면 된다.
6. 빌드
# 프로젝트 폴더로 이동
# 빌드 시 오류나는 경우 권한 부여
chmod +x ./gradlew
# 빌드
./gradlew build
# libs로 이동
cd build/libs
# jar 실행
java -jar 파일명-SNAPSHOT.jar
- 빌드가 도중에 진행이 되지 않는 문제가 발생하였다.
- 프리티어의 경우 메모리 부족으로 인해 추가적인 메모리 설정이 필요하였으며 아래 글을 통해 해결하였다.
AWS EC2 ./gradlew build시 멈춤 현상
작업 환경IDE: IntelliJSpring Boot: 3.2.3Java: 20EC2 Linux: UbuntuEC2에서 Spring 프로젝트를 Build 할 경우 어느 순간부터 진행률이 멈추고 가만히 있는다.이는 EC2 인스턴스의 메모리 부족으로 인해 발생하는 문
velog.io
7. 확인
- jar 파일을 실행하여 서버가 정상적으로 실행되는지 확인한다.
EC2 background 실행
1. background 실행
# jar 실행
nohup java -jar 파일명-SNAPSHOT.jar &
# 해당 문구가 뜬다면 성공
nohup: ignoring input and appending output to 'nohup.out'
- EC2에서 서버 배포 시 포어그라운드(foreground)에서 jar 실행 시 해당 서버에서는 아무것도 할 수 없다.
- 또한 서버 세션이 끊어지게되면 해당 프로세스도 종료되게 된다. 이러한 문제를 해결하기 위해 백그라운드에서 실행한다.
- nohub 명령어를 사용하여 jar를 실행한다.
- & : 프로그램을 백그라운드로 실행시키는 커맨드
2. jar 파일 실행 확인
# 해당 명령어를 통해 jar 파일의 PID 확인
ps -ef
3. 실행중인 프로세스 종료
# 프로세스 종료
kill -9 <PID>
'개발진행목록 > 학습 커뮤니티 서비스' 카테고리의 다른 글
[학습 커뮤니티] AWS로 CI/CD 구축하기(1) - 자동 배포를 위한 S3, CodeDeploy 연결 (0) | 2025.06.23 |
---|---|
[학습 커뮤니티] AWS로 개발 서버 구축하기(5) - Redis 연동 (0) | 2025.05.24 |
[학습 커뮤니티] AWS로 개발 서버 구축하기(4) - 환경 변수 설정 (1) | 2025.05.23 |
[학습 커뮤니티] AWS로 개발 서버 구축하기(2) - RDS 생성 (0) | 2025.05.20 |
[학습 커뮤니티] AWS로 개발 서버 구축하기(1) - EC2 생성 (0) | 2025.05.20 |