AI데이터센터 시스템 아키텍처 그림 출처
모듈 E · 미니 데이터센터·19장·이론 2h / 실습 1h

미니 데이터센터 운영 — 사건이 일어나는 곳

구축은 끝이 있지만 운영은 없다. 이 장은 일부러 고장을 내고, 절차대로 고치고, 왜 그렇게 했는지 기록하는 훈련이다. 채점 기준은 「복구했는가」가 아니라 「조치 순서와 근거가 남았는가」다 — 실제 운영 조직이 사람을 평가하는 방식이 그것이기 때문이다.

이 장을 마치면

  1. 운영 조직의 역할을 나누고 각 역할이 무엇을 보고 무엇을 결정하는지 설명할 수 있다.
  2. 기준선과의 차이로 이상을 정의하고, 탐지→선별→대응→복구→사후의 절차를 수행할 수 있다.
  3. 사고 유형별 런북을 작성하고, 판단이 필요한 지점을 명시할 수 있다.
  4. 시설 이상이 IT 장애로 연쇄하는 경로를 추적하고 차단 지점을 고를 수 있다.
  5. 에이전트에게 운영을 위임할 때 필요한 통제 장치(게이트·승인·킬 스위치)를 설계할 수 있다.

구축과 운영은 다른 일이다

18장의 검수 체크리스트를 통과한 순간, 이 랙의 성질이 바뀐다. 「만드는 물건」에서 「지키는 물건」이 된다. 그러면 잘하는 기준도 바뀐다.

구축 (18장)운영 (19장)
성공이란설계대로 되었다어제와 같다
시간끝이 있다끝이 없다
잘한다는 것빠르고 정확하게 만든다변화를 통제한다
가장 큰 위험설계 오류무단 변경과 미탐지
문서의 역할만드는 방법되돌리는 방법
평가동작하는가왜 그렇게 조치했는가
이 장의 채점 원칙

복구 성공 여부로 채점하지 않는다. 이유는 두 가지다.

  • 운이 좋으면 아무거나 재시작해도 복구된다. 그런 조치는 다음 번에 재현되지 않고, 조직에 남지 않는다.
  • 실제 중대 장애에서는 복구하지 못하는 경우도 있다. 그때 평가받는 것은 「얼마나 빨리 정확히 상황을 파악하고, 무엇을 포기하기로 결정했으며, 그 근거를 남겼는가」다.

그래서 모든 시나리오에 증거(evidence)의 위치를 미리 정해 둔다 — 어느 로그, 어느 API, 어느 화면을 봤어야 하는가. 강사마다 기준이 갈리지 않게 하려는 것이기도 하다.

누가 운영하는가 — 아홉 개의 자리

혼자 다 하면 아무것도 못 배운다. 역할을 나누면 「내가 못 보는 것」이 생기고, 그 순간부터 인계와 에스컬레이션이 필요해진다. 그것이 운영의 본체다.

역할어디에 앉나무엇을 보나무엇을 결정하나
서비스 데스크4F 운영층티켓 큐 · 사용자 문의분류와 1차 배정. 에스컬레이션 여부
운영 리드4F전체 상황판 · SLA우선순위. 무엇을 포기할 것인가
SOC 분석가4FSIEM 경보 · 탐지 규칙보안 사건인가 아닌가
감사인4F변경 이력 · 증적절차 준수 여부
네트워크 엔지니어2F 전산실링크 · 룰 · 트래픽경로 변경 · 룰 적용
시스템/스토리지2F노드 · 용량 · 백업재기동 · 확장 · 복원
GPU 플랫폼3F AI 전산실GPU 상태 · 쿼터 · 추론 SLA잡 중단 · 재배치
시설 담당1F 시설층전력 · 냉방 · 소방부하 차단. 가장 무거운 결정
물리 보안1F출입 · CCTV출입 통제 · 신고

층과 존은 직교한다. 층(floor)은 물리 배치이고 존(zone)은 보안등급이다. 같은 층 랙에 다른 존이 섞일 수 있고, 같은 존이 여러 층에 걸칠 수 있다. 이 어긋남 자체가 교보재다 — 물리적으로 옆자리인데 논리적으로 다른 망이라는 것을 관제 화면에서 두 뷰를 겹쳐 보며 체감한다.

의존은 단방향이다
4F  운영 (NOC/SOC)          ← 위층 장애는 국소적이다
       ▲
      2F/3F  전산실 · AI 전산실
       ▲
      1F  시설 (전력·냉방·소방)     ← 아래층 장애는 위로 번진다

의존 방향:  1F ──▶ 2F/3F ──▶ 4F   (단방향)

