하이브리드 인프라 배포

Docker, MySQL, Nginx, Apache 를 사용하여 최신 하이브리드 스택을 배포합니다. 레거시 서비스를 유지하면서 애플리케이션을 컨테이너화하고, 데이터베이스를 관리하며, 리버스 프록시를 구성합니다.

DevOps EngineerDockerMySQLDevOps

💡 이 튜토리얼은 영어로 번역되었습니다. 원본을 보려면 영어로 전환

소개

현대화가 모든 서비스를 한 번에 교체하는 경우는 드뭅니다. 이 챌린지형 프로젝트에서는 컨테이너 웹 파일럿, 호스트 데이터베이스, Nginx 게이트웨이, Apache 레거시 엔드포인트로 구성된 로컬 혼합 스택을 각기 다른 포트와 방식으로 운영합니다.

Docker에 콘텐츠를 bind mount하고, MariaDB 계정을 한 DB로 제한하고, 준비된 내부 앱으로 프록시하고, Apache .htaccess 리디렉션으로 기존 URL을 보존합니다. 포트 충돌 없이 컨테이너와 호스트 서비스를 조정하는 실습입니다.

학습 내용

  • web-pilot이라는 nginx:alpine 컨테이너를 bind mount와 8080:80 포트 매핑으로 실행하기
  • MariaDB를 설치·시작하고 globaltech_data를 만들어 app_user@localhost에 해당 DB 권한 부여하기
  • 호스트 Nginx 포트 80의 /를 준비된 127.0.0.1:5000 서비스로 프록시하기
  • Nginx 구성을 검증하고 다시 로드한 뒤 공개 엔드포인트에서 backend 콘텐츠 확인하기
  • Apache를 포트 8081로 옮기고 /legacy를 제공하며 .htaccess override 허용하기
  • Apache 규칙으로 /old에서 /legacy로의 301 또는 302 리디렉션 구현·검증하기

추천 대상

결과 중심 챌린지에서 Docker, MariaDB, Nginx, Apache를 통합할 준비가 된 Linux 및 DevOps 학습자에게 적합합니다.

선수 지식: Docker 실행 옵션과 bind mount, Linux 패키지·서비스, 기본 SQL 권한, 웹 서버 구성, 포트, curl에 익숙해야 하는 평가형 프로젝트입니다.

학습 환경: sudo, Docker, APT, MariaDB, Nginx, Apache, 포트 5000의 준비된 backend와 로컬 네트워크가 있는 브라우저 기반 Linux 호스트이며 클라우드는 필요하지 않습니다.

자주 묻는 질문

여기서 하이브리드는 하이브리드 클라우드나 다중 노드를 뜻하나요?

아니요. 단일 랩 머신에서 Docker 워크로드와 호스트 서비스를 결합합니다. 클라우드나 여러 서버를 프로비저닝하지 않습니다.

MariaDB가 웹 애플리케이션에 연결되나요?

아니요. DB, 로컬 사용자, 비밀번호, DB 범위 권한을 독립적으로 검증합니다. Schema, 테이블, Migration, 앱 연동은 범위 밖입니다.

Nginx 뒤의 backend를 만들어야 하나요?

아니요. 127.0.0.1:5000에 모의 앱이 이미 준비되어 있으며 포트 80의 Nginx로 접근하도록 구성합니다.

Nginx와 Apache가 함께 실행되는 이유는 무엇인가요?

Nginx는 80, Apache는 8081, Docker 파일럿은 8080으로 포트가 다릅니다. /old 리디렉션도 .htaccess에 정의해야 합니다.

강사

labby
Labby
Labby is the LabEx teacher.