운영 안전 프레임워크

고객사 운영 사이트
안전 관리 체계 v1.6 변경 로그

n8n Orchestrator + Hermes Agent 기반 5단계 안전 게이트

백업 없이 시작하지 않는다. 검증 없이 끝내지 않는다. 롤백 계획 없이 변경하지 않는다.

변경 로그

v1.6 (04-30) 아키텍처·WP 모니터링·변경로그 · v1.5 (04-30) WP 보안·DO Spaces·7일 롤링 전체 보기

서버 구분
서버백업 규칙적용 프레임워크
우리 서버
현재 · 연습장
변경 전 백업 여부를 묻고 진행 강제 백업 불필요. 프로덕션 아님.
고객사 서버
운영 · 수술실
무조건 자동 백업 후 진행 아래 5단계 전체 적용
고객사 서버: 5단계 안전 파이프라인
백업
스테이징 검증
실행
검증
완료 or 롤백
n8n + Hermes 협업 아키텍처

n8n (오케스트레이터)

  • 워크플로우 트리거 (cron/webhook)
  • 단계별 진행 관리
  • 타임아웃 / 재시도
  • 상태 전파
  • Telegram 알림 발송

Hermes Agent (실행자)

  • 실제 명령 실행
  • 오류 감지
  • 로그 수집
  • 롤백 판단
  • 보고서 생성
테스트서버 사전 운영 아키텍처
5단계 안전 파이프라인 1. 백업 Pre-change Snapshot 2. 스테이징 Clone & Test 3. 실행 Hermes Agent 4. 검증 19항목 체크 5. 완료 / 롤백 자동 복구 3분 테스트 서버 (사전 운영) n8n Orchestrator cron · webhook · timer · workflow 단계 관리 · 상태전파 · 텔레그램 알림 Hermes Agent Executor 5 Safety Layers 명령실행 · 오류감지 · 롤백 · 보고서 webhook HestiaCP 도메인 · SSL · 파일 · DB · 백업 관리 API / CLI 자동화 REST API CLI MySQL MariaDB mysqldump · 복원 File System /home/kim/web/ tar · rsync · 복원 백업 흐름 DB dump · tar.gz → s3cmd/rclone → DO Spaces 작업완료 24시간 후 자동삭제 / 정기백업 7일 롤링 DigitalOcean Spaces Object Storage (S3 Compatible) 외부 독립 저장소 서버 장애 시에도 백업 보존 업로드 (s3cmd/rclone) 롤백 복원 Telegram Alert Channel 실시간 알림 · 리포트 · 승인요청 상태 알림 · 완료 보고 오류 · 롤백 알림 Cron Scheduler 매일 03:00 · 매주 월 04:00 n8n cron trigger Legend Orchestrator Executor Infra Storage External Alert Alert Flow Backup Flow Pipeline Boundary

이미지 클릭 시 전체 화면으로 확대됩니다

레이어 1: 백업
백업 저장소
대상저장소보관 정책
우리 서버 (작업 전) DigitalOcean Spaces
외부 오브젝트 스토리지 · 서버 장애와 무관
사이트별 업로드 → 작업 완료 24시간 후 자동 삭제
고객사 서버 (정기) DigitalOcean Spaces 사이트별 보관 · 7일 롤링 (매일 새벽 점검)
A. 사전 예약 백업 매일 새벽 3시 100% 자동
대상명령저장
DB 덤프mysqldump {db} | gzipSpaces: {bucket}/{site}/db/{date}.sql.gz
파일 전체tar -czf - public_html/Spaces: {bucket}/{site}/files/{date}.tar.gz

업로드 도구: s3cmd 또는 rclone → DigitalOcean Spaces.
무결성 검증: 업로드 후 파일 크기 비교. 실패 시 Telegram 알림.

B. 작업 직전 백업 (Pre-change Snapshot) 변경 전 필수

Hermes가 변경 실행 전 자동 수행:

  1. 사이트 상태 체크 (HTTP 200, 핵심 페이지 로딩 확인)
  2. DB + 파일 → DigitalOcean Spaces 업로드 ({bucket}/snapshots/{site}/{timestamp}/)
  3. 업로드 성공 → 실행 승인
  4. 업로드 실패 → 작업 중단 + Telegram 알림
  5. 작업 완료 확인 → 24시간 카운트다운 시작 (n8n 타이머)
  6. 24시간 후 → Spaces에서 해당 스냅샷 자동 삭제
