반응형
- 참고 (Spring Initializr)
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 파일 배포해보기
- tomcat 서비스 Down
- /opt/tomcat/webapps/ 경로에 demo.war 파일을 옮김
- tomcat 서비스 Up
Maven으로 SpringBoot 애플리케이션을 war 파일로 빌드 후 docker container 및 EC2에서 배포 테스트를 진행해보았다.
다음으로는 Terraform으로 3 티어 아키텍처를 구축해 볼 예정이다.
- Ref
https://medium.com/@jyson88/tomcat-container-image-생성-f77e560ca2a8
반응형
'AWS' 카테고리의 다른 글
[CICD] Terraform을 통한 AWS 3 Tier 구성 및 CI/CD 파이프라인 배포 #4 - Jenkins, Github 연동 및 Maven Build (0) | 2021.08.11 |
---|---|
[CICD] Terraform을 통한 AWS 3 Tier 구성 및 CI/CD 파이프라인 배포 #3 - 3 Tier 인프라 구축 (7) | 2021.08.11 |
[CICD] Terraform을 통한 AWS 3 Tier 구성 및 CI/CD 파이프라인 배포 #1 - 아키텍처 및 CICD 흐름 소개 (0) | 2021.08.11 |
[Packer] Packer를 이용한 EC2 AMI 생성 (1) | 2021.08.06 |
[Ansible] AWS EC2 Dynamic Inventory 사용하기 (0) | 2021.07.30 |