Ubuntu 서버에서 Spring Boot 애플리케이션을 강력하고 확장성 꿈은 배포 방식을 적용할 수 있도록, Git, Gradle, Tomcat을 활용하는 방법을 정리합니다.

  • GitHub에서 파일 가져오기
  • Gradle을 이용한 빌드 (bootJar)
  • Spring Boot JAR 파일을 시작하는 방법
  • Tomcat을 이용한 WAR 배포
  • 반응 성능 확장 & 우수화

1. GitHub에서 파일 가져오기

Git 설치 (필수)

sudo apt update
sudo apt install -y git

GitHub에서 소스 클론

git clone https://github.com/[내 git]/my-project-001.git
cd my-project-001

2. Gradle을 이용한 빌드

Gradle 설치

sudo apt install -y gradle
gradle -v

JAR 배포 원하면 bootJar 실행

./gradlew bootJar

빌드 결과 확인

ls -l build/libs/

3. Spring Boot 시작 & 반응 공유

필요시 JAR 배포 시작

java -jar build/libs/myapp-0.0.1-SNAPSHOT.jar

반균 시작 (nohup)

nohup java -jar build/libs/myapp-0.0.1-SNAPSHOT.jar > app.log 2>&1 &

자동 시작 (systemd)

sudo nano /etc/systemd/system/myapp.service
[Unit]
Description=Spring Boot Application
After=network.target

[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/my-project-001
ExecStart=/usr/bin/java -jar /home/ubuntu/my-project-001/build/libs/myapp-0.0.1-SNAPSHOT.jar
SuccessExitStatus=143
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable myapp
sudo systemctl start myapp

👉 5. Tomcat을 활용한 WAR 배포

Spring Boot WAR 배포 빌드

build.gradle 수정:

plugins {
    id 'war'
}

dependencies {
    providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
}

bootWar {
    archiveBaseName = 'myapp'
    archiveVersion = '0.0.1'
}
./gradlew bootWar

Tomcat 설치

wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.83/bin/apache-tomcat-9.0.83.tar.gz
tar -xvf apache-tomcat-9.0.83.tar.gz
sudo mv apache-tomcat-9.0.83 /opt/tomcat
sudo chmod +x /opt/tomcat/bin/*.sh

WAR 파일 배포 & Tomcat 시작

cp build/libs/myapp-0.0.1.war /opt/tomcat/webapps/
/opt/tomcat/bin/startup.sh

🔧 6. 성능 확장 & 우수화

Reverse Proxy 매핑 (Nginx, HAProxy)

Connection Pool 설정 (server.xml 수정)

반복 시작 필합 (CI/CD 개선)

로드 밸런서 적용


👉 7. 결말

Ubuntu에서 Spring Boot을 가능한 모든 방식으로 배포할 수 있도록 해보았습니다.

✨ 일반적인 배포: java -jar + nohup 또는 systemd ✨ 클래스터 분류 가능: WAR + Tomcat

+ Recent posts