피드로 돌아가기
Nginx 설정 통합과 Loki 연동으로 설계한 유연한 멀티사이트 아키텍처
LINE Engineering
DevOps

Nginx 설정 통합과 Loki 연동으로 설계한 유연한 멀티사이트 아키텍처

LINE NEXT DevOps 팀이 Nginx 설정을 3단계 아키텍처(PMC 기반 → Ingress Nginx → 네이티브 Nginx)로 통합하고 Ansible 자동화로 배포 시간을 주간 단위에서 시간 단위로 단축

2025년 8월 7일12intermediate

Context

LINE NEXT는 2022년부터 2025년까지 DOSI, Dapp Portal, Molts, Next Market 등 다수 서비스를 론칭하면서 약 100개 도메인을 관리하게 되었다. 기존 PMC 기반 인프라에서는 새 서버 발급에 1주, Nginx 설치·배포·로드밸런서 설정까지 최소 2주의 리드 타임이 필요했고, 서비스별 독립적인 Nginx 설정으로 인해 중복과 유지 보수 어려움이 발생했다. Ingress Nginx 도입으로 빠른 배포는 가능했으나 클라이언트의 실제 IP 확인 불가와 GeoIP 모듈 같은 고급 기능 활용 제약이 있었다.

Technical Solution

  • Nginx 설정 구조화: events/http 블록의 공통 설정(timeout, keep-alive, log format)을 마스터 설정 파일로 추출하고 server 블록은 /etc/nginx/config/sites-available 디렉터리 구조로 서비스별로 분리 관리
  • 네이티브 Nginx 기반 멀티사이트 아키텍처 도입: 설정 중심의 추상화는 유지하면서 GeoIP2 모듈, Loki 기반 로그 수집, SSL 인증서 공통 관리, 점검(maintenance) 모드 설정을 공통으로 탑재
  • Ansible 배포 자동화: 기존 rsync 기반 수작업 배포를 Ansible로 대체하여 구조화된 설정 파일을 타깃 서버에 자동 배포하고 Jenkins와 연계한 완전 자동화 흐름 구축
  • GeoIP2 기반 국가별 접근 제어 공통화: 상위 Nginx 설정의 map 디렉티브에서 클라이언트 IP의 국가 코드를 파악하고 blocked_country 변수로 관리하여 하위 서비스 설정에서 조건문으로 사용
  • 다환경 배포 구조 설계: 각 서비스별로 alpha, beta, RC, 프로덕션 환경에 따라 독립적인 설정 파일(예: server-alpha.conf, server-prod.conf)을 관리

Impact

아티클에 정량적 수치가 명시되지 않아 Impact 섹션 생략.

Key Takeaway

멀티테넌트 환경에서 공통 설정과 개별 설정을 명확히 분리하고 인프라 레이어에서 정책을 중앙 집중식으로 관리하면, 애플리케이션 코드의 중복을 제거하고 DevOps 팀의 운영 자동화 수준을 높일 수 있다.


다수의 도메인과 서비스를 운영하는 조직에서는 Nginx 마스터 설정과 서비스별 설정을 파일 수준으로 분리하고 Ansible 같은 IaC 도구로 배포를 자동화하면, 정책 변경 시 전체 서비스에 일관되게 반영할 수 있으며 신규 서비스 온보딩 시간을 대폭 단축할 수 있다.

원문 읽기