본문 바로가기
AI2026년 5월 18일4분 읽기

Claude Sonnet 4.6 Bash Tool — 서버 운영 에이전트 프로덕션 패턴 7가지

YS
김영삼
조회 1383
Claude Sonnet 4.6 Bash Tool — 서버 운영 에이전트 프로덕션 패턴 7가지

핵심 요약

Claude Sonnet 4.6의 Bash 도구는 진단·로그 수집·롤백 같은 운영 작업을 자연어로 위임할 수 있게 만든다. 다만 sudo 권한과 파이프 한 줄이 곧 장애로 이어진다. 6개월간 사내 5개 서버에 적용하면서 정착시킨 7가지 패턴을 정리한다. 비파괴 명령만 자동 허용, 위험 명령은 사전 검토 큐로 보내는 분리가 가장 큰 효용을 냈다.

1. 권한 격리 — agent 전용 user

에이전트는 절대 root로 돌리지 않는다. useradd -r -s /bin/bash agent로 만들고 /etc/sudoers.d/agent읽기 전용 명령만 NOPASSWD로 명시. journalctl, systemctl status, ss, ps, df, du, cat /var/log/* 정도가 안전 화이트리스트의 시작점이다.

2. 출력 후처리로 컨텍스트 보호

journalctl -n 1000은 토큰을 7만 개 잡아먹는다. 도구 래퍼에서 tail -200 | grep -vE '(?:DEBUG|TRACE)' 같은 필터를 강제. 캐시 친화적이지 않은 시간 stamp는 정규식으로 normalize. 입력 토큰을 35~50% 줄였다.

3. 위험 명령 가드 — 정규식 deny-list

DENY = r'\b(rm\s+-rf|dd\s+if=|mkfs|:\(\)\{|shutdown|reboot|chmod\s+777|chown\s+-R\s+/|truncate)'
if re.search(DENY, cmd):
    return ask_human_approval(cmd)

발견 시 자동 실행을 막고 사용자 승인 대기 큐로 보낸다. false positive는 감수.

4. dry-run 우선 원칙

에이전트 시스템 프롬프트에 "파괴적 동작 전 반드시 dry-run 옵션을 먼저 시도"를 박는다. rsync--dry-run, terraformplan, DB 쿼리는 EXPLAIN. 작은 강제만으로 사고가 절반 이하로 줄었다.

5. 작업 디렉터리 chroot

FS 접근은 /srv/agent-workspace로 강제. 코드 수정이 필요하면 git clone → 작업 → PR. 직접 /etc, /var/lib을 만질 권한을 주지 않는다.

6. 감사 로그 — 모든 명령 영속화

def run(cmd):
    log_db.insert(ts=now(), session=sid, cmd=cmd, by="claude-sonnet-4-6")
    return subprocess.run(cmd, ...)

SQLite 한 줄이면 충분. 사고 분석 때 무엇이 언제 실행되었는지 답이 나온다.

7. 비용 — 캐시 브레이크포인트 배치

구성일간 비용p50 응답
시스템 프롬프트만 캐시$18.43.2s
+ 명령 도구 정의 캐시$11.22.7s
+ 최근 5턴 누적 캐시$6.11.9s

도구 정의가 길수록 캐시 효과가 크다. 1h TTL을 쓰면 야간 모니터링 같은 저빈도 워크로드도 절반 가격.

자주 묻는 질문

Q. ssh 비밀번호 입력은 어떻게 하나? 절대 stdin 자동 입력하지 말고 키 기반 인증으로 전환. ssh-agent 소켓을 에이전트 사용자에 전달.

Q. systemctl restart는 자동화해도 되나? 단일 서비스 한정으로 허용 가능. 단, restart 전후 health check를 도구 함수 자체에 박아 실패 시 자동 롤백.

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록