Enterprise Infrastructure Intelligence ● Certified engineers online · Fast response guaranteed
클라우드/DevOps

Jenkins Controller-Agent 분산 빌드 아키텍처: 실무 기본 원리

Jenkins Controller-Agent 아키텍처는 빌드 작업을 여러 머신에 분산하여 스케일링과 안정성을 달성하는 구조입니다. Controller는 작업 스케줄링과 조율에 전념하고 Agent는 실제 빌드 실행을 담당하며, Remoting 라이브러리가 양자 간 TCP 기반 통신을 관리합니다.

2026.09.09  ·  34회  · 

Controller와 Agent의 역할 분리

Jenkins Controller(구칭 Master)는 빌드 파이프라인을 스케줄링하고, 플러그인을 관리하며, 웹 UI를 제공하는 중앙 조율 노드입니다. Agent는 Controller의 지시에 따라 실제 빌드, 테스트, 배포 작업을 실행하는 워커 노드입니다. 실무에서는 Controller의 Executor 수를 0으로 설정하여 자체 작업을 실행하지 않게 하고, 모든 빌드 작업을 Agent에 위임합니다. 이렇게 하면 Controller의 파일 시스템에 대한 무분별한 접근을 제한하여 보안을 강화하고 안정성을 보장합니다.

Agent 레이블 기반 작업 라우팅

각 Agent는 고유 레이블(예: linux, windows, docker, high-memory)로 표시되어 작업 할당 시 조건 매칭이 가능합니다. Pipeline 정의 시 agent { label 'staging' } 같은 표현식으로 특정 Agent 그룹에만 작업을 제한할 수 있습니다. 이를 통해 OS 종속성, 특수 도구, 하드웨어 사양이 다른 다양한 환경을 효율적으로 관리합니다.

Remoting 통신 프로토콜

Controller와 Agent는 Jenkins Remoting 라이브러리를 통해 TCP 기반 양방향 통신을 합니다. SSH 커넥터(Unix/Linux)는 Controller가 능동적으로 연결을 개시하는 방식이고, Inbound Agent(주로 Windows)는 Agent가 먼저 Controller에 접속하는 방식입니다. 현재 권장 프로토콜은 JNLP4-connect로, TLS 암호화와 비동기 I/O를 지원합니다.

WIKIDATA WORKSTATION
AI·렌더링에 최적화된
전문가용 워크스테이션
NVIDIA RTX GPU · 최대 192GB 메모리 · ECC 지원