본문으로 이동
수천 개의 API/BATCH 서버를 하나의 설정 체계로 관리하기
문서

수천 개의 API/BATCH 서버를 하나의 설정 체계로 관리하기

나재은 토스 · 토스 기술 블로그

원문 보기

AI 핵심 요약

수천 개의 API·배치 서버 설정을 복사해 관리하면서 생기는 중복과 오타는 인프라 장애, 특히 정산 오류로 이어질 수 있었습니다. API 설정에는 global·cluster·phase·app 등의 계층을 겹치는 오버레이 구조와 템플릿을 도입하고, Python 코드와 조건부 규칙으로 동적 요구사항에도 대응했습니다. 배치에는 Jenkins Job-DSL을 감싼 Groovy 빌더와 업무 규칙 테스트를 마련해 개발자가 선언만으로 Job을 구성하게 했으며, 메모리 부족은 전용 노드를 필요할 때 생성하고 유휴 시 종료하는 Dynamic Provisioning으로 해결했습니다. 설정을 소프트웨어처럼 테스트하고 요구사항에 맞춰 진화시키는 구조가 개발자와 DevOps의 협업을 단순하게 하고 대규모 변경을 쉽게 만든다는 것이 핵심입니다.

  • 공통값과 환경별 차이를 계층으로 나누고, 우선순위 규칙을 명확히 하면 설정 중복을 줄일 수 있습니다.
  • 긴 문자열 설정은 템플릿 변수로 분해해 필요한 값만 바꾸고, 배열처럼 단순 오버레이가 어려운 구조에는 조건부 적용 규칙을 둘 수 있습니다.
  • Jenkins Job-DSL을 빌더 형태로 감싸면 복잡한 Jenkins 설정을 숨기고 자동완성·테스트가 가능한 선언형 인터페이스를 제공할 수 있습니다.
  • 배치 워커를 동적으로 프로비저닝하고 유휴 노드를 종료하면 프로세스 간 자원 경쟁과 상시 노드 운영 비용을 함께 줄일 수 있습니다.

소개

토스페이먼츠 서버플랫폼 팀이 '설정' 하나로 얼마나 깊이 고민하고 문제를 해결해왔는지 공유해 드려요.

비슷한 학습 자료

컨퍼런스 SLASH

서버 인프라를 효과적으로 트러블 슈팅할 수 있도록 노력한 경험과 모니터링 인프라를 운영한 경험을 공유합니다. 이재성 / 토스 DevOps Engineer 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://toss.im/slash-21​ 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im #토스​ #개발자컨퍼런스​ #SLASH

데브옵스 · 인프라

문서 차영훈

팀마다 맥북에 폰을 꽂던 시절을 끝내고, 실기기를 API 호출 한 번으로 여는 플랫폼을 만들며

모바일 앱 개발 개발 도구

문서 허지훈

20만 개 가맹점이 사용하는 API, 수십 년간 안정적으로 운영하기 위한 토스페이먼츠의 방식

웹 개발 백엔드

문서 조민규

개발자들에게 익숙해진 불편함을 해결하기 위한 사내의 Swagger MCP 서버를 구축한 이야기를 들려드립니다.

백엔드 AI에이전트 개발

문서 정석호

토스 프론트엔드 챕터에서는 하나의 모노레포에서 200여개가 넘는 서비스를 관리하고 있어요. 이렇게 커진 모노레포에서도 git push 부터 배포까지 5분을 유지할 수 있는 비결을 소개합니다!

프론트엔드 데브옵스 · 인프라

문서 김동석

생산성, 안정성, 보안성을 모두 달성하기 위해선 ‘Pipeline’을 어떻게 설정해야 할까요? 다양하고 복잡한 토스뱅크의 배포 ‘Pipeline’를 안전하게 운영하기 위한 노력을 소개합니다.

데브옵스 · 인프라