결론부터 말하자면, WMS 재해 복구는 사고 팔고 잊어버리는 백업 제품이 아니다. 실행 가능한 세 가지 질문에 대한 답이다. 시스템이 다운되었을 때 창고가 계속 출하할 수 있는가? 얼마나 많은 데이터를 잃어도 괜찮은가? 그리고 다시 주문을 받을 수 있기까지 얼마나 걸리는가? 이 세 가지 답이 문서로 적혀 있지 않다면, 가동 첫날 밤 체크리스트에 체크 표시를 할 수 없다. 나는 이 실패를 정확히 세 번 보았고, 관련된 모든 창고는 백업을 갖추고 있다고 믿고 있었다.

WMS 재해 복구가 실제로 다뤄야 할 범위

WMS가 다운되면 전체 사슬이 멈춘다. 입고는 첫 번째 게이트에서 멈춘다. 적재 작업 없이 화물이 도착하므로 팔레트가 도크에 쌓인다. 피킹은 무너진다. 작업이 배정되지 않고, 베테랑은 기억에 의존해 일하고, 신입은 기다린다. 출하가 가장 아프다. 라벨을 인쇄할 수 없고, 운송사 트럭은 빈 채로 떠나며, 마감 시간을 놓치면 주문은 내일로 밀린다. 청구는 잊힌 실패이다. 출고 기록이 다시 기록되지 않은 채 출하된 상품은 월말에 사라진 재고와 조정되지 않은 매출로 드러난다.

따라서 복구 계획은 하나의 데이터베이스가 아니라 네 가지 운영을 보호해야 한다. 입고, 피킹, 출하, 그리고 청구이다. 네 가지가 모두 멈춘 동안 디스크에 있는 백업 파일은 안심용일 뿐이며, 안심은 주문을 출하하지 않는다.

새벽 3시의 교훈: 백업은 있었지만 복원은 없었다

2024년 11월, 중국 동부의 한 제3자 창고가 장애 한가운데서 나에게 전화했다. 3 a.m.경 시스템 디스크가 고장 나 WMS가 시작되지 않았다. 트럭 여섯 대가 하역을 기다리고 있었고, 4,000건이 넘는 주문이 피킹을 기다리고 있었다. 당직 관리자는 먼저 올바른 일을 했다. 백업에서 복원하는 것이었다. 그러나 복원은 중간에 멈췄다. 가장 최근의 전체 백업은 3일 전 것이었고, 그 사이의 증분 백업은 디스크가 가득 차 2일 동안 실패해 왔다.

더 나쁜 것은, 그 누구도 전체 복원을 처음부터 끝까지 직접 걸어본 적이 없다는 점이었다. 엔지니어는 데이터베이스 자격 증명, 백업 파일 위치, 복원 도구 버전을 찾아다녔고, 그 세 가지만 찾는 데만 거의 2시간이 걸렸다. 시스템은 10 a.m.경 돌아왔지만, 데이터는 3일 전에서 멈춰 있었고, 3일치 기록을 종이 전표와 운송사 라벨 사본에서 손으로 다시 입력해야 했다. 재무팀은 꼬박 1주일을 조정하는 데 썼다.

기억할 만한 문장이 두 가지 있다. 3일 전 백업은 백업이 없는 것과 같고, 한 엔지니어의 머릿속에만 있는 복원 절차는 절차가 없는 것과 같다. 나는 이 함정을 세 번 보았다. 달라지는 것은 문에 적힌 이름뿐이다.

쉬운 말로 풀어본 RPO와 RTO, 계산 예시와 함께

RPO는 얼마나 많은 데이터를 잃어도 되는지에 답한다. RTO는 얼마나 오래 다운되어 있어도 되는지에 답한다. RPO, 즉 복구 시점 목표는 장애와 복원된 데이터가 도달하는 지점 사이의 간격이며, 그 안에 있는 모든 것은 사라진다. RTO, 즉 복구 시간 목표는 시스템이 다시 주문을 받고, 피킹을 배정하고, 라벨을 인쇄할 수 있기까지 허용되는 시간이다.