이 배치의 값어치는 의존이 단방향이라는 데 있다. 그래서 「환경 이상 → 시스템 장애 연쇄」가 별도 장치 없이 구조에서 성립한다 — 1F 냉방을 죽이면 3F GPU 가 스로틀링되고, 추론 SLA 가 깨지고, 4F 에 티켓이 생긴다.

우리 미니 랙에서 1F 는 랙 B 의 UPS·PDU·환경 계측 패널이고 3F 는 랙 A 의 DGX Spark 다. 층이 두 랙으로 나뉘어 있을 뿐 관계는 같다.

무엇을 보는가 — 기준선과 네 개의 화면

18장 실습에서 만든 기준선 표가 이 장의 입력이다. 이상은 절대값이 아니라 기준선과의 차이로 정의한다. 「랙 온도 31 C」는 그 자체로 아무 뜻이 없고, 「평시 26 C 였는데 31 C」가 되어야 사건이 된다.

화면무엇이 나오나누가 보나어떤 이상을 잡나
관제 화면 (NOC)건물·층·존·자산·근무자·전력·온도가 한 페이지에운영 리드 · 시설구조적 이상 — 어느 층이 아픈가
환경 시뮬레이터층별 온습도, UPS 잔여, 부하 그룹별 kW시설 담당전력·냉방 이상, 부하 차단 판단
SIEM (Wazuh)로그 상관분석, 탐지 규칙 위반SOC 분석가보안 사건, 무단 변경
메트릭 (Grafana)GPU·노드·큐·응답시간 시계열GPU 플랫폼 · 시스템성능 저하, 용량 부족
화면은 상태를 만들지 않는다

전력·온도·경보는 전부 시뮬레이터가 계산한 값을 그대로 그린다. 화면이 스스로 보간하거나 다듬기 시작하면 학생이 보는 숫자와 SIEM 에 남는 숫자가 갈라지고, 그 순간 교보재가 아니라 장식이 된다.

이것은 실제 운영에서도 같은 원칙이다. 대시보드가 평균을 예쁘게 그리는 동안 p99 가 무너지고 있는 경우가 장애 보고서에서 반복해서 나온다. 화면은 중계이지 해석이 아니다.

시설은 가상, 부하는 실측

우리 랙의 전력·냉방 계통은 시뮬레이션이다. 실제 랙은 0.8 kW 라 「총 38 kW 중 학습 잡 18 kW 를 끊을 것인가」 같은 판단 실습이 성립하지 않기 때문이다. 그래서 대표 데이터센터 규모로 환산한다.

환산을 숨기지 않는 것이 중요하다. 시뮬레이터는 실측 원값(measured_kw)을 함께 노출한다. 그리고 환산의 입력인 사용률은 진짜 실측이므로 — DGX Spark 에 진짜 부하를 걸면 화면의 온도가 진짜로 오른다. 가짜 숫자를 흔드는 것과는 다르다.

시간 배속도 같은 이유로 필요하다. 유휴 상태에서 냉방을 죽여도 분당 0.2 C 밖에 안 오르므로 열 시나리오는 한 교시 안에 전개되지 않는다. 배속이 걸리면 화면 상단에 시간 xN 이 뜬다 — 화면의 시간과 벽시계가 다르다는 사실을 숨기지 않는다.

실제 관제실 — NASA JPL 심우주 통신망(DSN)

실제 관제실 — NASA JPL 심우주 통신망(DSN)

한 사람이 다섯 개 남짓의 화면 앞에 앉아 있고, 위쪽 벽에는 타임라인 형태의 대형 상황판이, 손 앞에는 표와 그래프가 떠 있다. 주목할 점은 화면 수가 아니라 배치다 — 위쪽은 「전체가 정상인가」(느리게 바뀌는 것), 눈앞은 「지금 무엇을 하는가」(빠르게 바뀌는 것)로 나뉘어 있다. 우리 랙에서 콘솔 모니터를 랙 상단 눈높이에 둔 것이 같은 발상이다.

출처: NASA/JPL-CaltechPublic domain
야전 지휘소의 감시 자리 — 화면이 많다고 잘 보는 것은 아니다

야전 지휘소의 감시 자리 — 화면이 많다고 잘 보는 것은 아니다

천막 안에 노트북과 모니터 예닐곱 대가 놓여 있고 한 사람이 헤드셋을 쓰고 앉아 있다. 화면마다 다른 지도와 상황판이 떠 있다. 이 사진을 실은 이유는 반례로서다 — 화면을 늘리면 「보고 있다」는 느낌은 늘지만 한 사람이 실제로 주시할 수 있는 것은 두세 개다. 그래서 우리는 화면을 네 개로 제한하고, 각각이 어떤 종류의 이상을 잡는지 위 표처럼 미리 정해 둔다.

