글 목록으로 돌아가기
최오키 개발블로그 2분 읽기

데몬(daemon) vs Agentless: 왜 Ansible 은 서버에 데몬이 필요 없을까?

서버 운영자나 DevOps 입문자라면 한 번쯤 궁금해질 수 있는 질문입니다.


서버 운영자나 DevOps 입문자라면 한 번쯤 궁금해질 수 있는 질문입니다.

“대부분 자동화 도구는 서버에 데몬(Agent)을 띄우고 관리하는데… 왜 Ansible은 그렇지 않은 걸까?”

이번 글에서는 그 이유를 실제 예시와 함께 쉽게 정리해봅니다.


🔹 왜 일반 자동화 도구는 데몬(Agent)을 사용하는가?

많은 자동화 도구들(예: Puppet, Chef, SaltStack 등)은 다음과 같은 구조를 씁니다:

  • 각 관리 대상 서버에 Agent(데몬) 를 설치
  • Agent가 항상 실행 중 , 주기적으로 중앙 서버(Master)와 통신
  • 요청이 있을 때만이 아니라, 주기적으로 설정을 점검하거나 명령을 Pull

이 구조의 장점은 “서버 스스로 주기 점검 + 자동 동기화”가 가능하다는 것이지만, 단점도 명확합니다.

Agent를 설치·유지해야 하고, Agent의 장애가 곧 관리 실패로 이어질 수 있다는 점입니다.

[Master] ← (주기적으로 요청) ← [Web01(Agent)]
← (Pull 방식)     ← [Web02(Agent)]
← (Pull 방식)     ← [DB01(Agent)]

✅ 하지만 Ansible은 달랐다 — Agentless, “데몬 불필요” 구조

Ansible은 아래와 같은 방식을 사용합니다:

  • 복잡한 에이전트 설치 없이, 서버에 기본적으로 있는 SSH (리눅스) / WinRM (윈도우) 만 사용
  • Master(제어 서버) → 각 서버로 직접 접속 (Push 방식)
  • 작업이 끝나면 접속 종료 , 별도의 데몬은 서버에 남지 않음

예를 들어, Master 서버가 있고 Web01, Web02, DB01 이렇게 3대의 서버가 있다고 가정해보면:

[Master(Ansible)] → Apache 설치 → [Web01]
                   → Apache 설치 → [Web02]
                   → Apache 설치 → [DB01]

[Master (Ansible)] → SSH 접속 → Web01: Apache 설치 → SSH 접속 → Web02: Apache 설치 → SSH 접속 → DB01: Apache 설치

✔️ 서버에 Agent/데몬 설치 불필요

✔️ 필요한 순간에만 접속 → 설치 부담, 장애 위험 모두 적음

✔️ 서버 추가 시 설정 간단 → IP + SSH 키만 등록하면 끝


📊 Agent 기반 vs Ansible 방식 — 비교 요약

항목Agent 기반 (Puppet/Chef 등)Ansible (Agentless)
서버 준비각 서버에 Agent 설치 필요설치 불필요
실행 방식서버가 주기적으로 Master에 접속 (Pull)Master가 서버에 접속해 작업 후 종료 (Push)
유지·운영 비용Agent 설치·업데이트, 장애 대응 필요SSH/WinRM만으로 간편 운영
서버 추가/제거Agent 설치/제거 필요IP + 인증 정보만으로 간편
장애 위험Agent 데몬 문제 발생 가능SSH 연결만 되면 안정적

🧑‍💻 실제 운영 예시 (Master 1대 + Agent 서버 3대)

목표: Web01, Web02, DB01 서버 모두에 Apache 설치

  • Agent 기반 도구 사용 시
  1. 각 서버에 Agent 설치
  2. Agent가 주기적으로 Master에 접속 → “Apache 설치/동기화 명령 다운로드 및 실행”
  3. Agent 데몬이 항상 실행 중 → 부하, 보안, 업데이트 관리 부담
  • Ansible 사용 시
  1. Master에서 Web01, Web02, DB01 서버에 SSH 접속
  2. Apache 설치 명령을 직접 Push하고 실행
  3. 작업 완료 후 SSH 연결 종료 → 서버에 남는 것은 없음

결과는 같지만, 준비 · 운영 · 유지 의 복잡도와 부담은 Ansible 쪽이 훨씬 낮습니다.


📌 정리: 왜 Ansible은 데몬이 필요 없는가?

  • Ansible은 서버에 항상 떠 있는 Agent 대신, 필요할 때만 접속하는 방식(Push 전략) 을 사용
  • 때문에 서버에 Agent 설치/운영 부담이 전혀 없다
  • 서버가 많아질수록 이 “Agentless + SSH 기반”의 구조가 돋보이며,
  • “설치 부담 낮고, 장애위험 적고, 확장성 좋은 자동화” 가 가능

즉, Ansible은 “설치도, 띄워두는 것(데몬)도 없는, 필요한 순간에만 동작하는 간단한 자동화 도구” 라는 것이 핵심입니다.

원문 보기

Related posts

Other Git push 시 발생하는 non-fast-forward 오류 해결 방법 Other HTTP 504 Gateway Timeout 오류의 원인과 해결 방법 ElasticSearch Elasticsearch Unassigned Shards 문제 해결 가이드