Incident Library

IL-0520 cloud.gov · 2016-07-05databaseobservability

logs.cloud.gov 로그인이 리디렉션 루프에 빠지고 로그 검색 서비스가 하루 넘게 멈춤

미국 동부 시각 2016년 7월 5일 오후 7시 12분, cloud.gov 의 로그 검색 서비스 logs.cloud.gov 에 로그인 리디렉션 루프가 생겨 사용자가 로그인하지 못했다. 세션 관리 시스템이 사용자 세션을 Redis 에 저장하지 못한 것이 직접 원인이었다. Redis 는 Elasticsearch 클러스터로 데이터를 넘기지 못해 용량이 가득 찬 상태였고, Redis 의 용량은 가용 메모리의 86% 대신 1GB 로 하드코딩돼 있었다. Elasticsearch 클러스터는 메모리 한도가 모자랐고, 하드닝 스크립트를 적용하면서 들어간 설정 오류도 있었다.

팀은 Elasticsearch 설정의 메모리 문제와 하드닝 문제를 고쳐 클러스터를 다시 배포했다. 처음에는 하드닝이 /tmp 를 noexec 로 바꿔 둔 탓에 JVM 이 jar 를 JIT 컴파일하지 못했고, 클러스터가 다시 시작하지 못했다. 그 뒤에는 디스크 암호화 단계 때문에 재배포가 오래 걸렸다. 클러스터가 천천히 재배포되는 동안 팀은 cg-deploy-logsearch 를 고쳐 Redis 를 훨씬 큰 메모리 인스턴스로 옮기고 로그를 계속 받아 두게 했다. 7월 6일 오후 8시에 클러스터 배포가 끝났고, 팀이 Kibana 인스턴스를 다시 배포하고 로그를 확인한 뒤 서비스가 복구됐다.

심각도
–
영향 범위
Users could not log in to the logs.cloud.gov log search service from 7:12pm Eastern Time on 5 July 2016 until it was restored after 8:00pm Eastern Time on 6 July
영향 사용자
–
지역
–
감지까지
–
복구까지
–

증상

미국 동부 시각 2016년 7월 5일 오후 7시 12분, cloud.gov 의 로그 검색 서비스 logs.cloud.gov 에서 로그인 리디렉션 루프가 발견됐다. 사용자는 서비스에 로그인할 수 없었다.

로그인 세션을 관리하는 시스템이 사용자 세션을 Redis 데이터베이스에 저장하지 못했다. 세션이 저장되지 않아 로그인한 사용자가 계속 로그인 과정으로 되돌아가는 리디렉션 루프가 생겼다.

조사해 보니 Redis 는 용량이 가득 차 있었다. Redis 는 Elasticsearch 클러스터로 데이터를 넘기지 못해 데이터가 쌓여 있었고, Elasticsearch 클러스터도 메모리 한도가 모자라 실패하고 있었다. Redis 의 용량은 가용 메모리의 86% 가 아니라 1GB 로 하드코딩돼 있었다.

엔지니어들이 Elasticsearch 클러스터 설정을 고쳐 다시 배포했지만 클러스터는 다시 시작하지 못했다. 하드닝 과정에서 /tmp 디렉터리가 noexec 로 설정돼 JVM 이 jar 를 JIT 컴파일하지 못했기 때문이다. 이 문제를 해결해 인스턴스를 다시 시작한 뒤에도 디스크 암호화 때문에 복구 시간이 더 길어졌다.

증상 서비스 중단쓰기 거부

원인

촉발
–

감지

–

조치

후속 조치

교훈

–

출처

관련 사례

내 클러스터에도 있는지 확인하기

kubegap 은 Claude Code 나 Codex 에서 쿠버네티스 클러스터를 읽기만 하며 이 사례와 같은 상태를 점검합니다. 이 사례의 구성 요소: 인메모리 캐시, Elasticsearch 와 OpenSearch. 점검 항목의 근거는 이 사례 같은 공개 보고서입니다.

AI 도구와 스크립트용

API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.