본문 바로가기

AWS

[CICD] Terraform을 통한 AWS 3 Tier 구성 및 CI/CD 파이프라인 배포 #2 - Maven으로 SpringBoot Demo 앱 배포

반응형

- 참고 (Spring Initializr)

https://start.spring.io/

 

SpringBoot로 Demo 프로젝트 생성

  • Project : Maven
  • Packaging : War (Tomcat 서버를 통해 배포할 것이기 때문)
  • Java : 8 Version 사용
  • Dependencies : Spring Web

 

간단한 Source 수정 및 index.html (Welcome Page) 생성

기본 뼈대에 index.html만 추가해준다. 그럼 기본 경로로 접속할 시 index.html로 리다이렉션이 된다.

 

실 서버에서 war 파일을 배포하기 전에 다음의 Test들을 진행하였다.

Docker container, EC2에서 각각 war 파일 배포해보기

 

 

1. Local에서 Docker Container로 띄워보기

아래의 블로그를 참조하였다.

https://medium.com/@jyson88/tomcat-container-image-생성-f77e560ca2a8

 

만약 wget에서 Error가 발생할 경우 Tomcat Download를 Google에서 검색 후 tar.gz 파일 주소 복사하여 RUN wget 부분에 대체해주면 된다.

 

- dockerfile

❯ ls
demo.war  dockerfile

❯ cat dockerfile
FROM openjdk:8-jdk

# 환경 변수 및 작업 경로
ENV CATALINA_HOME /opt/tomcat
ENV PATH $CATALINA_HOME/bin:$PATH
RUN mkdir -p "$CATALINA_HOME"
WORKDIR ${CATALINA_HOME}

# 패키지 설치 wget은 톰캣 설치 파일 다운로드 위한
RUN apt-get update;
RUN apt-get install -y --no-install-recommends
RUN apt-get install -y gnupg dirmngr
RUN apt-get install -y wget ca-certificates

# 톰캣 설치 파일 다운로드 실행 및 압축해제
RUN wget https://mirror.navercorp.com/apache/tomcat/tomcat-8/v8.5.69/bin/apache-tomcat-8.5.69.tar.gz
RUN tar -xf apache-tomcat-8.5.69.tar.gz  --strip-components=1;

# 불필요 파일 삭제 후 배포 후 war 파일 위치(webapps) 설정
RUN find . -name "*.bat" -exec rm -rf {} \;
RUN rm -rf *tomcat*.tar.gz;
RUN mv webapps webapps.org
RUN mkdir webapps

# war 파일 복사
COPY ./demo.war $CATALINA_HOME/webapps

# 컨테이너에서 사용할 포트
EXPOSE 8080

# 설정 완료 후 실행
CMD ["catalina.sh", "run"]

 

docker build -t tomcat-demo:0.1 .

# Build한 Image로 Container 띄우기
docker run -p 8081:8080 -d --rm --name tomcat tomcat-demo:0.1

 

2. EC2에 Tomcat 구성 후 war 파일 배포해보기

  1. tomcat 서비스 Down
  2. /opt/tomcat/webapps/ 경로에 demo.war 파일을 옮김
  3. tomcat 서비스 Up

 

Maven으로 SpringBoot 애플리케이션을 war 파일로 빌드 후 docker container 및 EC2에서 배포 테스트를 진행해보았다.

 

다음으로는 Terraform으로 3 티어 아키텍처를 구축해 볼 예정이다.

 

 

 

 

- Ref

https://medium.com/@jyson88/tomcat-container-image-생성-f77e560ca2a8

반응형