테크레시피

소스헌트 “Go 모듈의 캐시 프록시 차단”

코드 호스팅 서비스인 소스헌트(SourceHut)가 깃(Git) 서버에서 코드를 가져오고 캐싱하는 프록시 고 모듈 미러(Go Module Mirror)가 네트워크 대역을 너무 많이 사용한다는 이유로 2023년 2월 24일부터 차단할 예정이라고 발표했다.

요청은 각각 ‘proxy.golang.org’ 캐시 프록시 고 모듈 미러를 통해 라우팅된다. 고 모듈 미러가 캐시를 획득하면 고 모듈 다운로드가 빨라져 발생하는 문제가 보고됐다. 고 모듈 미러 트래픽은 소스헌트 호스팅 서버(git.sr.ht) 아웃바운드 네트워크 트래픽 70%를 차지하며 단일 모듈에서 구글에서 하루 4GB 트래픽이 발생할 수 있다.

소스헌트에 따르면 고 모듈 미러를 차단하는 건 최종 수단이며 가능하면 피하고 싶다고 생각하고 2021년 2월 24일 고 개발팀에 과도한 트래픽 문제를 보고했다. 소스헌트와 고 개발팀은 과도한 트래픽을 생성하지 않고 요구 사항을 충족할 방법에 대해 논의했지만 결국 유효한 해결책이 나오지 않았고 고 모듈 미러가 과도한 트래픽을 계속 발생하는 상태가 계속됐다고 한다.

소스헌트 측은 2022년 5월 25일 일반 대상 해결책을 모았지만 결국 유효한 해결책을 찾지 못했다며 이 트래픽을 부담하는 비용은 더 이상이 구글에 허용되지 않으며 고 개발팀은 이 문제를 해결하려고 하지 않았다며 지원을 계속 정당화하려면 부하와 비용이 너무 높다고 밝혔다.

다른 고 모듈 유지보수도 고 모듈 미러에 의해 트래픽이 증가하고 있다고 보고한다. 한 개발자는 고 깃허브 페이지 이슈에서 고 모듈이 자신의 서버에서 데이터 4GB를 다운로드하고 고 모듈 하나를 500회 이상 요청했다며 캐시나 적어도 속도 제한을 요청하고 싶다며 서버 로그를 제시하며 지적하기도 했다.

구글 측 관계자는 고 개발팀이 이 문제를 해결하기 위해 노력 중이라고 밝혔다. Go 1.19는 플래그(-reuse)를 이용해 모듈을 다운로드하는 방법을 제공하고 있다며 ‘proxy.golang.org’ 서비스는 아직 이 수정 사항을 지원하지 않지만 2023년 중 반영 작업이 이뤄질 예정이라고 밝혔다.

또 소스헌트가 이 문제가 자신들에게 큰 문제라고 주장하지만 소스헌트에서만 고 모듈 백그라운드 업데이트를 비활성화하는 특별한 처리를 원하지 않는다고 말한다. 배포할 수 있을 때까지 백그라운드 업데이트를 비활성화하는 제안은 소스헌트와 현재 지연을 겪는 다른 모든 사용자에게 유효하다고 밝혔다. 관련 내용은 이곳에서 확인할 수 있다.

추천기사