장애 / 중단 / 구글 중단 / outage
2020월 12월 14일 구글의 서비스의 접속 에러 원인
2020월 12월 14일 47분 가량 구글 서비스가 접속이 안됐다. 그 원인에 대한 설명이 Google Cloud Status Dashboard 에 올라와서 번역을 해 봤다.
Google User ID Service 가 하는 일
- 모든 계정에 대해서 unique 한 id 를 가지고 있다.
- OAuth token 들과 cookie 들을 위한 접속자격 증명서(authentication credentials) 을 다룬다.
- 계정관련 data(account data) 를 분산된 db 에 저장한다. 이 분산db 는 update 의 동기화등을 위해서 Paxos protocol 을 사용한다.
- 보안을 위해서 이 서비스는 outdated data 를 발견하면 requests 를 거부한다.
구글은 서비스들에 할당(allocate) 된 다양한 resource 들의 몫(quota)을 관리하는데 자동화툴을 사용한다.
User ID Service 은 새로운 quota system 으로 migration 이 진행되고 있다.
"quota 제한"을 집행하는 것에 대한 "기존의 유예기간(grace period)"은 이 이슈가 발생하는 것을 지연시켰다. 그리고 그것은 결국 유예기간이 종료됐고, 자동화된 quota system 들이 User ID service에게 허락된 quota 를 감소시키는 것을 시작하게 했고 이 사건을 일으켰다.
기존의 safety checks 은 많은 의도되지 않은 quota 변경들을 막기 위해 존재하지만 "하나의 service 에 대한 0으로 보고된 부하(zero reported load for a single service)"의 시나리오에 대해서는 커버하지 않았다.
- Quota changes to large number of users: since only a single group was the target of the change
- Lowering quota below usage, since the reported usage was inaccurately being reported as zero
- Excessive quota reduction to storage systems, since no alert fired during the grace period
- Low quota, since the difference between usage and quota exceeded the protection limit.
결과적으로, account database 의 quota 가 줄어들었고 그것이 Paxos leader 가 writing 하는 것을 막았다. 바로 그 후에 read operations 의 많은 수가 outdated 가 되었고 이것이 authentication lookups에 대한 error를 만들었다.
댓글 없음:
댓글 쓰기