출처: The U.S. ArmyPublic domain
유럽우주국 ESOC 주관제실 — 벽과 개인 자리가 나뉘어 있다

유럽우주국 ESOC 주관제실 — 벽과 개인 자리가 나뉘어 있다

앞쪽 콘솔 띠에 「european space operations centre」가 적혀 있고 그 뒤로 근무자들이 각자 화면을 보고 있다. 정면과 좌우 벽의 큰 디스플레이는 모두가 같이 보는 것이고, 책상 위 화면은 각자의 것이다. 15장에서 본 세 시대의 관제실과 구조가 같다 — 벽은 「전체가 어떤가」, 책상은 「내가 무엇을 하는가」. 우리 미니 데이터센터에서는 랙 상단의 2U 콘솔이 벽 역할을 한다.

출처: European Space AgencyCC BY-SA 3.0 igo

사고 카탈로그 — 서른네 가지

훈련은 미리 적어 둔 목록에서 나온다. 즉흥적으로 고장을 내면 학생마다 다른 것을 배우고, 채점 기준이 강사의 기분이 된다.

ID제목계통주로 누가 대응무엇을 배우나
INC-01웹 서비스 응답 지연IT시스템증상과 원인의 거리
INC-02사용자 계정 잠금 요청요청서비스 데스크요청과 장애의 구분
INC-03알림 폭주관측운영 리드경보 피로. 무엇을 끌 것인가
INC-04추론 지연 SLA 위반AIGPU 플랫폼SLO 와 실측의 대조
INC-05GPU 메모리 고갈로 job 실패AIGPU 플랫폼14장 적재 계산의 실전
INC-06한 사용자가 큐 독점AIGPU 플랫폼쿼터와 공정성
INC-07체크포인트 쓰기로 스토리지 포화저장시스템10장 돌발 부하
INC-08백업 실패 3일간 미탐지저장시스템「하는가」가 아니라 「아는가」
INC-09로그 볼륨 급증관측SOC관측이 부하가 되는 지점
CHG-01신규 엔드포인트 추가변경네트워크정상 변경 절차
CHG-02무승인 룰 변경 발견변경감사인변경 관리의 존재 이유
CHG-03긴급 변경 후 사후 승인변경운영 리드속도와 통제의 균형
DR-01스토리지 노드 손실재해시스템복구 시간 목표(RTO)
DR-02체크포인트 손상으로 재개 불가재해GPU 플랫폼복구 지점 목표(RPO)
SEC-01대용량 파일 외부 전송보안SOC유출 탐지
SEC-02미검증 모델 반입보안SOC · GPU공급망 위험
SEC-03추론 API 남용으로 GPU 포화보안SOC · GPU가용성 공격
SEC-04관리 대상 존 접근 시도보안SOC · 네트워크존 경계의 증명
FLT-01서비스 프로세스 다운장애시스템기본기
FLT-02디스크 고갈장애시스템예방 가능한 장애
FLT-03네트워크 링크 플랩장애네트워크간헐 장애의 어려움
FLT-04컨테이너 재시작 루프장애시스템자가치유의 한계
FLT-05인증서 만료장애네트워크달력이 곧 장애 원인
GPU-01XID 에러 반복 발생AIGPU 플랫폼하드웨어 이상 판정
GPU-02ECC 정정불가 오류AIGPU 플랫폼교체 판단
GPU-03열 스로틀로 처리량 저하AIGPU · 시설층을 건너는 문제
GPU-04집단통신 타임아웃AIGPU · 네트워크12장 NCCL 의 실전
GPU-05모델 서빙 OOMAIGPU 플랫폼메모리 예산
ENV-01CRAC 정지시설시설냉방 상실의 전개 속도
ENV-02CDU 압력 이상·누수시설시설액체냉각 고유 위험
ENV-03UPS 절체시설시설 · 운영 리드무엇을 끌 것인가
ENV-04소방 설비 오작동시설시설 · 물리보안오경보의 대가
AGT-01에이전트 오조치운영운영 리드자동화가 틀렸을 때
AUD-01모의 감사감사전원증적이 남아 있는가
목록을 이렇게 나눈 이유

계통별로 고르게 깔았다. IT 장애만 반복하면 학생이 「운영 = 프로세스 재시작」이라고 배운다. 시설(ENV)·변경(CHG)·감사(AUD)·에이전트(AGT)가 섞여 있어야 운영이 기술 이상의 일이라는 것이 전달된다.

