nginx 사이트 자동 발견·등록으로 운영 수동 작업 제거
목차
새로운 nginx 사이트를 수동으로 등록하는 번거로움을 줄이기 위해 자동 발견·등록 로직을 _lib에 추가했다.
수동 등록의 한계와 자동화 필요성
사이트 기반 서비스를 운영하다 보면 신규 도메인 추가 요청이 자주 들어온다. 그때마다 운영팀이 직접 nginx 설정 파일을 건드리고, 시스템에 명시적으로 사이트 정보를 등록해야 했다. 작은 실수가 서비스 단절로 이어질 수 있었고, 무엇보다 운영팀의 수동 작업 부담이 컸다.
특히 팀이 성장하면서 요청이 늘어날수록 이런 반복 작업은 점점 더 큰 비용이 된다. "도메인 추가하려는데 언제 반영되나요?"라는 문의에 일일이 대응하는 것도, 작업 순서를 관리하는 것도 비효율적이었다. 자동화할 수 있는 부분을 사람이 하고 있다는 건 팀의 집중력을 분산시킨다는 뜻이다.
자동 발견·등록의 구조
site_onboard.py는 다음과 같은 흐름을 자동화한다:
| 단계 | 기존 방식 | 자동화 후 |
|---|---|---|
| 사이트 감지 | 운영팀이 요청서 검수 | 시스템이 nginx 설정 자동 스캔 |
| 데이터 추출 | 수동으로 설정 파일 해석 | 파서가 서버명/도메인/경로 자동 추출 |
| DB 등록 | 관리자가 직접 INSERT | 온보딩 로직이 유효성 검증 후 자동 등록 |
| 검증 | 실제 돌려보며 확인 | 사전 체크: 도메인 중복, 경로 충돌 감지 |
자동 발견이라는 건 대부분 두 가지 방식 중 하나다:
- 파일시스템 기반: nginx conf 디렉터리를 정기적으로 스캔해서 신규 설정을 감지
- API/이벤트 기반: 도메인 관리 시스템에서 변경 이벤트를 받아서 반응
어느 방식이든 핵심은 "사람의 개입 없이 신규 사이트를 발견하고, 자동으로 온보딩 프로세스를 시작할 수 있어야 한다"는 것이다.
팀에 미치는 실질적 영향
이 기능을 추가했을 때 팀의 일상이 어떻게 바뀌는지 생각해봤다:
- 운영팀: 새 도메인 추가 후 시스템 등록을 신경 쓸 필요 없음. "추가됐습니다"라고 바로 알릴 수 있음
- 개발팀: 비즈니스 로직에 집중하면서도, 기반 인프라는 안정적으로 유지
- 헬스 체크: 자동 등록된 사이트들도 통일된 방식으로 모니터링 가능
- 휴먼 에러 감소: 수동으로 등록할 때 빠뜨린 설정(예: SSL 인증서, 로그 경로)도 온보딩 로직에서 표준화 가능
다만 이런 자동화에는 초기 설정 비용이 든다. 자동 발견 범위를 정확히 정의하고, 온보딩 과정에서 예외 상황(중복 도메인, 특수 설정)을 어떻게 처리할지 결정해야 한다.
비슷한 자동화 패턴들
개발 중에 느낀 건데, 이런 류의 자동 발견·등록은 여러 도메인에서 반복된다:
- 신규 데이터베이스 추가 시 마이그레이션 자동 등록
- 새로운 큐 토픽이 생성되면 컨슈머 자동 배포
- 신규 API 엔드포인트 발견 후 문서화 자동 갱신
이런 것들을 설계할 때 항상 고민하는 게:
1. 발견 전략: 스캔 주기? 이벤트 기반? 온디맨드?
2. 검증 레벨: 자동 등록 전에 몇 단계 체크?
3. 롤백 정책: 문제 있으면 어떻게 되돌릴 건가?
4. 알림: 팀에 어떻게 보고할 건가?
site_onboard.py를 구현하면서 이런 것들을 체계적으로 정의했고, 나중에 다른 자동화 작업들도 비슷한 구조로 만들 수 있게 됐다.
회고
이 작업의 가치는 단순히 "nginx 사이트 등록을 자동화했다"가 아니라, "운영의 부담을 코드로 옮겼다"는 데 있다. 코드는 24시간 쉬지 않고 실수하지 않는다. 대신 초기 설계와 지속적인 유지보수가 필요하다.
팀 리딩 관점에서는, 이런 자동화를 추진할 때 "이게 팀 전체에 얼마나 도움이 되는가"를 명확히 해야 한다는 걸 배웠다. 한두 명의 수동 작업을 줄이는 것도 좋지만, 점점 더 많은 사람들이 혜택을 받을 수 있으면 그 ROI는 훨씬 높다.
🛒 이 글과 어울리는 추천 상품
*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.
댓글 0
첫 댓글 달아줘.