728x90
1. EC2 인스턴스 생성
AWS 콘솔에서 EC2 생성
- AWS 콘솔 접속 https://aws.amazon.com/
- EC2 대시보드 → 인스턴스 시작
- Amazon Linux 2 / Ubuntu 22.04 LTS 선택 (둘 다 OK)
- 인스턴스 유형: t2.micro (무료 티어)
- 키 페어 생성 또는 기존 키 선택
- 보안 그룹 설정:
- 인바운드 규칙에 SSH(22), HTTP(80), 혹은 필요 시 8080 포트 열기
- 인스턴스 시작
키 페어(.pem 파일)는 꼭 백업하세요! 나중에 SSH 접속 시 필요합니다.
2. EC2에 SSH 접속
chmod 400 your-key.pem
ssh -i "your-key.pem" ec2-user@<EC2-Public-IP>
OS | 계정명 |
Amazon Linux | ec2-user |
Ubuntu | ubuntu |
3. 필수 소프트웨어 설치
# Java 17 설치 (Amazon Linux 기준)
sudo yum install -y java-17-amazon-corretto
# Ubuntu의 경우
sudo apt update && sudo apt install openjdk-17-jdk
설치 후 확인:
java -version
4. 스프링 부트 애플리케이션 빌드
로컬(개발 PC)에서:
./gradlew bootJar
build/libs/myapp-0.0.1-SNAPSHOT.jar 생성
5. EC2로 JAR 파일 전송 (scp)
scp -i your-key.pem build/libs/myapp-0.0.1-SNAPSHOT.jar ec2-user@<EC2-IP>:/home/ec2-user/
6. EC2에서 애플리케이션 실행
cd /home/ec2-user
java -jar myapp-0.0.1-SNAPSHOT.jar
정상 실행되면 콘솔에 Tomcat started on port(s): 8080 메시지 확인 가능
브라우저에서 http://<EC2-Public-IP>:8080 접속 시 동작 확인 가능
7. EC2 보안 그룹 포트 개방 확인
- AWS EC2 > 인스턴스 > 보안 그룹 > 인바운드 규칙 편집
- 8080 포트 (또는 설정한 포트)을 TCP, 0.0.0.0/0 으로 개방
8. 백그라운드 실행 (선택)
nohup java -jar myapp-0.0.1-SNAPSHOT.jar > app.log 2>&1 &
- app.log 파일에 로그 저장됨
- & 는 백그라운드 실행 의미
- 프로세스 종료: kill -9 [PID]
9. 유용한 명령어 모음
ps -ef | grep java # 자바 프로세스 확인
tail -f app.log # 실시간 로그 보기
kill -9 [PID] # 앱 종료
마무리 요약
단계 | 내용 |
1. EC2 생성 | Amazon Linux / Ubuntu, 포트 오픈 |
2. SSH 접속 | .pem 키 사용 |
3. Java 설치 | Java 17 이상 |
4. JAR 빌드 | ./gradlew bootJar |
5. 파일 전송 | scp 사용 |
6. 실행 | java -jar or nohup |
7. 외부 접속 | 포트(8080) 보안 그룹 확인 |
향후 확장 방향
확장 | 기능설명 |
CI/CD 연동 | GitHub Actions 또는 Jenkins로 자동 배포 |
Nginx Reverse Proxy | http://yourdomain.com으로 접속 가능 |
TLS(HTTPS) 적용 | Let's Encrypt + Nginx 사용 |
Docker 기반 배포 | Dockerfile 작성 후 EC2에서 컨테이너 실행 |
LIST
'SpringBoot > 배포 및 운영' 카테고리의 다른 글
로그 관리(Logback, Log4j2) (0) | 2025.04.16 |
---|---|
CI/CD (GitHub Actions, Jenkins) (0) | 2025.04.16 |
Spring Boot 패키징(JAR, WAR) (1) | 2025.04.15 |