자신의 물량으로 숫자를 계산해 보자. 한 창고가 12시간 교대로 하루 6,000건의 주문을 처리하고 시간당 평균 500건이라고 가정하자. RPO가 24시간이면 최악의 경우 하루 전체, 약 6,000건을 다시 입력해야 한다. RPO를 1시간로 조이면 최악의 경우는 약 500건으로 줄어든다. 이 수치는 예시일 뿐 기준이 아니지만, 방법은 그대로 적용된다. 자신의 물량과 교대 길이를 대입하면 작업량이 나타난다.

RTO도 같은 방식이며 기술팀 혼자 정할 수 없다. 운송사 마감 시간이 4 p.m.이고 시스템이 10 a.m.에 고장 난다면, 8시간 RTO는 복구를 6 p.m.에 마치게 되며, 모든 주문이 마감 시간을 놓친 뒤이다. 마감 시간, 수거 시간대, 고객 출하 약속이 RTO 상한을 정한다. 직관에 반하는 판단은 이렇다. 작다고 항상 좋은 것은 아니다. 작은 창고가 15분 RTO를 적어 두면 절대 달성할 수 없는 목표를 세우는 것이며, 실제 장애 때는 무엇을 먼저 보호해야 할지 아무도 모른다.

백업 방식 선택: 세 가지 옵션 비교

방식 복원 속도 유지되는 데이터 가장 적합한 경우
로컬 전체 + 증분 빠름, 로컬 네트워크로 복원 전적으로 백업 빈도에 달림 유지보수를 맡을 사람이 있는 중대형 창고
오프사이트 클라우드 백업 네트워크와 데이터 양에 달림 보통 시간 단위까지 실용적 전담 기술 인력이 없는 다현장 운영
로컬 + 오프사이트 사본 가장 복원력이 높음, 한 사본이 다른 사본을 커버 두 사본이 서로를 뒷받침 출하 약속이 계약에 명시된 창고

먼저 RPO를 정한 뒤 거기서 백업 빈도를 도출하라. one hour의 RPO는 일일 전체 백업으로 충족할 수 없다. 그리고 실패하기 전까지는 당연하게 들리는 한 가지를 확인하라. 백업은 생산과 같은 기계나 같은 방에 있어서는 안 된다. 둘을 함께 앗아간 사고를 나는 목격한 적이 있다. 분리된 저장소와 파일이 실제로 열리는지 확인하는 정기 점검이 더 비싼 제품보다 낫다.

백업이 작동함을 증명하는 WMS 재해 복구 훈련

훈련은 연례 행사가 아니다. 단계가 몸에 배도록 반복하는 연습된 절차이다. 모든 단계마다 담당자와 소요 시간을 기록하라.

  1. 훈련 시간대를 1주일 전에 정하고, 성수기와 마감 시간을 피한다. 고객 서비스와 운송사에 알린다.
  2. 훈련은 복사 데이터만 사용함을 확인한다. 어떤 생산 기록도 건드리지 않는다.
  3. 작성된 매뉴얼대로 백업 파일에서 복원하고, RTO 목표 대비 단계별 실제 시간을 기록한다.
  4. 세 가지 데이터 유형을 표본 점검한다. 전날 입고 기록, 열려 있는 피킹 작업, 출하되었으나 청구로 되돌려지지 않은 주문.
  5. 전체 사이클을 한 번 실행한다. 입고 작업을 만들고, 피킹 작업을 배정하고, 테스트 라벨을 인쇄한다. 세 가지 모두 통과해야 한다.
  6. 24시간 이내에 검토를 작성한다. 소요 시간, 멈춘 단계, 누락된 자격 증명, 그리고 격차별 수정 날짜.

2023년 6월, 중국 남부의 한 자동차 부품 창고가 단계 5가 왜 중요한지 보여주었다. 그 백업은 수개월 동안 깨끗하게 돌아갔지만, 첫 번째 실제 복원에서 제품 바코드 상호 참조 테이블이 빠져 있음이 드러났다. 시스템은 시작되었지만, 모든 스캔이 제품과 매칭되지 않았다. 훈련에서 발견되어 수정에 오후 하루면 충분했다. 실제 장애였다면 하루 전체 출하를 잃었을 것이다. 한 번도 복원된 적이 없는 백업은 백업이 아니다.

