한국어
  • 사후 분석

사후 분석: Logto 인증 서비스 중단

2025년 6월 12일, `logto.app`에서 제공되는 Logto 서비스가 요청 라우팅에 영향을 미치는 Cloudflare 장애로 인해 잠시 중단되었습니다. 이 문제는 신속하게 해결되었으며, 데이터 보안이나 핵심 서비스에는 영향을 미치지 않았습니다.

Gao
Gao
Founder

사용자 인증에 몇 주를 낭비하지 마세요
Logto로 더 빠르게 안전한 앱을 출시하세요. 몇 분 만에 사용자 인증을 통합하고 핵심 제품에 집중하세요.
시작하기
Product screenshot

사고 요약

2025년 6월 12일 18:07부터 18:58 UTC 사이, logto.app 도메인(커스텀 도메인 포함)을 통해 Logto 서비스에 접속한 사용자들은 오류를 경험했습니다. 이 중단은 Cloudflare Workers KV의 장애로 인해 발생하였으며, 우리 라우팅 계층에 영향을 주었습니다. 직접 DNS 해상도를 사용하며 Cloudflare Workers에 의존하지 않는 Logto Cloud 서비스와 Logto Console은 영향을 받지 않았습니다. 서비스는 한 시간 이내에 복구되었으며, 데이터 보안에는 영향이 없었습니다.

타임라인 (UTC)

  • 18:07: logto.app를 통한 요청에 대해 Logto 인증 서비스 API가 500 오류를 반환하기 시작함.
  • 18:24: Azure 백엔드는 정상임을 확인하고, 문제 원인을 Cloudflare Workers와 KV로 국한함.
  • 18:48: Cloudflare가 공식적으로 Workers와 KV에 영향을 미치는 사고를 인정함.
  • 18:58: 캐싱 로직을 제거하여 임시 우회책을 배포, 서비스가 복구되었으나 약간의 성능 저하가 있을 수 있음.
  • 21:00: Cloudflare 서비스가 안정화된 후, 우아한 폴백이 적용된 캐시 로직을 다시 배포. 전체 성능이 복원되었고, 이제 서비스가 유사한 KV 장애에 대해 탄력적으로 동작함.

근본 원인

이 사고는 Cloudflare Workers KV 다운타임으로 인해 발생했습니다. 우리 Cloudflare Worker는 각 테넌트 또는 도메인 별로 올바른 Logto 지역에 요청을 라우팅하여 데이터 저장 위치와 준수를 보장합니다. 성능 개선을 위해 Worker는 KV를 사용해 이 지역 매핑 정보를 캐시합니다. KV가 이용 불가 상태가 되자 캐시 동작이 실패했고, Worker는 무캐시(no-cache) 동작으로 폴백하지 않고 에러를 발생시켰기 때문에 서비스 중단이 일어났습니다.

직접 DNS 해상도에 의존하고 라우팅에 Cloudflare Workers를 사용하지 않는 Logto Cloud 서비스와 Logto Console은 이 영향에서 벗어났습니다.

해결 및 개선 사항

  • Worker에서 캐싱 의존성을 제거하여 서비스를 복구함.
  • Cloudflare KV가 복구된 후, 무중단 폴백이 적용된 캐시 로직을 다시 배포함. 캐시를 사용할 수 없을 때에도 직접 라우팅으로 서비스를 중단 없이 계속 제공.
  • 인프라의 내구성과 가용성을 더욱 강화하기 위한 지속적 개선 작업 진행 중.

영향

  • logto.app을 통한 Logto 접근 사용자는 약 50분간 오류를 경험함.
  • 고객 데이터 손실 또는 유출은 없음.
  • Logto Cloud 서비스와 Logto Console은 완전히 정상적으로 운영됨.

다음 단계

  • 엣지 인프라 내에서의 오류 처리 방안 검토 및 개선 예정.
  • 단일 실패 지점을 방지하고자 상위 인프라에 여러 벤더 사용 가능성 검토 예정.

여러분의 인내와 지원에 감사드립니다.