[추석 서버 정상화 ①] 2025년 가을부터 이어진 사이트 접속 문제 안내

최근 편집: 2026년 10월 3일 (토) 22:47
.
노란 택시와 버스, 트럭이 빈틈없이 늘어서 꼼짝 못 하는 뉴욕 도심의 도로.
© joiseyshowaa, CC BY-SA 2.0

안녕하세요, 페미위키 서버 관리 등을 맡고 있는 개발팀 낙엽1124입니다. 먼저 2025년 가을부터 1년 가까이 페미위키가 자주 느려지거나 멈췄는데도 오랫동안 바로잡지 못하여 그동안 불편을 겪으신 분들께 사과 말씀 드립니다. 이번 추석 연휴에야 드디어 제대로 손을 썼기에 무슨 일이 있었고 무엇이 바뀌었는지 글로 남깁니다.

문제 기록

기록을 시작한 이후로는 2025년 9월부터 로그인과 편집이 며칠씩 안 되거나 사이트가 아예 열리지 않는 일이 시작된 것으로 보입니다. 가장 길었던 것은 2025년 12월로, 91시간 동안 사이트가 열리지 않았습니다.

2025
6월
100
7월
99.95
8월
99.07
9월
93.65
10월
98.94
11월
83.51
12월
82.91
2026
1월
99.99
2월
98.68
3월
99.15
4월
98.93
5월
99.99
6월
99.21
7월
96.27
8월
75.39
특수:빈문서 요청이 성공한 비율(%)을 달마다 칠한 것입니다. 특수:빈문서는 캐시를 거치지 않고 매번 서버가 새로 만드는 문서라 로그인 사용자가 편집할 때처럼 서버가 제대로 작동하고 있는지를 보여 줍니다. 초록은 99.9% 이상, 빨강은 95% 미만이고, 노랑과 주황은 그 사이입니다. 98%만 되어도 한 달에 열네 시간쯤은 편집이 어려웠다는 뜻입니다. 2025년 가을과 겨울, 그리고 올해 8월에 빨간 달이 몰려 있습니다. 2026년 9월 숫자는 10월 초에 모입니다. (이 데이터를 어떻게 모았는지는 다른 글에서 따로 소개하겠습니다)

크롤러

먼지를 일으키며 누렇게 익은 밀밭을 베어 들어오는 초록색 콤바인.
© Dan Kollmann, CC BY-SA 3.0

근래 AI 언어 모델 학습에 쓸 글을 모으는 크롤러가 늘면서 글이 많고 자유 라이선스인 위키들이 몸살을 앓고 있습니다. 위키미디어 재단은 2025년 4월, 2024년 초부터 멀티미디어 대역폭이 50% 늘었고 대부분이 AI 모델에 넣을 이미지를 긁어 가는 봇 때문이며, 가장 비용이 많이 드는 요청의 65% 이상이 봇이라고 밝혔습니다.[1]

페미위키가 맞은 트래픽 또한 대부분이 크롤러로 추정됩니다. 크롤러들은 로그인하지 않은 상태로 검색, 차이, 옛 판, 역사(이하 "무거운 요청")를 대량으로 요청했습니다. 평소 시간당 1,300건 정도이던 무거운 요청이 9월 23일에는 8,000건 정도로 늘었습니다.

어두운 골목에 저마다 다른 베네치아 가면을 쓴 사람들이 줄지어 서 있는 모습.
© Renciapolous, CC BY-SA 4.0

또 요청이 수많은 주소로 흩어져 있어 대역마다 거는 제한에는 거의 걸리지 않았습니다. 9월 25일 새벽 한 시간 동안의 무거운 요청 7,288건은 /24 대역 726곳에서 왔고 가장 많은 대역도 6% 정도였습니다.[2] 요청 500건을 뽑아 보니 모두 아이폰이나 안드로이드 브라우저라고 되어 있었습니다. 다른 서비스를 운영하시는 분이 말해 주셨는데, 요즘은 가정용 인터넷 주소를 빌려주는 업체가 있어서 아무리 데이터센터 주소를 막고 오래된 브라우저 이름을 막아도 주소를 바꿔 가며 다시 온다고 합니다.

서버와 요금

페미위키 서버는 CPU 2코어로, 워커를 16개로 늘린 뒤 무거운 요청이 10분에 1,610건일 때는 버텼고 1,955건일 때는 멈췄습니다.

또 이 서버는 CPU를 기준치 20%보다 많이 쓰면 CPU 크레딧을 소모하는 종류이고, 크레딧이 바닥나도 느려지지 않도록 초과분을 요금으로 내게 설정해 두었습니다. 그래서 2026년 8월에는 CPU 크레딧 초과 요금이 38.02달러로 그달 요금의 30%가 되었습니다.[3] 페미위키의 AWS 요금은 테크숩을 통해 받는 비영리 크레딧으로 내 왔는데 1년 치로 받은 크레딧이 2026년 4월에 바닥나 4월부터 8월까지 1,054,121원을 실제로 냈습니다.[4]

