아침 여덟 시에 연결이 끊기고, 첫 질문은 누가 고쳐야 하느냐이다. 반관리형 VPN이라는 말은 작업의 분담이 아니라 상업적 합의에 이름을 붙인 것이므로 그 답이 되지 않는다. 두 사업자가 같은 말을 정반대 분담으로 쓸 수 있고, 하나는 고객 측 장비를 유지하며 다른 하나는 자기 게이트웨이만 지켜본다. 작업이 적히기 전까지 라벨은 설명의 옷을 입은 추측이다.

끊긴 연결에서 시작하라

응답을 멈춘 엔드포인트, 시각, 그리고 끊겼을 때 사용자가 무엇을 하고 있었는지를 지목하라. 다음으로 그 경로의 구성 요소인 노트북, 지역 회선, 고객 측 게이트웨이, 사업자 게이트웨이, 그 뒤의 자원을 나열하라. 각각은 계약상 담당자가 있거나 빈틈이 있다. 이를 정리하는 데 십 분이 걸리고 다음 세 시간을 결정한다.

여러 사용자에게 공통된 증상은 공유 구성 요소를 가리키고, 노트북 한 대를 따라가는 증상은 클라이언트를 가리킨다. 그 구분이 누군가 설정을 열기 전에 티켓을 올바른 대기열에 넣는다.

설정보다 두 끝점을 먼저 정하라

고객 측 게이트웨이를 누가 소유하는지, 먼 끝점을 누가 소유하는지 정하라. 이 둘이 정해지면 각 측은 무엇을 점검할 수 있고 무엇을 요청해야 하는지 안다. 합의의 나머지는 거기서부터 쉬워진다.

사업자는 자기 게이트웨이를 모니터링할 수 있고, 고객은 지역 인터넷 회선, 디렉터리 서비스, 대상 애플리케이션에 대한 책임을 계속 진다. 고객이 소유한 장비도 사업자의 유지보수 계약 아래에 둘 수 있어서 소유권과 상자를 누가 관리하는지는 다른 질문이다. 갱신 협의가 갈라지는 곳은 대개 두 번째 답이므로 끝점마다 두 답을 모두 적어라.

공유 객체에는 정확히 한 명의 소유자가 필요하다

식별자, 자격 증명, 보호된 접두사, 제안, 반환 경로 합의는 공유 객체이며, 공유 객체는 가장 빨리 썩는다. 양쪽이 하나를 바꿀 수 있으면 둘 다 바꾸고, 합의된 흐름이 깨지는 동안에도 각 변경은 국소적으로 옳아 보인다. 모든 객체에 소유자 하나와 변경 절차 하나를 주고, 변경이 반영되기 전에 상대에게 알리도록 요구하라. 대안은 같은 기계의 서로 다른 절반을 고치는 두 사람처럼 읽히는 변경 기록이다.

전형적인 고장은 같은 주에 한쪽은 셀렉터를, 다른 쪽은 NAT를 바꾸는 것이다. 어느 엔지니어도 잘못하지 않았는데 터널은 애플리케이션을 나르지 못했다.

첫 보고는 누가 받는가

누구를 먼저 호출할지, 각 측이 무엇을 읽을 수 있는지, 사건이 어느 지점에서 손을 넘기는지를 미리 정하라. 끝점, 시도 시각, 허용된 흐름을 제공해 양쪽이 같은 사건을 대조할 수 있게 하라.

좁은 상태 요약은 대개 편집되지 않은 설정보다 유용하고, 비밀을 흘리지 않는다. 모니터링은 구성 요소를 소유한 쪽의 것이지 로고를 소유한 쪽의 것이 아니므로, 어느 쪽이 터널 상태를 보고 어느 쪽이 애플리케이션을 보며 각 경보가 누구를 깨우는지 물어라. 아무도 당직하지 않는 대시보드는 문서일 뿐이므로 모든 경보 옆에 근무 시간 외 경로를 두라.

변경 권한도 같은 주의로 정의하라. 사업자가 셀렉터를 고치는 동안 고객이 NAT를 고치면 두 로컬 설정 모두 그럴듯해 보이고 터널은 여전히 실패한다.

라벨이 결코 말해 주지 않는 것

소프트웨어 유지보수, 자격 증명 교체, 승인된 설정 백업, 복구 경로를 실제 계약에 넣어라. 공동 책임 모델, 예컨대 AWS가 공개하는 모델 은 서비스 사이에서 분담이 얼마나 움직일 수 있는지 보여 주며, 예시일 뿐 공급자 약관의 정의가 아니다. 반관리형이라는 말에서 무언가를 추론하는 것이 바로 갱신 대화에서 빈틈이 드러나는 방식이다.

범위에는 정상 운영자와 각 의존성의 에스컬레이션 경로를 적어야 한다. 견적이 그 서비스를 무엇이라 부르든, 실제로 뜻하는 것은 그 목록이다.

관련 글