그저 내가 되었고

☁️⟪Azure⟫ Spring Boot(Gradle) + Azure Database for MySQL + Azure Virtual Machines로 백엔드 배포 본문

개발/Cloud Computing

☁️⟪Azure⟫ Spring Boot(Gradle) + Azure Database for MySQL + Azure Virtual Machines로 백엔드 배포

hyuunii 2024. 2. 9. 12:39

과정 개략))

1) Azure에서 배포할 백엔드 서버 구축하기(Azure 리소스 그룹 생성, Azure Virtual Machines 구축)

2) Azure에서 배포할 DB 서버 구축하기(Azure Database for MySQL 구축)

3) Spring Boot(Gradle-groovy)로 백엔드 서버 코딩하기

4) 2)에서 구축한 DB 서버를 백엔드 코드로 연결 후 서버 구동해서 DB 잘 붙는지 확인하기

5) 코딩한 백엔드 서버를 깃에 올리기

6) 1)에서 구축한 Azure Virtual Machines에 깃에 올려둔 코드 클론해서 배포하기

7) 배포한 ip로 데이터 보내보며 DB까지 잘 붙는지 확인하기

 

 

 

 

1-1) Azure에서 배포할 백엔드 서버 구축하기(Azure 리소스 그룹 생성)

 

 

1-2) Azure에서 배포할 백엔드 서버 구축하기(1-1에서 생성한 리소스 그룹에 Azure Virtual Machines 구축)

 

 

 

 

2) Azure에서 배포할 DB 서버 구축하기(Azure Database for MySQL 유동 서버 구축)

2-1) DB 구축

 

 

2-2) DB 퍼블릭 액세스 허용하기

설정>네트워킹에서

 

 

방화벽 규칙을 아래와 같이 추가한다.

규칙 이름: 아무거나

시작 IP 주소: 0.0.0.0

종료 IP 주소: 255.255.255.255

이 과정을 안해주면 배포환경에서 DB가 붙지 않는다.

 

 

 

3) Spring Boot로 백엔드 서버 코딩하기

 

 

이후 의존성은 필요한대로 넣으시면 됨니다.

저는 기본적인 코딩 마치니 이정도 들어갔습니다.

 

 

 

 

4) 2)에서 구축한 DB 서버를 백엔드 코드로 연결 후 서버 구동해서 DB 잘 붙는지 확인하기

일단 제가 사용하는 IntelliJ Ultimate은 구독중인 Azure를 연동할 수 있습니다. IntelliJ Community는 되는지 잘 모르겠네요.

위처럼 Azure 계정 로그인 후, 구축한 DB서버를 Project에 Connect하기를 누르면 자동입력되어 출력됩니다.

 

연결 후 postman 등을 통해서 자료가 잘 들어가고 나오는지 확인해주세요.

 

 

 

5) 코딩한 백엔드 서버를 깃에 올리기

깃에서 레포 파고 거기로 푸쉬합니다.

이때!! 빌드해서 그걸 꼭 같이 푸쉬해줘야합니다. 빌드 파일은 자동으로 커밋되지 않으니 따로 추가해줘야 합니다. 걔로 배포할 것입니다.

 

빌드는 bootJar로 합니다.

 

경로는 /build/libs입니다.

얘로 배포할겁니다. 

 

 

 

 

6) 1)에서 구축한 Azure Virtual Machines에 깃에 올려둔 코드 클론해서 배포하기

Azure App Service나 Azure Spring Apps를 이용하지 않고 왜 ? 굳이? 가상머신을 이용하는가? 하신다면 . . . . 

이 두 개가 잘 안되기 때문입니다. . . . . 며칠동안 삽질했는데 안돼요. 안됩니다.

그냥 가상머신 만들어서 거기에 코드 클론하고 배포하는게 속 편합니다. . . . .

 

6-1) 구축한 가상머신의 포트8080 인바운드규칙 추가

네트워킹>네트워크 설정에 아래와 같이 추가해줍니다.

 

 

6-2) 연결>원시SSH 누르고 SSH 명령 복사하기

 

 

6-3) 터미널에서 복사한 SSH 명령으로 vm 접속

 

 

6-4) 만든 프로젝트의 자바 버전 맞도록 자바 설치 후 경로 확인하기

자바 17 설치

$ sudo apt update
$ sudo apt install openjdk-17-jdk

 

자바 경로 확인해서 알아두기(보통 /usr/bin/java)

$ whereis java

 

 

6-5) 코드 클론해서 받아오기

$ git clone 깃주소

 

 

6-6) 빌드 파일 위치로 이동 후 nohup으로 배포

cli 구조]

$ nohup 자바위치 -jar jar파일명 &

 

cli 예시]

$ nohup /usr/bin/java -jar BE_SOURCE_CODE_AZ-0.0.1-SNAPSHOT.jar &

 

 

6-7) 배포한 파일 돌아가는지 확인

+ 최초 배포 후에는 ip주소:8080 포트까지 붙여서 접속하기

$ ps-ef | grep java

 

 

 

 

7) 배포한 ip로 데이터 보내보며 DB까지 잘 붙는지 확인하기

완료