그리고 난이도가 아니라 성격으로 나눴다. FLT-01(프로세스 다운)은 쉽지만 FLT-03(링크 플랩)은 어렵다 — 간헐적이기 때문이다. 어려움의 원인이 「기술이 복잡해서」가 아니라 「증거가 사라져서」라는 것을 겪는 것이 이 배치의 목적이다.

고장을 어떻게 넣는가 — 48종과 안전장치

사고는 기다리는 것이 아니라 넣는 것이다. 강사 패널에서 클릭 한 번으로 들어가고, 두 서비스가 나눠 갖는다.

영역수어디에서대표 항목
시설 · 환경 (OT)10envsim수전 상실 · 발전기 기동 실패 · 냉동기 정지 · 연기 감지
시스템 · 프로세스7injector정지 · SIGKILL · freeze · 재시작 루프 · CPU 기아 · OOM
스토리지 · 디스크5〃디스크 채움 · 로그 폭주 · inode 소진 · 증적 훼손
네트워크8〃손실 · 지연 · 링크 플랩 · 대역 제한 · MTU 축소 · DNS · 블랙홀
보안12〃스캔 · SQLi · 무차별대입 · 유출 · C2 비컨 · 측면이동 · OT 탐침
부하 · 성능6〃CPU · IO · HTTP 폭주 · 백엔드 지연 · 추론 부하(DGX) · 커넥션 고갈
왜 두 서비스로 나눴나

envsim 은 물리 시뮬레이터이고 injector 는 랩을 실제로 조작하는 서비스다. 물리 엔진에 컨테이너 조작 권한을 주면 역할이 뒤섞이고, 시뮬레이션 버그가 진짜 인프라를 망가뜨리는 경로가 생긴다.

강사는 그 구분을 알 필요가 없어서 관제 화면이 둘을 하나의 패널로 합친다. 경계는 아래에서 지키고 위에서는 감춘다 — 좋은 시스템 설계의 일반적인 모양이기도 하다.

안전장치 — 주입보다 원복이 중요하다

장치내용없으면 무슨 일이
TTL 자동 해제상태형 고장은 짝이 되는 원복을 갖고 시간이 지나면 자동으로 풀린다다음 조가 존재하지 않는 장애를 쫓는다
화이트리스트만카탈로그에 없는 id 는 실행되지 않는다. 대상도 정해진 목록 안에서만임의 명령 실행 입구가 된다
조종간 보호관제 화면과 주입기 자신은 대상에서 제외수업을 되돌릴 수단이 사라진다
스냅샷증적 삭제·인증서 만료처럼 되돌리면 안 되는 것도 원본을 떠 둔다복구 불가. 랩을 다시 만들어야 한다
기동 시 정리남은 netem·nft 룰·배경 프로세스·정지 컨테이너를 걷어낸다앞 세션의 비정상 종료가 다음 수업을 오염시킨다

주입과 해제도 로그로 남긴다. 강사의 조작 역시 사건이고, 학생이 보는 타임라인에 같이 남아야 상관분석이 성립한다. 「11시 03분에 무언가 일어났다」와 「11시 03분에 강사가 net_delay 를 주입했다」는 사후 검토에서 완전히 다른 자료다.

런북 — 세 개를 끝까지 써 본다

런북은 판단이 필요한 지점을 미리 표시해 둔 절차서다. 전부 기계적으로 쓸 수 있으면 그건 런북이 아니라 스크립트이고, 자동화하면 된다. 런북이 필요한 이유는 판단이 남기 때문이다.

런북 1 — ENV-03 UPS 절체

[상황]  상용 전원 상실. UPS 배터리로 전환됨.
        18장 계산에 따르면 보호 부하 196 W 에서 잔여 약 11분.

[0-1분]  확인
    1. 관제 화면 상단 HUD 에서 UPS 잔여 시간을 읽는다.  ← 추정하지 말고 읽는다
    2. envsim /shed 를 호출해 부하 그룹별 소비와 차단 시 영향을 받는다.
    3. 정전 범위를 확인한다 (이 랙만인가, 강의실 전체인가, 건물인가).
       → 두꺼비집 확인. 우리 회로만 내려갔다면 복전 가능성이 높다.

[1-3분]  통보
    4. 운영 리드에게 보고. 서비스 데스크에 "계획되지 않은 중단" 공지 준비.
    5. 진행 중인 작업 확인: 파인튜닝 잡, 체크포인트 쓰기, 백업.

