본문 바로가기
개발진행목록/학습 커뮤니티 서비스

[학습 커뮤니티] AWS로 개발 서버 구축하기(3) - EC2 설정 및 빌드

by o3oppp 2025. 5. 21.
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>