그동안의 대응

사실 저희가 이상한 요청을 서버 앞에서 걸러 내기 시작한 것은 오래전 일입니다. 2020년 말 URL에 알 수 없는 문자를 섞은 요청이 쏟아졌을 때 개발팀 김지현 님은 이런 요청을 웹 서버(Caddy)에서 바로 돌려보내는 규칙을 처음 넣었습니다.[5] 김지현 님은 또 사이트가 살아 있는지 살피는 검사도 만들고,[6] 한 번 읽힌 문서를 웹 서버에 담아 두는 캐시도 구상했습니다. (구현은 2021년 4월 제가 이어받아 마쳤습니다)[7]

2025년에는 다음과 같이 대응했지만 사이트는 계속 끊겼습니다.

  • 여름 - 차별없는세상 님이 의심스러운 방문자에게 reCAPTCHA를 풀게 하는 확장 기능 FemiwikiCrawlingBlocker를 만들었으나[8] 기대한 대로 작동하지 않아 9월부터 껐습니다.[9]
  • 가을 - 로그인과 편집이 며칠씩 안 될 때마다 의심되는 주소 대역을 찾아 막았습니다.
  • 11월 - Lockdown 확장 기능으로 로그인하지 않은 방문자가 문서 역사와 몇몇 특수 문서를 보지 못하게 잠갔습니다. 크롤러가 링크를 따라 무거운 페이지까지 긁어 가는 것을 줄이려는 것이었으나 회고해보면 효용이 거의 없었습니다.[10]

'페이지가 너무 늦게 넘어간다', '끊긴다'는 제보도 잦아졌고, pleasesica 님은 올해 4월 새로 오신 분들과 위키를 배우는 모임을 앞두고 접속이 끊기면 속상할 것 같다며 점검을 부탁하는 메시지를 보내 주시기도 했습니다.

저는 원인을 제대로 보지 못한 채 AI 크롤러일 거라고 짐작만 하다가, 제가 마침 시간을 길게 낼 수 있는 추석 연휴까지 미뤄 왔습니다.

변경 내용

사이트 전체 상한 - 적용됨

로그인하지 않은 무거운 요청을 사이트 전체에서 한데 세어, 상한을 넘으면 서버까지 보내지 않고 바로 거절합니다.[11] 10분에 600건으로 시작해서 올렸다 내렸다 한 끝에 1,600건으로 정했습니다.[12] 이 위에 크롤러를 종류별로 따로 세는 규칙을 더해 가고 있습니다.

문서 캐시 - 해결됨

캐시가 버그 때문에 한 번에 문서 17개밖에 담지 못하고 있었습니다. 9월 25일 사고 때 문서 읽기 2,453건 중 캐시에서 나간 것은 749건뿐이었습니다.[13]

바쁠 때도 읽기 - 적용됨

PHP 워커가 모두 바빠 보일 때도 문서 읽기는 바로 오류로 돌려보내지 않고 처리하여 보게 했습니다.[14] 워커 수도 10개에서 16개로 늘렸습니다.[15]

알림 - 해결됨

Grafana 쪽 알림은 이제 성공한 응답이 줄면 30분마다 다시 울리고,[16] 요청이 5분 넘게 밀려 있다면 울립니다.[17]

역사 잠금 - 해제됨

다른 대안들로 해결되었으므로 11월에 걸었던 Lockdown 잠금을 9월 26일에 풀었습니다.[18] 9월 27일부터는 역사를 따로 세어 로그인하지 않아도 볼 수 있습니다.[19]

로그인하지 않은 사용자의 거절 - 남아 있음

크롤러가 몰리는 동안에는 로그인하지 않은 사용자가 차이나 옛 판을 보려다 아래 화면을 볼 수 있습니다. 이 화면을 자주 보신다면 로그인해 주세요.

동작 중지
지금 이런 요청이 너무 많이 들어와서 이 요청은 받지 못했습니다. 이 한도는 로그인하지 않은 방문자가 함께 나눠 쓰기 때문에, 직접 아무것도 하지 않았는데도 이 화면이 보일 수 있습니다. 문서 역사, 차이, 옛 판, 검색에만 걸리고 문서를 읽는 데에는 걸리지 않습니다.
거절당했을 때 보이는 화면입니다.

맺음말

사이트가 통째로 멈추는 일은 막았지만, 로그인하지 않은 사용자가 거절당하는 문제가 남아 있고 2025년 12월에 91시간 멈춘 사고는 이제 원인을 찾을 수 없게 되었습니다. 그러나 앞으로는 알림이 제때 오고 기록도 양과 가짓수를 늘렸기에 같은 일이 생기면 원인을 보고 대처할 수 있게 되었습니다.

제보해 주시고 여러 방법을 함께 고민해 봐 주신 분들께 감사드립니다.

페미위키의 서버 설정과 코드는 모두 GitHub에 공개되어 있습니다.

링크

출처