Vault 서버 일시적 과부하
Vault 서버 일시적 과부하 (Vault server temporarily overloaded)
Vault Enterprise에는 적응형 과부하 보호 기능이 포함되어 있습니다. 어떤 서버 리소스가 용량에 도달하면, Vault Enterprise는 서버가 안정적이고 사용 가능한 상태를 유지하기 위해 일부 HTTP 클라이언트 요청을 거부할 수 있습니다. 이 문서는 클라이언트 코드에서 이런 요청을 처리할 때 고려할 사항을 설명합니다.
출처: 문서
본문
Vault는 요청을 제때 처리할 용량이 부족해 요청이 거부되었음을 알리기 위해 503 - Service Unavailable 응답을 반환합니다.
Error authenticating: Error making API request.
URL: PUT http://127.0.0.1:8200/v1/auth/userpass/login/foo
Code: 503. Errors:
* failed to create token: failed to persist accessor index entry: overloaded, try again later: internal error
503 - Service Unavailable은 재시도 가능한 HTTP 오류입니다.
Vault 클라이언트는 적절한 백오프(backoff) 전략으로 요청을 재시도해야 합니다. 재시도할 때 다음을 지켜야 합니다.
- 재시도 사이의 대기 시간을 점점 늘립니다.
- 재시도 사이의 대기 시간을 무작위화해서 여러 클라이언트가 동기화되어 동시에 모두 재시도하지 않도록 합니다. 흔히 "지터(jitter)"를 추가한다고 부릅니다.
- 총 재시도 횟수를 제한해서, 장애가 지속되는 동안 점점 더 많은 클라이언트가 재시도를 추가함에 따라 요청량이 계속 늘어나지 않도록 합니다.
참고: 429 - Too Many Requests는 보통 특정 클라이언트가 너무 많은 요청을 내고 있음을 나타내는 데 사용됩니다. 반면 503 - Service Unavailable은 서버가 과도한 부하를 받고 있으며, 이는 거부되는 특정 클라이언트의 행동과는 관계가 없을 가능성이 높음을 나타냅니다.
요청 거부에 대한 자세한 내용은 적응형 과부하 보호 개요를 참조하세요.
API 패키지 (API Package)
Go로 작성되어 Vault의 API 패키지를 사용하는 클라이언트의 경우, 재시도는 기본적으로 처리되므로 추가 작업이 필요 없습니다.