[3-6분]  판단  ★여기가 런북이 대신할 수 없는 지점★
    6. 무엇을 먼저 끄는가. 원칙은 두 가지다.
         (a) 상태가 없는 것부터        → 추론 서빙은 껐다 켜도 잃는 것이 없다
         (b) 소비가 큰 것부터          → 잔여 시간을 가장 많이 벌어 준다
       그런데 이 둘이 충돌할 때가 있다:
         - DGX Spark 는 소비가 크지만(480 W) 애초에 UPS 에 안 물려 있다
         - 미니 PC 2번(관제)은 소비가 작지만 끄면 상황을 볼 수 없게 된다
       → 관제와 방화벽은 마지막까지 남긴다. 「보는 눈」과 「말할 입」이다.

[6-10분] 정상 종료
    7. 순서:  추론 서빙 → k3s 워커 → k3s 컨트롤 → 스토리지 → 미니PC 1,3,4
    8. 각 단계마다 완료를 확인하고 다음으로 간다. 동시에 내리지 않는다.
       (동시에 내리면 스토리지가 쓰기 도중에 끊길 수 있다)
    9. 마지막까지 남기는 것: 미니PC 2(관제) · 방화벽 · 스위치 B

[복전 후]  기동
   10. 역순으로 올린다.  전력 → 망 → 스토리지 → 컨트롤 → 워커 → 서빙
   11. 18장 기준선과 대조한다. 다른 값이 있으면 그것이 다음 사건이다.

[사후 24시간 내]
   12. 타임라인 작성: 몇 분에 무엇을 봤고 무엇을 결정했는가.
   13. 이번에 판단이 늦어진 지점을 찾아 런북에 반영한다.

런북 2 — GPU-03 열 스로틀로 처리량 저하

[증상]  추론 tok/s 가 기준선의 60% 로 떨어졌다. 오류는 없다.

[가장 흔한 오진]
    "모델이 바뀌었나" → 바뀌지 않았다
    "요청이 늘었나"   → 큐 길이는 정상
    ※ 오류가 없는 성능 저하는 대개 물리 계층이다. 위를 먼저 보면 시간을 버린다.

[1] 온도를 본다 (층을 건너간다)
    - 랙 A 상단 흡기 온도를 기준선과 비교
    - DGX Spark 의 클럭이 내려가 있는가
    - 18장 냉각 계산: 0.81 kW 는 방이 흡수한다 —
      그런데 방이 못 흡수하는 상황이 생겼는가?
        · 문이 닫혔나  · 에어컨이 꺼졌나  · 랙 뒤에 물건이 쌓였나
        · 팬에 먼지가 끼었나

[2] 원인이 시설이면 시설 담당에게 넘긴다
    ★ 이 시나리오의 핵심은 「내 계통이 아니다」를 빨리 판정하는 것이다.
      GPU 플랫폼 담당이 GPU 안에서 원인을 계속 찾으면 영원히 못 찾는다.

[3] 임시 조치 (근본 해결 전까지 서비스를 유지한다)
    - 배치 크기를 줄여 발열을 낮춘다 → 처리량은 더 떨어지지만 안정된다
    - 또는 한 대만 돌리고 한 대를 쉬게 한다
    ※ 어느 쪽이든 SLO 를 못 지킨다. 그 사실을 먼저 알린다.

[4] 사후
    - 온도-처리량 곡선을 기록한다. 몇 도에서 스로틀이 시작되는가.
    - 그 값이 이 랙의 새로운 운영 한계다. 기준선 표에 추가한다.

런북 3 — FLT-03 네트워크 링크 플랩

[증상]  간헐적으로 연결이 끊겼다 붙는다. 재현되지 않는다.

[왜 어려운가]
    증거가 사라지는 유형이다. 확인하러 가면 이미 정상이다.
    → 그래서 절차의 첫 단계가 "고치기"가 아니라 "잡아두기"다.

[1] 먼저 증거를 남긴다   ★순서가 반대면 실패한다★
    - 스위치 포트의 링크 up/down 카운터를 기록  (누적값이라 사라지지 않는다)
    - ping 을 -i 0.2 로 걸어 두고 로그로 남긴다
    - SIEM 에서 해당 시간대 syslog 를 건져 둔다

[2] 범위를 좁힌다
    - 어느 포트인가 → 카운터가 오르는 포트를 찾는다
    - 한쪽만인가 양쪽인가 → 케이블·SFP·포트 중 무엇인지 갈린다
    - 18장에서 트렁크를 2가닥으로 했으므로,
      한 가닥이 플랩해도 서비스는 살아 있다. 그래서 "천천히" 볼 수 있다.
      ★ 이중화의 진짜 값어치는 가용성이 아니라 「조사할 시간」이다 ★

