8월 10일에 발생한 접속 문제에 대한 사후 분석
한국시간 8월 10일 16:08부터 19:40, 8월 11일 4:03부터 4:19까지(UTC 기준 8월 10일 7:08 ~ 10:40, 19:03 ~ 19:19) RubyGems.org에 간헐적인 접속 장애가 있었습니다. 주로 gem 다운로드에 지장이 있었고 gem push에도 영향이 있었습니다. 이 글은 이 문제에 대한 설명과 미래에 이런 문제를 예방하기 위해 어떻게 할지 설명하는데 목적이 있습니다.
모든 gem은 아마존 S3라고 알려진 Simple Storage Service에 저장됩니다. 8월 10일에 AWS의 S3를 포함한 버지니아 지역 서비스 중단이 예상보다 길어졌습니다. S3에서 gem(gemspecs 포함) 파일을 가져오거나 새로운 gem/gemspec을 저장하는데 있어서 간헐적인 실패가 있었습니다. 우리의 모니터링에 의하면 이 기간 동안 4%의 다운로드 요청 실패가 있었습니다.
gem 다운로드는 모두 우리의 CDN 파트너인 Fastly를 거치게 되며, 세계적으로 사용자와 가까운 곳에 gem을 캐시 해둡니다. 캐시는 정말로 유용했는데, 88%의 요청이 캐시 되어 S3에 직접 요청하지 않았습니다. 이는 이 기간 동안 전체 요청의 8%가 S3에 성공적으로 접근했음을 의미합니다.
그렇다 해도 우리의 모든 파일이 하나의 지역에 저장돼 있는 것은 여전히 이상적이지 않습니다. 우리는 모든 파일을 다른 지역에 복제하려는 계획을 가지고 있습니다. 이는 재앙으로부터 복구하는데 필요한 백업을 지원하면서 만약 첫 번째 지역 접속이 안되더라도 두 번째 지역에서 다운로드를 처리할 수 있게 합니다.
이번 주에 있었던 요청 처리 장애에 사과드리며, 미래를 위한 개선의 노력을 하겠습니다.