인프런 커뮤니티 질문&답변
강의 완강 후 다시 듣는 중, 배포 도전...?
해결된 질문
작성
·
159
0
만들어진 게시판을 간단하게 배포를 하려면 어떤 순서로 하는 것이 좋을까요? 직접 배포를 해보고 데이터의 이동 흐름을 보고 싶어서요.
GPT 선생님은 아래와 같이 하라고 하는데, 선생님께서 생각하는 간단한 방법이 있는지 궁금합니더...
🚀 간단한 배포 방법
- Docker Compose 파일 작성 ( - docker-compose.yml)
- 애플리케이션 컨테이너화 (Dockerfile) 
- 서버(배포 환경)에서 실행 
1⃣ docker-compose.yml을 작성해서 모든 서비스(MySQL, Redis, Kafka, App)를 한 번에 실행
2⃣ Dockerfile을 작성해서 애플리케이션을 컨테이너화
3⃣ 서버에서 docker-compose up -d --build 실행으로 배포 완료
답변 1
1

재근님, 안녕하세요!
강의 완강하시고 배포까지 연습해보고 계시군요! 대단하십니다! 👍
일단 배포 전략은 너무 다양할 수 있어서, 너무 강의에 국한해서 진행할 필요는 없을 것 같습니다!
개인적으로는 단일 애플리케이션 배포 전략에 대해 따로 경험해보고 진행해보는걸 추천드립니다.
본 강의는 MSA 방향성 때문에 애플리케이션도 많아서, 아마 제대로 띄우려면 복잡성도 크고 서버 비용이 들어갈 수도 있을 것 같네요.
정말 단순하게 서버 1대에 모든걸 배포하는 상황에서는 다음과 같이 할 수 있을 것 같습니다.(사용하시는 서버 스펙에서 다 실행이 될진 모르겠지만)
MySQL/Redis/Kafka를 서버 로컬에 띄워주고, 각 애플리케이션도 포트를 모두 달리 해서 띄워줍니다.
Nginx 서버를 설치하고, api path에 따라서 특정 포트로 실행되고 있는 애플리케이션으로 라우팅해주도록 합니다.
예를 들어, 서버에 80포트(http)로 /article url path로 접근하면,
nginx가 그 요청을 받아서 9000포트에 실행된 게시글 서비스로 라우팅해주는 구성입니다.
위 과정에서는 Docker는 쓰셔도 좋고, 안 쓰시고 직접 설치해보셔도 좋습니다.
Docker가 분명 편리함은 있지만, 직접 설치하면서 이슈 해결해 나가는 것도 좋은 경험이 됩니다.
https로 통신해보셔도 좋고요!
무중단 배포 또는 배포 자동화를 추가로 고민해보셔도 좋습니다.
조금 더 심화한다면,
각 마이크로서비스별로 개별 서버 군에 배포한 뒤,
각 서버 군 간에는 로드밸런서를 이용하여 통신을 해볼 수도 있습니다. (개별 서비스별로 scale-out 가능하도록)
MySQL, Redis, Kafka도 독립된 서버에 설치할 수 있고요.
일단 간단한 방법으로 해보시는걸 추천드리네요.
배포는 간단해보여도 인프라 개념이 잡혀있지 않으면 구성이 어떻게 되어있는건지 이해가 어려울 수 있습니다.
잘 해내시길 바랍니다!







사랑합니다