도크를 계속 움직이게 하는 종이 대체 수단

아무리 좋은 복구라도 시간이 걸리며, 그 동안 도크는 멈출 수 없다. 종이 대체 키트를 미리 인쇄해 현장에 보관하라. 빈 입고 로그, 빈 피킹 시트, 빈 출하 등록부, 그리고 당일 대기 주문을 인쇄할 수 있는 수단.

종이 순서를 미리 정해 두라. 입고는 공급업체, 제품, 수량, 위치를 기록한다. 피킹은 시트를 따라 주문마다 체크 표시를 한다. 출하는 주문 번호, 운송사, 라벨 번호를 기록한다. 복구 후 모든 종이 기록을 순서대로 다시 입력하고, 재입력이 완료될 때까지 어떤 전표도 파기하지 않는다. 재입력에는 두 번째 눈을 붙여라. 압박 속에서 한 사람이 재입력하면 잘못된 주문이 복원된 시스템에 그대로 굳어지기 때문이다.

종이 대체 수단은 복구 시간을 벌어주는 완충재이다. 2시간 중단을 2시간의 종이 흐름으로 커버하면 출하 약속이 지켜지지만, 2시간의 유휴 시간에 백로그가 더해지면 4가 든다.

가동 첫날 밤 체크리스트: 체크 없이는 승인 없다

이것은 내가 모든 도입을 마무리하는 체크리스트이다. 빈 칸이 있는 상태로 가동을 승인하지 마라.

  • RPO에서 도출된 백업 빈도. 빈도, 보관 기간, 위치가 문서화됨.
  • 생산과 분리해 보관된 백업. 오프사이트 사본이 다운로드 가능하고 열 수 있음이 검증됨.
  • 복원 매뉴얼에 자격 증명, 도구 버전, 파일 경로가 있어 누구에게 묻지 않고도 찾을 수 있음.
  • 가동 전 전체 복원 훈련 완료. 소요 시간을 RTO와 대조하고 초과분을 수정함.
  • 종이 키트를 인쇄해 입고와 출하에 배치함. 감독자가 위치를 알고 있음.
  • 재입력 및 두 번째 확인자 규칙을 야간과 새벽 교대에도 교육함, 주간 교대만이 아님.
  • 알림 체계를 테스트함. 누가 장애를 발견하고, 업체에 전화하고, 고객에게 알리는지, 각각 백업 연락처와 함께.

흔한 실패 지점: 마지막 점검

실패는 아무도 소유하지 않은 틈에 숨어 있다. 백업 작업은 감시 없이 돌아가므로 가득 찬 디스크가 2일 동안 알아차려지지 않는다. 복원 매뉴얼은 한 사람의 노트북에 있고, 그 사람은 장애가 닥쳤을 때 휴가 중이다. 훈련은 데이터베이스를 매년 복원하지만 전체 업무 사이클을 한 번도 돌리지 않으므로 누락된 참조 테이블이 숨은 채로 남는다. 종이 키트는 인쇄된 뒤 감독자 캐비닛에 잠겨 밤에는 손이 닿지 않는다.

복구는 복원이 일상이 될 때까지 연습되었는지에 달려 있다. 오늘 밤, 비용이 들지 않는 행동이 세 가지 있다. 지난주 백업 작업에서 오류가 있는지 확인하고, 복원 매뉴얼의 자격 증명과 경로가 완전한지 확인하고, 야간 감독자에게 종이 키트가 어디에 보관되어 있는지 물어보라. 그러면 계획은 종이에서 현장으로 옮겨가며, 그곳이 계획이 의미를 갖는 유일한 장소이다.

Lin Xiao, WMS 구현 컨설턴트 지음 영어판 번역본입니다. 내용이 다를 경우 영어판을 우선합니다.