Skip to main content
Java / Kotlin 언어로 작성된 Spring Boot 애플리케이션 배포 가이드입니다.

준비 및 확인사항

프로젝트 설정 파일(pom.xml, build.gradle 등)에 명시된 JDK 버전과 배포 설정 시 선택한 JDK 버전이 일치하지 않으면 빌드 오류가 발생할 수 있습니다.
기본적으로 JAR 형태의 빌드 산출물 및 스크립트를 지원하며, WAR의 경우 Executable WAR에 한하여 지원합니다.

템플릿과 저장소 선택

대시보드의 또는 ⌘ + K 로 생성되는 배포창에서 Springboot 템플릿을 선택하고, 이어지는 드롭다운 메뉴에서 연동된 GitHub 계정의 저장소를 선택하세요.

배포 설정값 입력

다음 각 항목에서 서비스가 동작하기 위한 설정을 알맞게 적용하세요.
  • Build Variables: 컨테이너 이미지 빌드 시 포함되어야 하는 변수
  • Embedded node.js: 프로젝트 내 빌드가 필요한 Node.js 버전
  • Pre-built jar file path: 사전에 빌드되어 저장소에 반영되어 있는 jar 파일 경로
  • Build Command: gradle/maven 빌드 명령어
  • Include files in build: 빌드 시 추가할 파일 혹은 디렉토리
  • Update strategy
    • Rolling Update: 새로운 버전의 서비스 배포 시점에 기존 파드 종료, 노드 가용자원 확보 필요
    • Recreate: 모든 서비스 종료 후 새로운 버전의 서비스를 생성 및 구동하여 다운타임 발생

성능(리소스) 설정 및 배포

  • 리소스 유형 : 구독 리소스와 프리티어 리소스 중 선택
  • CPU : 서비스가 사용할 vCPU 리소스의 최대값을 설정하며, ‘최소 vCPU’ 선택 시 0.1 vCPU 사용
  • 메모리 : 서비스가 사용할 메모리 리소스의 최대값을 설정
  • 동시실행(레플리카) : 설정한 수만큼 서비스가 수평확장되어 부하 분산 및 안정성 확보
  • 배포 : 배포하기 클릭
배포가 완료되면 프리뷰 도메인을 통해 브라우저로 웹 페이지를 조회하거나 API 툴을 사용해 요청을 보낼 수 있습니다.

고급 설정 기능

저장소 내 Jar 파일 배포

  • Spring Boot Jar 파일을 저장소에 반영하고 배포하는 경우, 배포 설정창의 Pre-built jar file path 필드에 각 빌드도구에 맞는 jar파일의 경로를 입력하고 배포를 진행합니다.
    • Gradle: build/libs/[프로젝트명].jar
    • Maven: target/[프로젝트명].jar

빌드 시 특정 리소스 경로 포함

  • cloudtype 에서 Spring Boot 프로젝트를 배포하는 경우, 정적 리소스 위치로 WebProperties.Resources에 정의된 /static 등을 제외한 src 디렉토리의 파일은 빌드 시 포함되지 않습니다.
    프로젝트에서 특정 경로의 리소를 참조하는 경우 배포 설정창의 Include files in build 필드에 해당 디렉토리 경로를 작성하고 배포하면 됩니다. 구분자 쉼표(,)를 사용하여 복수의 디렉토리를 포함시킬 수 있습니다.

멀티모듈 어플리케이션 배포

  • 여러 개의 모듈로 이루어진 Spring Boot 어플리케이션을 배포하는 경우 몇 가지의 작업이 필요합니다. 간단한 예시를 통해 배포 방법을 안내드립니다.
    • api, core 모듈로 구성하고 api를 main class로 지정
    • Spring Boot 템플릿 선택 후 다음의 설정 적용
      • Start command: java -jar api/build/libs/api-0.0.1-SNAPSHOT.jar
        • java -jar의 인수로 <main 모듈명>/build/libs/<main 모듈명>-0.0.1-SNAPSHOT.jar
      • Include files in build: core,api
        • 모듈의 디렉토리명을 쉼표로 구분하여 입력

Spring Boot Docs