[AWS] SpringBoot 프로젝트 (EC2) 배포 Mariadb,Maven, git(2)
이번에는 Putty를 이용하여 Ubuntu 콘솔에 접속한 환경에서
Git을 설치하고 Ubuntu에 git clone 하여 배포해보려고 한다.
로컬 환경에서 빌드 후 jar 파일을 생성하여 EC2로 가져와도 무방하지만
로컬에서 프로젝트 변경사항이 생겼을때 EC2 내에서 연결된 git에서
자동으로 pull 받아 EC2 내에서 빌드 할 수 있는 편리함이 있어 git과 연동하여 진행해볼 예정이다.
1. EC2에서 Git 설치 및 설정
✅ 1.1. Git 설치
EC2에 Git이 설치되어 있는지 확인합니다.
Git을 아래 명령어로 설치
sudo apt update && sudo apt install git -y
- Git 설치 확인
git —version
✅ 1.2. GitHub SSH 키 등록
- EC2에 SSH 키 생성
ssh-keygen -t rsa -b 4096 -C "email@example.com"
- Enter 키를 눌러 기본 경로 (~/.ssh/id_rsa)에 저장
- 패스프레이즈(비밀번호) 입력
2. SSH 공개 키 확인
- 생성된 SSH 공개키를 해당명령어로 출력후 복사한다.
cat ~/.ssh/id_rsa.pub
3. GitHub에 SSH 키 등록
- GitHub SSH 설정 페이지로 이동
- New SSH Key 클릭 후 Title 입력, 공개 키(id_rsa.pub 내용)를 복사하여 추가
2. GitHub에서 프로젝트 Clone
✅ 2.1. 클론할 폴더로 이동 후 Clone
클론할 프로젝트 깃허브 레포지토리로 이동 > code > SSH탭, 주소복사
git clone "깃허브에서 복사한 값"
이후 ‘yes’ 입력 > 앞서 설정한 패스프레이즈(비밀번호)를 입력한다.
3. Java 설치 및 빌드파일 생성, 실행
✅ 3.1 jdk 설치
명령어 입력
sudo apt install openjdk-17-jdk
설치 확인
java —version
✅ 3.2 Maven 설치
sudo apt update
sudo apt install maven -y
- 버전 확인
mvn -version
- 빌드(테스트 하지않고)
mvn clean package -DskipTests
프로젝트경로 > target하위에 jar 파일이 생성된것을 확인 할 수 있다.
빌드된 jar 파일을 실행 시켜보도록 하자
java -jar target/CarStoreApi-0.0.1-SNAPSHOT.jar
실행시 오류가 났다. 당연히 날 수 밖에 없는것이 현재 ec2에 mariadb가 없고 연결하고 있지 않기 때문이다.
DB를 우분투에 설치해 보도록 하겠다.
설치 후 현재 로컬 환경인 windows 에서 dbeaver로 접속하여 좀 더 직관적이고 쉽게 테이블을 생성 해보도록 할 예정이다.
4. MariaDB 설치 및 연결
✅ 4.1 MariaDB 설치
sudo apt install mariadb-server -y
- MariaDB 서비스 실행 및 자동 시작 설정
sudo systemctl start mariadb
sudo systemctl enable mariadb
✅ 4.2 원격 접속 허용
MariaDB의 설정을 변경하여 외부 접근을 허용해야 한다.
- MariaDB 설정 파일 수정
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
명령어 입력 후 “bind-address” 를 찾아 아래와 같이 수정한다.
bind-address = 0.0.0.0
- MariaDB 재시작
sudo systemctl restart mariadb
✅ 4.3 MariaDB 접속 및 스키마(DB) 생성
MariaDB에 접속하여 필요한 DB 및 계정을 생성한다.
- MariaDB 접속
sudo mariadb -u root -p
- 스키마생성
CREATE DATABASE car;
- 계정 생성 및 권한 부여
CREATE USER 'user'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON car.* TO 'user'@'%'; FLUSH PRIVILEGES;
- DBeaver로 연결 Test
Server Host: AWS EC2 퍼블릭 ip 입력
Username : 생성한 유저이름 입력
Password : 생성한 패스워드 입력
성공적으로 Windows DBeaver에서 EC2의 Mariadb에 연결하여 방금 생성한 스키마를 확인할 수 있다.
이제 DBeaver에서 SpringBoot 실행에 있어서 필요한 최소의 테이블을 만들고 다시 실행해보도록 하겠다.
우분투내 SpringBoot가 정상적으로 실행이 되었다
Windows로 돌아와서 크롬에서 publicIp:8080을 검색해보면 404 페이지가 나오는 것도 확인할 수 있다!
5. PostMan Api 요청
앞서 DBeaver에서 생성한 Member 테이블에 user를 Insert하는
POST HTTP 요청으로 보내 데이터가 잘 들어가는지 확인해 보도록 하겠다.
정상적으로 응답을 받았다.
Member 테이블에서도 정상적으로 데이터가 잘 들어 간 것을 확인할 수 있다!