[AWS를 이용한 시스템 설계 및 구축과 배포] 15. 다중 서버 Thymeleaf + Spring boot + MySQL 배포 (영상 설명 한 번 읽어주세요)
- 프로젝트 클론: GitHub 리포지토리에서 Thymeleaf + Spring Boot + MySQL 프로젝트를
git clone으로 가져옵니다. 🔗
- 환경 변수 설정:
application.properties에 데이터베이스 서버의 프라이빗 IP 주소를 포함한 데이터 소스 URL을 설정하고, 기타 파라미터는 GitHub README에서 복사합니다. ⚙️
gradlew 실행 권한 부여: 빌드 전 chmod +x gradlew 명령어로 스크립트에 실행 권한을 추가합니다. 🔒
- 프로젝트 빌드:
./gradlew clean build 명령어를 사용하여 실행 가능한 JAR 파일을 생성합니다. 🏗️
- 백그라운드 서비스 환경 구축: 애플리케이션 및 로그 디렉토리(
opt/multiple-server-log)를 생성하고, 빌드된 JAR 파일을 /opt/multiple-server/app.jar로 복사합니다. 📁
- Systemd 서비스 등록:
/etc/systemd/system/multiple-server.service 파일을 생성하여 서비스 유닛을 정의하고, systemctl daemon-reload, start, enable 명령어로 서비스를 등록 및 활성화합니다. 🚀
- 서비스 상태 및 로그 확인:
systemctl status multiple-server로 구동 상태를 확인하고, tail -n 100 /opt/multiple-server-log/app.log로 로그를 조회하여 정상 작동을 검증합니다. ✔️
- 배포 기능 검증: 웹 서버의 퍼블릭 IP와 8080 포트를 통해 애플리케이션에 접속, 회원가입 및 로그인 기능을 테스트하여 다중 서버 배포의 성공을 확인합니다. 🌐
- CI/CD 필요성 강조: 코드 변경 시 수동 빌드 및 재배포의 비효율성을 지적하며 CI/CD(지속적 통합/지속적 배포)의 중요성을 설명합니다. 🤖