레이어 2: 스테이징 미러
위험도절차예시
LOW 직접 적용. Pre-change 백업은 필수 WP 플러그인 업데이트
MEDIUM 스테이징에서 1차 검증 후 적용
subdomain: staging.{site} / DB 복제 → 변경 → 테스트 → 승인
테마 수정, 기능 변경
HIGH 스테이징 풀 테스트 + 김몽이 승인
유지보수 시간대 공지 + 롤백 계획 문서화
WP 코어 업데이트, DB 마이그레이션
레이어 3: 실행 워크플로우 (예시)
n8n 트리거 (매주 월요일 새벽 4시)
  │
  ├─[1] 전체 사이트 목록 조회 (HestiaCP)
  │
  ├─[2] 사이트별 처리
  │    ├─[2a] pre-change 체크      ← HTTP 200 확인, 실패=스킵
  │    ├─[2b] pre-change 백업      ← Hermes webhook, 실패=중단
  │    ├─[2c] 변경 실행            ← Hermes webhook
  │    ├─[2d] post-change 검증     ← 9항목 체크리스트
  │    ├─[2e] 결과 기록            ← 성공/실패 로그
  │    └─[롤백] 실패 시            ← DB+파일 복원, 재검증
  │
  └─[3] 전체 결과 Telegram 보고서
  
레이어 4: 검증 체크리스트

변경 후 자동 검증. 하나라도 실패 = 자동 롤백. 수동 판단 없음.

기본 상태

워드프레스 보안

지속 모니터링 (매일 새벽 자동 스캔)

점검 항목기준방법
파일 무결성 WP 코어 파일 checksum (sha256) 대조 wp core verify-checksums → 변조 감지 시 알림
플러그인/테마 변조 설치 시점 원본과 현재 파일 diff wp-content 하위 php/js 파일 hash 비교 (baseline 대조)
신규·의심 파일 .php, .suspected, 비정상 확장자 24시간 내 생성된 파일 중 php/phtml/php7 등 검출
DB 무결성 테이블 구조 변경, 의심 레코드 Schema snapshot과 현재 상태 diff / wp_users 신규 관리자 계정 감지
SQL Injection 흔적 의심 쿼리 패턴 (UNION, SLEEP, BENCHMARK 등) MySQL slow query log + WP debug.log 패턴 스캔
악성코드 시그니처 base64_decode, eval, gzinflate, shell_exec 등 grep -rE 패턴 매칭 → 의심 파일 리스트
업로드 디렉토리 실행 가능 파일 존재 여부 uploads 내 .php .phtml .shtml 검출 → 즉시 알림
외부 연결 의심스러운 아웃바운드 요청 access log에서 비정상 User-Agent·referrer·POST 패턴 탐지

baseline 생성: 사이트 첫 등록 시 깨끗한 상태에서 모든 파일 hash DB 저장 (Hermes 스냅샷). 이후 매일 diff 비교.

레이어 5: 롤백

트리거 조건 (하나라도 해당되면 즉시):

롤백 절차 (완전 자동, 3분 이내 목표):

  1. DB 복원: mysql {db} < pre_change_backup.sql
  2. 파일 복원: cp -r pre_change_files/* public_html/
  3. 캐시 초기화: WP 캐시 플러그인 flush
  4. 재검증: 체크리스트 8항목 확인
  5. 성공 → "롤백 완료" Telegram 알림
  6. 실패 → "수동 개입 필요" 긴급 알림 (일일 백업에서 수동 복원)
실패 시나리오 대응

1. 플러그인 업데이트 후 사이트 다운

자동 감지 (HTTP 500) → 자동 롤백 → 3분 내 복구 → Telegram: "a003 복구 완료 (플러그인 X 충돌, 롤백됨)"

2. DB 마이그레이션 실패

Pre-change 스냅샷 자동 복원 → 실패 시 일일 백업에서 수동 복원 → 최악: 전날 새벽 3시 백업 (최대 24시간 손실)

3. 서버 전체 장애

다른 서버에 백업 복원 → DNS 변경 → DR 서버 사전 확보 필요

4. 랜섬웨어 / 해킹

감염 이전 백업에서 전체 복원 → 파일 전면 교체 → 비밀번호 전면 변경 → 보안 감사 (hermes-security-audit)

구현 로드맵
1단계: 지금 당장 (생존 필수)
모든 사이트 일일 자동 백업 (n8n cronjob) / 백업 실패 시 Telegram 알림 / 수동 작업 전 pre-change 백업 습관화
2단계: 1주 내 (안전망)
n8n + Hermes webhook 연동 / 작업 전 자동 백업 webhook / post-change 자동 검증 webhook / 검증 실패 시 자동 롤백 webhook
3단계: 1개월 내 (완전 자동화)
스테이징 환경 자동 구축 webhook / 위험도 기반 분기 로직 / 주간 자동 유지보수 워크플로우 / 전체 사이트 상태 대시보드
변경 로그
버전날짜변경 사항
v1.6 2026-04-30 WP 지속 모니터링 섹션 (파일 무결성·SQL Injection·악성코드 시그니처 등 8항목) / 시스템 아키텍처 다이어그램 (dark SVG) / 변경 로그 상단·하단 / 번호 중복 제거 / "(중요 고객사만)" 문구 삭제
v1.5 2026-04-30 WP 보안 체크리스트 11항목 (wp-config 권한·xmlrpc·DISALLOW_FILE_EDIT 등) / 버전 표시·타임스탬프 / DigitalOcean Spaces 백업 저장소 / 7일 롤링

v1.5 이전은 초기 구축 버전입니다.