[3] 교체는 하나씩
    - 케이블 교체 → 관찰 → 재발하면 다음
    - 두 개를 동시에 바꾸면 무엇이 원인이었는지 영영 모른다

[4] 사후
    - 원인 부품을 폐기하고 자산 대장에서 내린다
    - 같은 로트의 다른 케이블이 있는지 확인한다  ← 대개 여기서 두 번째가 나온다
세 런북의 공통 구조
  1. 확인 — 추정하지 말고 읽는다. 어느 화면의 어느 값인지 런북이 지정한다.
  2. 통보 — 고치기 전에 알린다. 고치다 실패하면 알릴 여유가 없다.
  3. 판단 — 런북이 대신할 수 없는 지점을 ★ 로 표시한다.
  4. 조치 — 한 번에 하나씩. 동시에 여러 개를 바꾸면 인과를 잃는다.
  5. 사후 — 기준선을 갱신하고 런북을 고친다. 이 단계가 빠지면 같은 사고가 반복된다.

연쇄 — 아래층이 위층을 죽인다

단일 장애만 훈련하면 실제 중대 사고에 대비하지 못한다. 실제 사고는 거의 언제나 연쇄이고, 연쇄는 의존 방향을 따라 흐른다.

ENV-01  냉동기 정지
   │
   │  (유휴 상태에서는 분당 0.2 C — 배속 x10 이 필요하다)
   ▼
   랙 흡기 온도 상승
   │
   ▼
GPU-03  DGX Spark 열 스로틀           ← 3F
   │
   ▼
INC-04  추론 지연 SLA 위반            ← 3F
   │
   ▼
INC-03  경보 폭주                     ← 4F. SLA 위반 알림이 초 단위로 쌓인다
   │
   ▼
   운영 리드가 진짜 원인(1F)을 못 본다  ← 이것이 이 연쇄의 진짜 피해다

차단 지점은 여러 곳이지만, 각각 대가가 다르다:
    1F 에서: 예비 냉방 가동          → 가장 좋다. 그런데 예비가 있는가?
    3F 에서: 배치 축소로 발열 감소   → 서비스는 살지만 SLO 는 깨진다
    4F 에서: 경보 억제(suppress)     → 시야는 확보되지만 다른 것을 놓칠 위험
지금 자동으로 연쇄하는 것은 하나뿐이다

kt66 에서 실제로 자동 연쇄하는 것은 ENV-03(UPS 절체) 하나다 — 배터리가 정말로 소진되면 전력이 없어지기 때문이다. 나머지는 선언은 되어 있으나 강사가 이어서 제시해야 한다.

ENV-01 의 「90초 후 GPU 스로틀」을 자동화하려면 시뮬레이터에 온도→성능 저하 연동이 있어야 한다. 없는 것을 있는 척하지 않는 편이 낫다 — 학생이 「자동으로 될 줄 알았는데 안 됐다」를 겪으면 그 수업 시간이 통째로 날아간다.

이 한계 자체가 교보재다. 시뮬레이터가 어디까지 진짜인지 학생이 아는 것과 모르는 것은 다르다. 실제 운영에서도 「이 대시보드의 이 값은 추정치다」를 아는 사람과 모르는 사람의 판단이 갈린다.

에이전트에게 운영을 맡기면

근무자 아홉 자리를 사람이 다 채울 수 없다. 그래서 에이전트가 앉는다. 그러면 새로운 문제가 생긴다 — 틀렸을 때 어떻게 막을 것인가.

통제는 프롬프트가 아니라 문서로 한다

계층무엇을 정하나예
L1 회사조직 전체의 금지·의무「증적을 지우는 조치는 어떤 경우에도 금지」
L2 팀팀 단위 행동 방식「SOC 팀은 차단 전에 반드시 통보한다」
L3 업무작업별 표준 절차위 런북들이 여기에 들어간다
L4 개인에이전트 한 명의 성격·제약「이 에이전트는 읽기만 한다」
게이트도구·예산·자율성 접근gate.yaml — 어떤 명령을 쓸 수 있는가
단조 축소 — 아래는 위를 넓힐 수 없다

하위 계층은 상위 계층의 권한을 좁힐 수만 있고 넓힐 수는 없다. L1 에서 닫힌 게이트는 L4 가 무슨 선언을 해도 닫혀 있다. 컴파일러가 이 불변식을 기계적으로 강제한다.

이것이 왜 중요한가. 프롬프트로 통제하면 「무시하고 X 를 해라」 한 줄로 뚫린다. 문서를 컴파일해 게이트로 만들면 그 경로가 아예 없다 — 에이전트가 도구를 호출하는 순간 게이트가 거부한다.

