배포하기에 앞서 코드를 다시 돌려보니 뭔가 잔뜩 꼬여서 코드 수정부터 해야했다..
지금은 급한 시험 일정 때문에 수동 배포 과정을 정리하고
시험이 끝난 후 코드 정리하고 이 글을 보며 따라 해볼 예정이다 !!
배포를 위해서는 내 프로젝트를 실행 가능한 .jar파일로 포장해줘야 한다.
.jar은 쉽게 말해 "프로젝트 전체를 하나로 묶은 실행 파일"이라고 보면 된다.
- 인텔리제이 터미널에서 아래 명령어 입력
 
./gradlew clean build
jar파일 위치 확인하기📁 build └─ 📁 libs └─ 📄 board-0.0.1-SNAPSHOT.jar ← 이게 실행파일!!
- 명령어 실행으로 안 될 때
 
Gradle->Tasks->build더블클릭 ->bootJar클릭 -> 성공하면build/libs폴더에.jar생김 -> 이걸 EC2에 보내면 끝!
배포를 하려면 먼저 애플리케이션을 실행시킬 서버가 필요하다.
AWS에서 제공하는 가상 컴퓨터인 EC2 인스턴스를 만들면 된다.
1. Ubuntu 선택

2. 키 페어 생성
키 페어 생성된 것은 꼭 기억하고 있어야 한다 !!

3. 네트워크 설정

4. 스토리지 구성

위 사진 순서대로 따라하면 인스턴스가 생성된다.
배포할 EC2 인스턴스는 AWS에서 생성했지만,
이제는 로컬 개발 환경에서 EC2 서버에 접속해야 한다.
VS Code에서는 Remote - SSH라는 확장 프로그램을 사용하면 간편하게 SSH 접속이 가능하다!
1. Remote - SSH 확장 설치
- VS Code 왼쪽의 확장 탭을 클릭하여
 Remote-SSH검색 후 설치
2. SSH config 파일 설정하기
Host likelion_backend_study HostName "EC2 인스턴스의 퍼블릭 DNS 주소" User ubuntu ForwardAgent yes IdentityFile ".pem 키 파일의 절대 경로 -> \로 구분"
3. SSH 연결하기
Ctrl + Shift + P->Remote-SSH : Connect to Host...입력 후 선택
연결되면 EC2 서버 접속 성공!
이제 만든 .jar 파일을 EC2 서버에 복사하고, 서버에서 실행한다.
1.
.jar파일 복사하기
scp명령어 사용 (터미널에서)scp -i "C:/Users/ygm27/study.pem" build/libs/board-0.0.1-SNAPSHOT.jar ubuntu@퍼블릭IP주소:~
2. EC2에서 Java 설치하기
sudo apt update # 패키지 정보 최신화 sudo apt install openjdk-17-jdk -y # JDK 설치 java -version # 설치 확인
3.
.jar파일 실행하기java -jar board-0.0.1-SNAPSHOT.jar // 현재 디렉토리에 .jar가 있는 경우
4. 브라우저에서 확인하기
http://<EC2 퍼블릭 IP>:8080
EC2에서 직접 DB를 실행하려면 MariaDB를 설치해야 한다.
1. DB 설치
sudo apt update sudo apt install mariadb-server
2. 실행 및 보안 설정
sudo systemctl start mariadb sudo mysql_secure_installation
3. DB 및 사용자 생성
sudo mysql CREATE DATABASE board; CREATE USER 'root'@'%' IDENTIFIED BY 'root'; GRANT ALL PRIVILEGES ON board.* TO 'root'@'%'; FLUSH PRIVILEGES; EXIT;
application.yml 설정spring:
  datasource:
    url: jdbc:mariadb://localhost:3306/board
    username: root
    password: root
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true
    ```
    `.jar` 파일 안에 포함되어 있어야 하므로 빌드 전에 이 파일을 작성해야 함
마지막으로
java -jar board-0.0.1-SNAPSHOT.jar
위 명령어를 EC2 서버 안에서 실행하면
.jar파일이 서버에서 돌아가기 시작하고- Spring Boot 내장 톰캣이 포트 8080에서 대기하고
 - 외부에서
 http://<EC2 퍼블릭 IP>:8080으로 접속하면 실제로 서비스 되는 웹 페이지가 뜨는 것 !!!
코드 오류 수정이 생각보다 오래 걸려서 수동 배포를 직접 진행해보진 못했지만
시험이 끝난 후 이 글을 보며 EC2에 수동 배포를 완료해볼 예정이다.
추가적으로 Docker를 활용한 배포 방법도 정리해서 심화 편으로 이어갈 계획이다 !!