Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- frontend
- 일대다
- 노마드코더
- clonecoding
- web
- 트랜잭션
- 다대일
- python
- css
- AWS
- 장고독학
- Django
- html
- 장고
- javascript
- 프론트엔드
- SBERT
- 매핑
- JS
- TODO
- React
- JPA
- 단방향
- ORM
- nomadcoder
- 영속성 컨텍스트
- java
- 바닐라js
- 다대다
- 플러시
Archives
- Today
- Total
꿈꾸는 새벽하늘
AWS EC2에 스프링 부트 프로젝트 배포하기 본문
이 글은 EC2와 RDS 설정을 모두 마쳤다는 것을 전제로 그 뒤의 배포 작업에 관한 내용을 다룹니다.
아직 EC2와 RDS 인스턴스가 생성되지 않은 분들은 아래 글을 참고하신 뒤 이 글을 읽으시는 것을 추천드립니다.
1. 저장된 PuTTY Session에 접속하여 자바 설치 여부 확인
java -version
2. 깃허브에 있는 프로젝트를 불러오기
git clone {깃허브주소}
3. clone을 마친 프로젝트 폴더로 이동
cd {프로젝트이름}
4. application.yml 파일은 깃허브에 업로드하지 않는 경우가 많으므로 EC2 서버 내에 따로 추가해주어야 합니다.
cd src/main/resources
nano application.yml # 편집기 실행하여 application.yml 내용 옮기고 저장
단, 이제 RDS 인스턴스와도 연결해야 하기 때문에 application.yml의 일부분을 아래와 같이 바꿔줍니다.
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://{RDS 인스턴스 엔드 포인트}:3306/{DB 이름}?createDatabaseIfNotExist=true&characterEncoding=UTF-8&characterSetResults=UTF-8
username: {마스터 사용자 이름}
password: {마스터 암호}
5. 프로젝트 내의 build.gradle에 H2 database 의존성 추가
dependencies {
implementation "com.h2database:h2"
}
6. build 진행
./gradlew build
- 만약 빌드 과정에서 권한이 부여되지 않아 에러가 발생한다면 아래 코드를 입력한 뒤 다시 빌드합니다.
chmod +x ./gradlew
- 빌드가 너무 느리거나 중간에 멈추는 에러가 발생한다면 이는 AWS EC2 프리 티어의 메모리 부족으로 인한 문제이므로 아래 코드를 입력하면 됩니다.
# 스왑 메모리 할당
sudo dd if=/dev/zero of=/swapfile bs=128M count=16
# 스왑 파일에 대한 읽기 및 쓰기 권한 업데이트
sudo chmod 600 /swapfile
# 스왑 영역 설정
sudo mkswap /swapfile
# 스왑 공간에 스왑 파일 추가
sudo swapon /swapfile
# 위 과정이 모두 성공했는지 확인
sudo swapon -s
# 편집기에서 파일 열기
sudo vi /etc/fstab
# 파일 끝의 새로운 줄에 아래 코드를 추가하고 파일을 저장한 뒤 종료
/swapfile swap swap defaults 0 0
7. 빌드가 성공하면 build -> libs 폴더가 생기고 그 내부에는 jar 파일이 있습니다. ls 명령어로 jar 파일 이름을 확인하고 실행합니다. jar 파일 실행 시 마지막에 붙이는 &는 백그라운드에서도 실행한다는 의미로, EC2 콘솔에 접속되어 있지 않더라도 파일이 계속 실행되게 됩니다.
cd build/libs
ls
java -jar myproject-0.0.1-SNAPSHOT.jar & # jar 파일명을 확인하고 정확하게 입력
8. 서버 배포 확인
http://{탄력적 IP 주소}:8080/
'☁️ AWS' 카테고리의 다른 글
CI/CD & AWS 배포 (1) | 2023.06.04 |
---|---|
클라우드 컴퓨팅 (0) | 2023.05.06 |
AWS 배포하기: EC2 & RDS (0) | 2023.05.05 |