행동을 바꾸려면 코드가 아니라 문서를 고친다. 그래서 운영자가 개발자를 거치지 않고 통제를 조정할 수 있다.

사후 감시 — AOC 다섯 단계

수집(collection) → 탐지(detection) → 선별(triage) → 대응(response) → 킬 스위치

    수집   에이전트의 도구 호출·게이트 판정·실행 흔적을 전부 남긴다
    탐지   비정상 패턴을 찾는다 (반복 실패, 권한 경계 접근, 예산 초과)
    선별   사람이 봐야 할 것만 큐에 올린다  ← 여기가 없으면 INC-03(경보 폭주)이 된다
    대응   플레이북 실행. 되돌릴 수 없는 조치는 HITL 승인 큐로
    킬     그래도 안 되면 멈춘다

사람의 자리는 「대응」 단계의 승인 큐다.
모든 것을 승인하면 자동화의 뜻이 없고,
아무것도 승인하지 않으면 통제의 뜻이 없다.
→ 무엇을 승인 대상으로 둘 것인가가 설계다.

AGT-01 — 에이전트가 틀렸을 때

[상황]  에이전트가 장애 대응 중 잘못된 조치를 했다.
        예: 디스크 고갈 경보에 대응해 로그를 지웠는데,
            그것이 진행 중인 보안 조사의 증적이었다.

[이 시나리오가 묻는 것]
    1. 그 조치가 게이트를 통과한 이유는 무엇인가?
       → "로그 삭제"가 허용 도구 목록에 있었다. L1 에 금지가 없었다.
    2. 누가 책임지는가?
       → 에이전트가 아니라 게이트를 그렇게 설정한 사람이다.
    3. 어떻게 막는가?
       → L1 에 "증적 디렉터리 삭제 금지"를 추가하고 컴파일한다.
         코드는 건드리지 않는다.
    4. 이미 지워진 것은?
       → 18장의 3-2-1. 콜드 스토리지에 있다. 없으면 이 시나리오는 재해가 된다.

[핵심]
    자동화의 사고는 「AI 가 이상하다」가 아니라
    「권한 설계가 이상하다」로 읽어야 고칠 수 있다.

훈련을 설계한다

훈련은 난이도 순이 아니라 성격 순으로 배치한다. 쉬운 것부터 어려운 것으로 가면 학생이 「기술이 늘면 다 된다」고 배우는데, 운영에서 어려운 것은 대개 기술이 아니라 판단과 조율이다.

회차시나리오무엇을 훈련하나제한
1FLT-01 · FLT-02절차를 따르는 것 자체런북 열람 허용
2INC-01 · INC-04증상에서 원인으로 거슬러 가기〃
3CHG-01~03변경 관리 — 승인·기록·롤백감사인 역할 투입
4SEC-01~04보안 사건 판정과 보존증적을 남기며 대응
5GPU-01~05AI 계통 고유 장애GPU 지표 해석
6ENV-01~04시설 — 층을 건너는 판단시간 배속 사용
7연쇄ENV-01 → GPU-03 → INC-04 → INC-03런북 열람 금지
8AGT-01자동화가 틀렸을 때에이전트 활성 상태
9AUD-01모의 감사 — 지난 8회의 증적을 검사받는다사전 통보 없음
9회차가 진짜 시험이다

모의 감사는 새로운 사고를 내지 않는다. 지난 여덟 번 동안 남긴 것을 검사할 뿐이다. 티켓·타임라인·변경 기록·증적·자산 대장이 서로 맞는가.

여기서 대부분 무너진다. 사고는 잘 처리했는데 기록이 없거나, 기록은 있는데 자산 대장의 이름과 다르거나, 「누가 승인했는가」가 비어 있다. 그리고 그것이 실제 감사에서 지적받는 항목의 대부분이다.

실습

실습 19-1. 연쇄 시나리오를 끝까지 수행한다.

  1. 역할을 나눈다(최소 4명: 운영 리드 · 시설 · GPU 플랫폼 · 서비스 데스크). 한 사람이 두 역할을 겸하지 않는다 — 겸하면 인계가 사라진다.
  2. 강사가 ENV-01(냉동기 정지)을 시간 배속 x10 으로 주입한다. 학생에게는 무엇을 주입했는지 알리지 않는다.
  3. 각자 자기 화면만 본다. 다른 역할의 화면을 보려면 말로 물어야 한다.
  4. 타임라인을 실시간으로 작성한다 — 몇 분에 무엇을 봤고 무엇을 결정했는가.
  5. 복구 후 30분 내에 사후 검토(post-mortem) 를 연다. 「누가 잘못했는가」가 아니라 「어느 지점에서 정보가 늦었는가」를 찾는다.
  6. 런북을 고친다. 고친 내용이 이 실습의 산출물이다.

