이전 포스팅
[AWS] EC2 인스턴스에서 Spring Boot와 Docker로 배포
이 포스팅에서는 ssh로 EC2 인스턴스에 접속한 다음에 이루어지는 개발환경 세팅을 다룬다.패키지 최신화우분투 환경이라 아래 명령어들로 패키지 목록과 패키지를 최신화한다.sudo apt update -ysudo
yaga.tistory.com
이 포스팅에서는 Docker-compose로 Nginx와 Tomcat을 각각 실행 시킨 후 리버스 프록시 설정으로 Nginx와 Tomcat을 연동하는 걸 다룬다.
docker-compose 설치
docker-compose를 설치한다.
sudo apt install -y docker-compose
이 포스팅에서는 아래와 같은 폴더 구조로 진행했다.
Nginx
Dockerfile
최신 Nginx 이미지를 가져오고 nginx.conf 복사 뒤 포트를 80으로 설정
이 때 EXPOSE 80은 문서화용이다.(실제 포트 설정과는 상관이 없다.)
nginx.conf
프로세서
하나의 프로세스만 처리하고 동시 처리할 수 있는 연결 수는 1024로 설정HTTP 설정 관련은 80번로 설정, 테스트니까 server_name은 로컬로 설정했다.중요한 부분은 proxy_pass의 "http://tomcat:8080"의 tomcat은 docker-compose.yml에서 설정한 서비스명과 동일해야 한다.proxy_set_header는 클라이언트의 요청 헤더 정보를 tomcat으로 전달한다.
Tomcat
Dockerfile
tomcat9버전 + jdk21 이미지를 가져와서 index.jsp를 복사 한 뒤 8080으로 포트를 설정한다.
index.jsp 또는 html
docker-compose.yml
여기서 Nginx와 tomcat을 같이 연결시킨다.
여기서 services밑의 tomcat이라는 서비스명이 nginx.conf의 proxy_pass에 서비스명이다.
networks를 통해 nginx와 tomcat을 하나의 네트워크로 묶었고 nginx는 tomcat이 실행된 뒤 실행되도록 depends_on을 걸었다.
Docker Compose로 컨테이너 빌드/실행
docker-compose-yml이 있는 경로로 이동 후 아래 명령어 입력 시 docker-compse.yml 파일을 기반으로
컨테이너를 백그라운드로 실행하고 만일 이미지가 없으면 빌드 후 컨테이너를 실행한다.
sudo docker-compose up -d --build
컨테이너가 실행중인지 아래명령어로 확인한다.
sudo docker ps -a
호출 테스트
로컬 브라우저에서 EC2 IP(80 기본 포트라서 생략 가능)만 입력한 다음 아래처럼 index페이지가 표시되어야 한다.
정상적으로 Nginx와 Tomcat이 연동이 되었다.
개인 스터디 기록을 메모하는 공간이라 틀린점이 있을 수 있습니다.
틀린 점 있을 경우 댓글 부탁드립니다.
'IT > DevOps' 카테고리의 다른 글
[AWS] AWS RDS 인스턴스 구축 (0) | 2025.02.08 |
---|---|
[AWS] EC2 인스턴스에서 Spring Boot와 Docker로 배포 (0) | 2025.02.08 |
[AWS] 무경험자를 위한 서버 & DB 구축부터 배포까지 기본 실전 가이드 (0) | 2025.02.08 |
[git] git revert (40) | 2024.06.06 |
[git] git reset(feat. soft, mixed, hard) (36) | 2024.06.06 |
댓글