옛 중계 서버를 없애기로 했는데 무엇이 그것을 거쳐 가는지 아는 사람이 없었다. 오래 쓰이는 동안 하나씩 붙어서 목록을 만든 적이 없는 상태였다.
Table of contents
Open Table of contents
상황 — 무엇이 지나가는지 모르는 서버
모르는 채로 없애면 무엇이 안 되는지도 모르게 된다. 그래서 없애는 작업보다 무엇이 지나가는지를 세는 일이 먼저였다.
먼저 그 서버의 설정 파일을 grep 해서 대상으로 적힌 것을 전부 뽑았다. 이것이 출발점이지만 그것만으로는 부족했다.
설정과 실제 트래픽
설정에 적혀 있어도 실제로는 안 쓰이는 것이 있고 반대로 설정 없이도 지나가는 것이 있었다. 그래서 접근 로그에서도 grep 으로 목록을 뽑아 설정 목록과 diff 를 떠 봤다.
두 목록이 꽤 달랐는데 설정에만 있는 것이 여럿이고 트래픽에만 있는 것도 몇 개 있었다. 두 목록을 합친 것이 실제 대상이었다.
한 달치를 본다
트래픽을 볼 때 처음에는 하루치만 봤는데 그것으로는 부족하다는 것을 곧 알았다. 매일 도는 것만 잡히고 가끔 도는 것은 안 잡힌다.
그래서 한 달치를 놓고 봤더니 월말에만 도는 것이 두 개 나왔다. 주기가 긴 것은 관측 기간이 그 주기보다 길어야 잡힌다.
보내는 쪽 찾기
무엇으로 나가는지만이 아니라 어느 IP 에서 들어오는지도 찾아야 했다. 우리가 아는 곳 말고 다른 곳에서 이 서버를 쓰고 있을 수 있기 때문이다.
들어오는 IP 를 모아 보니 모르는 곳이 하나 있었고 확인해 보니 다른 팀에서 쓰던 것이었다. 이쪽을 안 찾았으면 그 팀이 나중에 갑자기 안 된다고 했을 것이다.
하나씩 옮기고 멈춰 보기
목록이 나온 뒤에는 하나씩 옮기고 그 대상이 더 안 오는지 확인한 뒤에 다음으로 갔다. 한꺼번에 옮기면 무엇이 문제인지 갈리지 않는다.
마지막까지 옮겨지지 않는 것 두 개에는 기한을 정했는데 기한이 없으면 그것 때문에 서버가 계속 남는다. 그리고 지우기 전에 며칠 동안 멈춰 놓고 봤더니 목록에 없던 것이 하나 더 나왔다.
정리
- 거쳐 가는 지점을 없애려면 그 뒤를 전부 알아야 한다
- 설정에 있는 것과 실제로 쓰이는 것이 다르다
- 두 목록을 합친 것이 실제 대상이다
- 하루가 아니라 한 달치를 본다
- 주기가 긴 것은 관측 기간이 더 길어야 잡힌다
- 대상만이 아니라 보내는 쪽도 찾는다
- 하나씩 옮기고 확인한 뒤 다음으로 간다
- 지우기 전에 멈춰 보면 목록에 없던 것이 나온다