정화 코딩

[Back-end] free-tier AWS EC2 인스턴스 생성 후 서버 실행 본문

Web Development

[Back-end] free-tier AWS EC2 인스턴스 생성 후 서버 실행

jungh150c 2025. 4. 4. 18:11

EC2 인스턴스 생성

예전 글에서 했던 것과 동일하게 인스턴스를 생성했다. Closit은 이전에 사용한 인스턴스라 종료(삭제)했고 PreView가 이번 프로젝트에서 사용하는 인스턴스이다. 

 


인바운드 규칙 설정

SSH 접근은 내 IP로만 가능하게 하고, 8080 포트 접근은 모든 IP에서 가능하도록 설정하였다. 

 


인스턴스에 접속

Host ec2
    Hostname {인스턴스의 퍼블릭 IPv4}
    User ec2-user
    IdentityFile ~/preview-key.pem

C:\Users\ShinJunghwa\.ssh\config 에 위와 같이 적어서 저장해두면

ssh ec2

명령 프롬프트에서 간단히 위와 같이 명령어를 입력하면 바로 인스턴스에 접속할 수 있다. 

참고로 키 페어는 C:\Users\ShinJunghwa\preview-key.pem 에 두었다.

 


인스턴스에서 서버 실행 준비

sudo yum update -y

시스템을 업데이트 해준다.

sudo yum install git -y

Git을 설치한다. 

sudo yum install java-17-amazon-corretto -y

Java를 설치한다. 

java -version

Java가 잘 설치되었는지 확인하기 위해 버전을 확인해준다. 

 

gradlew build

intelliJ에서 빌드를 해준다. 

 

정상적으로 빌드가 되면 build\libs에 .war 파일이 생긴 것을 확인할 수 있다. 

scp -i C:\Users\ShinJunghwa\preview-key.pem "C:\Users\ShinJunghwa\Documents\GitHub\Chapssal-tteok\BE\build\libs\preview-0.0.1-SNAPSHOT.war" ec2-user@ec2-54-180-2-79.ap-northeast-2.compute.amazonaws.com:~

명령 프롬프트에서 위와 같이 명령어를 실행시켜서 .war 파일을 서버에 복사해준다. 

 

잘 복사가 되었다. 

 


EC2 인스턴스에서 서버 실행

java -jar preview-0.0.1-SNAPSHOT.war

다시 ec2 인스턴스에 접속해준 후 위의 명령어로 서버를 실행해준다. 

 

잘 실행된 것을 확인할 수 있다. 

 

스웨거 명세서도 잘 보인다!!

nohup java -jar preview-0.0.1-SNAPSHOT.war > app.log 2>&1 &

백그라운드로 실행하려면 위와 같이 실행하면 된다.

 


EC2 인스턴스에서 서버 종료

ps aux | grep java

위의 명령어로 PID를 확인한다.

kill -9 [PID]

위의 명령어로 프로세스를 강제 종료한다. 

 

이런식으로...

 

Comments