docker17 [AWS] 개별 EC2 아키텍처 구축 – Nginx 리버스프록시 + Tomcat 2대 이 포스팅에서는 아키텍처 버전2를 구축하는 과정을 다룬다.버전1에서는 Web, WAS1,2번을 하나의 EC2 인스턴스에서 Docker compose로 관리했지만이번에는 각 서버를 개별 EC2 인스턴스로 분리했고 각 서버에서 Docker로 컨테이너로 서비스를 실행시킨다.크게 어려울 건 없고 중요한 점은 WAS1,2번 서버에서 인바운드 규칙에 EC2 1번 Nginx 서버에게 9090, 9091포트(개발자 마음)를 허용해줘야 하고 RDS에서 2,3번 EC2 서버에게 3306포트를 허용해야 한다.첫번 째 EC2 인스턴스에 프리티어 스토리지 용량을 최대치인 30GB를 할당했기 때문에 2번 째 3번 째 인스턴스의 스토리지 용량은 t2.micro 유형의 최소용량인 8GB로 할당해서 생성한다.그리고 외부에서 접속 할 .. IT/DevOps 2025. 2. 15. [AWS] EC2 Nginx Reverse Proxy(feat. Docker compose) 이전 포스팅 [AWS] AWS EC2에서 Docker-compose로 Nginx, Tomcat 연동이전 포스팅 [AWS] EC2 인스턴스에서 Spring Boot와 Docker로 배포이 포스팅에서는 ssh로 EC2 인스턴스에 접속한 다음에 이루어지는 개발환경 세팅을 다룬다.패키지 최신화우분투 환경이라 아래 명령어yaga.tistory.com이 포스팅에서는 기존에 구축환경에 Nginx의 리버스 프록시로 로드밸런싱을 추가한다.이전 포스팅을 진행하고 와야 이번 내용을 진행하기 수월하다.기존에 Docker-compose환경으로 Nginx와 Tomcat만 서로 연동 했었다.디렉토리 구조를 위와 같이 만들고 기존의 tomcat폴더를 tomcat1로 그리고 tomcat2폴더를 추가했다.몇가지 설정만 변경해주면 된다... IT/DevOps 2025. 2. 15. [Docker] Docker Compose sample(feat. API Server) 배운 건 또 바로 써먹어야 체득이 되니 간단한 프로젝트로 Docker로 API Server를 구축해 봤음(Dockerfile을 이용해서 서버 설정 후 Docker Compose로 묶음) springBoot로 간단한 CRD API를 만들고 mysql과 동일 네트워크로 구성해서 Docker로 띄움 insert 기능 작성 부분은 동영상 촬영을 일시정지 하면서 진행해서 짤림 😥 개인 스터디 기록을 메모하는 공간이라 틀린점이 있을 수 있습니다. 틀린 점 있을 경우 댓글 부탁드립니다. IT/DevOps 2023. 11. 7. [Docker] Docker Compose [2] (feat. network) 도커로 springBoot API 서버, mysql 서버를 같은 네트워크로 묶어서 띄운 후 호스트 PC에서 호출하는 예제 테스트 프로젝트 springBoot server Dockerfile 😄 FROM openjdk:11-jdk-slim WORKDIR /app #현재 경로의 모든 파일 복사 COPY . . # 개행문자 오류 해결 [unix와 window 시스템 차이], 이건 예제 소스 그대로 가져옴 RUN sed -i 's/\r$//' gradlew # gradlew파일 파일 실행 권한 부여 RUN chmod +x ./gradlew # gradlew 빌드 실행 RUN ./gradlew clean build #환경변수 세팅 ENV JAR_PATH=/app/build/libs #파일명 변경 RUN mv ${.. IT/DevOps 2023. 11. 5. [Docker] Docker Compose [1] (feat. volumes) 목차 Docker Compose 이용해서 mysql 컨테이너 실행 후 볼륨 관련 테스트 하는 간단한 예제 docker-compose.yml 😃 yml 형식이라 들여쓰기 주의 services: # db라는 이름은 내맘대로 그 안의 image, restart 등은 수정 불가 db: image: mysql restart: always volumes: # 호스트 볼륨 연결 - ./mysql-data:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=1234 - MYSQL_DATABASE=rootdb ports: - "3309:3306" # 위에서 설정한 볼륨 연결 volumes: mysql-compose-volume: Docker Command 🤗 #도커 컴포즈 이용해서 .. IT/DevOps 2023. 11. 5. [Docker] Docker File [6] (feat. ENV, VOLUME) 목차 Dockerfile 🙂 FROM mariadb #환경변수 세팅 ENV MYSQL_USER=son ENV MYSQL_PASSWORD=1234 ENV MYSQL_ROOT_PASSWORD=1234 ENV MYSQL_DATABASE=sondb #캐릭터셋 세팅 CMD [ "--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci" ] Docker Command 😎 #빌드 docker build -t mysql-image . #그냥 볼륨 이용해서 컨테이너 실행(mysql에서 자동으로 볼륨 생성) #3306 ~ 3308까지 포트 사용중이라 3309로 포트포워딩 함 docker run -d -p 3309:3306 --name mysql-con.. IT/DevOps 2023. 11. 5. [Docker] Docker File [5] (feat. nginx proxy) 목차 nginx의 프록시를 이용해 요청에 따라 서버 2개로 분배하는 예제 lb Dockerfile(메인서버) 🤗 예제에서는 lb가 메인서버를 뜻함 클라이언트 요청을 제일 먼저 받는 서버 FROM nginx #vim은 편의상 설치했음, 선택사항임 RUN apt-get update RUN apt install -y vim # COPY index.html /usr/share/nginx/html #(메인서버 호출 시 index.html 없어서 404 페이지 보여서 만들었음) COPY index.html /etc/nginx/html/index.html COPY conf/nginx.conf /etc/nginx/conf.d/default.conf ENTRYPOINT [ "nginx", "-g", "daemon off.. IT/DevOps 2023. 11. 4. [Docker] Docker File [4] (feat. nginx 설정 복사) Dockerfile로 nginx 설정파일 복사 후 기동 Dockerfile을 이용해서 nginx 이미지를 만들되 내가 만든 설정파일을 복사해서 실행하는 예제 Dockerfile 😄 #Dockerfile FROM nginx #docker build 실행 경로: C:\Users\사용자명\DOCKER_LAB\ex03 #이 경로 하단에 webapp폴더, conf폴더 COPY webapp /usr/share/nginx/html COPY conf/nginx.conf /etc/nginx/conf.d/default.conf ENTRYPOINT [ "nginx", "-g", "daemon off;"] #Dockerfile로 이미지 만들 때 nginx index html파일과 .conf 설정 파일 복사 해서 #내가 설정한.. IT/DevOps 2023. 11. 4. [Docker] Docker File [3] (feat. Run) Dockerfile의 RUN을 이용해서 이미지를 만들 때 nginx를 설치해서 만들되 COPY를 이용해서 index.html을 내가 만든 html로 적용해보는 예제 Dockerfile 😄 FROM ubuntu #RUN을 이용해서 기존의 우분투에 apt update 후 nginx 설치 RUN apt-get update # -y 옵션 안 붙이면 빌드 시 에러 발생함 RUN apt-get install -y nginx WORKDIR /var/www/html COPY ./webapp ./ ENTRYPOINT [ "nginx", "-g", "daemon off;"] 개인 스터디 기록을 메모하는 공간이라 틀린점이 있을 수 있습니다. 틀린 점 있을 경우 댓글 부탁드립니다. reference: https://www.y.. IT/DevOps 2023. 11. 4. [Docker] Docker File [2] (feat. Entrypoint, WorkDir) 목차 Docker Entrypoint & Workdir 😄 Entrypoint: Dockerfile로 만든 이미지를 컨테이너화 할 때 기본 명령어 Workdir: Dockerfile로 만든 이미지를 컨테이너화 할 때 기본 디렉토리 Dockerfile로 jar 실행 😎 jdk 11버전으로 만든 springBoot 애플리케이션을 실행하기 위해 Dockerfile로 openjdk 11버전 이미지를 다운받아서 Entrypoint, WORKDIR, COPY 등을 이용해서 실행하는 예제 Dockerfile 🙄 #가져올 이미지 FROM openjdk:11-jdk-slim #컨테이너화 될 때 명령이 실행되는 디렉토리 WORKDIR /app #좌측 경로의 jar파일을 WORKDIR의 application.jar이라는 파.. IT/DevOps 2023. 11. 2. 이전 1 2 다음