이제 온프레미스 학습이 끝나고 
온프레미스 환경에서 인프라 구축 프로젝트가 진행된다.

기간이 주말포함 6일 정도의 아주 짧은 프로젝트이기에

프로젝트를 잘 정해야 했다.

 

이날 오후부터 프로젝트 주제에 대해 이야기 했고,

넷플릭스를 온프레미스에서 서비스한다면 어떤 인프라로 운영될지 예상하고,

한 번 "작은 규모의 스트리밍 사이트를 운영하기" 로 정했다.

Miniflix : 온프레미스로 운영되는 소규모 스트리밍 서비스 구축

팀원: 5인

DMZ존으로 외부에게 열려있는 곳과 

DMZ존에 서버로 부터 접근할 수 있는 내부망 영역으로 구성했다.

 

운영 PC는 2개 정하고
하나는 DMZ 하나는 내부망으로 나눠서 운영하기로 했다.

A. DMZ Zone (공개망)

구성요소 서버 역할

로드밸런서 HAProxy 외부 요청 분산 처리 (/api, /stream 요청 등)
웹서버 NGINX 정적 웹페이지(Vue) 제공, /api 프록시
스트리밍 서버 NGINX RTMP 영상 스트리밍 전송 (RTMP/HLS 등)
CDN 캐시 Varnish 콘텐츠 캐싱으로 응답속도 향상 및 서버 부하 분산
  • 외부에서 접근할 수 있는 구간
  • HAProxy가 포함된 라우터 서버만 외부에서 접근가능하고 포트포워딩으로 서버에 분배
  • 보안형 DMZ 아키텍쳐

B. Internal Zone (내부망)

스토리지 서버 NFS 영상 파일 저장, 공유 볼륨
데이터베이스 MariaDB 사용자, 콘텐츠, 조회 기록 등 저장
트랜스코딩 서버 FFmpeg 원본 영상 → 다양한 해상도로 변환
백업 서버 rsync or cron 기반 영상 및 DB 주기적 백업
DNS 서버 BIND 내부 도메인 네임 관리 (api.netflix.local 등)
모니터링 Zabbix/ELK 서버/서비스 상태 시각화 및 이상 감지
분석 서버 ELK + Neo4j 시청 로그 수집 및 추천 기반 분석
메시지 브로커 Kafka 비동기 로그 전송, 분석 큐
  • 내부망 서버들은 외부에서 직접 접근 불가
  • 단, DMZ에서 API 호출 등 특정 요청만으로 제어된 형태로 통과

이렇게 구성할 서버들과 구조를 구상했다.

그리고 각자 구축할 서버들을 정했다.

나(DMZ, 운영PC2)

  • DMZ쪽 전반을 맡았다.
  • 라우터 서버, 프론트 넣을 NGINX 서버, 백엔드 넣을 APACHE 서버, CDN서버, 스트리밍 서버다.
  • 프론트, 백엔드 간략한 수준으로 만들고 빌드 후 각 서버에 올리고, 간단하게 영상 하나 정도 브라우저에서 볼 수 있게 하는게 목표
  • 그 과정에서 내부망에 DB와 스토리지서버에서 데이터를 받아오고, 트랜스코딩 서버에서 적절하게 포맷을 변경 시키는 등의 작업이 필요할 것 같다.

팀원1 (내부망, 운영 PC1)

  • 내부망 라우터구축
  • DNS 서버 구축 
  • 내부망 전반 관리

 

팀원2:

  • DB 서버 구축
  • 스토리지 서버 구축
  • 백업 서버 구축

 

팀원3:

  • 모니터링 서버 구축
  • 분석  서버  구축
  • 메시지 브로커 서버 구축

 

팀원 4:

  • 트랜스코딩 서버 구축
  • 스토리지 서버 구축
  • 스트리밍 서버 구축

이 정도로만 정하고 프로젝트 0일차가 끝났다.

 

짧은 기간이지만 욕심 때문인지 좀 규모가 큰 거 같아 열심히 한 번 해봐야겠다.

특히 우선순위 정하는게 제일 중요할 거 같다.

+ Recent posts