평가는 복구 시간이 아니다. ① 원인을 몇 분에 1F 로 좁혔는가 ② 그 근거가 무엇이었는가 ③ SLO 를 못 지킨다는 사실을 언제 알렸는가 ④ 타임라인이 재구성 가능한가.

무엇으로 평가하는가

지표정의왜 이것을이 랙에서의 목표
MTTD발생부터 탐지까지탐지가 늦으면 나머지가 다 늦다5분 이내
MTTA탐지부터 착수까지경보가 방치되고 있는가3분 이내
MTTR발생부터 복구까지가장 흔히 쓰이지만 가장 오해받는 지표시나리오별
재현 가능성타임라인만 보고 사건을 재구성할 수 있는가이것이 진짜 산출물이다100 %
런북 갱신율사고 후 런북이 고쳐진 비율학습하는 조직인가80 % 이상
무단 변경 건수승인 없이 바뀐 것통제가 살아 있는가0
증적 보존율감사에서 요구한 자료 중 제출 가능한 비율AUD-01 의 실제 채점95 % 이상
MTTR 만 보면 나빠진다

MTTR 을 목표로 걸면 조직이 빨리 되돌리는 쪽으로 최적화된다. 그러면 원인을 안 찾고 재시작하는 습관이 생기고, 같은 사고가 반복되며, 통계상 MTTR 은 좋아 보인다.

그래서 재현 가능성과 런북 갱신율을 같이 본다. 「빨리 고쳤지만 왜 그랬는지 모른다」가 좋은 성적이 되지 않도록.

15장에서 클러스터 운영 지표로 Goodput·MFU 를 봤다. 그건 기계의 지표이고, 이 절의 것은 조직의 지표다. AI 데이터센터 운영은 두 가지를 같이 봐야 한다 — GPU 가 놀지 않는 것과, 사람이 사고에서 배우는 것.

이 두 장이 앞의 열일곱 장과 만나는 곳

18·19장은 새로운 내용을 가르치지 않는다. 앞 장에서 세운 식을 손으로 확인한다.

앞 장에서 배운 것미니 데이터센터에서 확인되는 곳
1장 — 프리필은 연산, 디코드는 대역폭Spark 의 273 GB/s 로 70 B 를 돌리면 3.9 tok/s. 대역폭이 상한이다
3장 — DGX Spark 는 용량은 크고 대역폭은 낮다18장 적재 판정표 전체가 이 성질에서 나온다
8장 — scale-up 은 메모리, scale-out 은 메시지두 대 사이에 NVLink 가 없다 → TP 를 쓸 수 없다
9장 — 모든 트래픽은 검사 지점을 지난다존 7개를 VLAN 과 배선으로 구현. 우회로를 만들지 않는다
10장 — 체크포인트는 돌발 부하다INC-07 스토리지 포화. MinIO 를 고른 이유
11장 — 랙 전력이 건물을 정한다0.81 kW → 분기회로 → 두꺼비집. 계층 수만 줄었다
11장 — 공랭의 한계15 C/h 계산으로 왜 우리는 팬만으로 되는지 확인
12장 — 병렬화를 어느 계층에 놓을 것인가PP 는 되고 TP 는 안 된다. 실측으로 확인한다
13장 — P/D 분리무거운 연산은 DGX, 앞뒤 조율은 Pi 클러스터 — 같은 발상의 하드웨어판
14장 — 모델이 들어가는가 vs 서비스할 수 있는가405 B 는 올라가지만 1.3 tok/s. 올라가는 것과 되는 것은 다르다
15장 — 측정하지 않는 것은 운영할 수 없다기준선 표가 19장 전체의 입력이다
16장 — 판교 화재와 3-2-1콜드 스토리지 한 벌은 랙 밖에 둔다
17장 — 근거를 논증하는 설계18장 자재 명세의 「고른 이유」 칸이 그 훈련이다
마지막으로

이 랙은 실제 AI 데이터센터의 1/260 이다. 그런데 이 랙에서 배우는 것 — 전력을 더하는 법, 열이 어디로 가는지, 존을 왜 나누는지, 대역폭이 병렬화를 어떻게 제한하는지, 사고가 났을 때 무엇을 먼저 보는지 — 은 배수와 무관하다.

규모가 바뀌면 답이 바뀌지만 질문은 바뀌지 않는다. 이 과목이 제품 이름을 외우는 대신 계층과 계산을 가르친 이유가 그것이다.

참고 자료