이 문서에서는 Compute Engine 리전 뷰 API 엔드포인트를 통해 전역 리소스를 쿼리할 때 일관성, 복제 지연, 할당량 측정항목 동작 문제를 해결하는 방법을 설명합니다. 리전화된 읽기 전용 엔드포인트에 대한 자세한 내용은 전역 리소스의 리전 뷰를 참조하세요.
복제 지연 또는 리소스 누락
리전 메타데이터 엔드포인트를 쿼리할 때 새로 생성된 전역 리소스 또는 최근에 업데이트된 메타데이터 필드가 리전 응답에 즉시 표시되지 않을 수 있습니다.
리전 뷰 API는 중앙 전역 데이터베이스의 리전 읽기 전용 복제본을 쿼리하여 읽기 요청을 처리합니다. 표준 전역 엔드포인트를 사용하여 기본 전역 리소스에 적용된 업데이트는 이러한 리전 복제본에 비동기적으로 복제됩니다.
이 비동기 복제는 리전 뷰가 최종적으로 일관성 을 갖는다는 것을 의미합니다. 중앙 전역 데이터베이스에서 리전 복제본까지의 P99 복제 지연 시간은 일반적으로 60초 미만입니다.
해결 방법: 이 문제를 해결하려면 다음 중 하나를 시도해 보세요.
- 복제 대기: 대부분의 복제 업데이트는 60 초 이내에 완료됩니다. 자동화된 스크립트 또는 클라이언트 워크로드가 새로 생성된 리소스를 쿼리하는 경우 클라이언트가 지수 백오프를 사용하여 재시도 로직을 구현해야 합니다.
- 투명한 대체 이해: 리전 복제본을 타겟팅하는 특정 리소스 ID에 대한 명시적
GET요청으로 인해 캐시 부적중이 발생하는 경우 Compute Engine은 동일한 트랜잭션 내에서 중앙 전역 데이터베이스에 대한 대체 읽기를 자동으로 시도합니다. - 강한 일관성을 위해 전역 엔드포인트 쿼리: 배포
파이프라인에 복제 지연 없이 즉시 쓰기 후 읽기 일관성이 엄격하게 필요한 경우
리전 뷰 대신 표준 전역 엔드포인트를 직접 쿼리합니다. 예를 들어
projects.get,images.get또는images.list를 쿼리합니다.
404 Not Found 응답
특정 이미지 또는 프로젝트 뷰를 가져오려고 시도할 때 404 Not Found HTTP 상태 코드가 표시될 수 있습니다.
404 Not Found 오류는 다음과 같은 이유로 발생할 수 있습니다.
- 중앙 전역 데이터베이스에 대상 리소스가 없습니다.
- 대상 리소스가 최근 몇 초 이내에 생성되었고 리전 복제본으로의 복제가 완료되지 않았으며 중앙 전역 데이터베이스에 대한 투명한 대체 요청이 시간 초과되었거나 실패했습니다.
- 요청 URL에 잘못된 리전 매개변수 또는 프로젝트 ID를 지정했습니다.
해결 방법: 이 문제를 해결하려면 다음을 시도해 보세요.
- 표준
전역
describe또는list요청(예:gcloud compute images describe IMAGE_NAME또는gcloud compute project-info describe --project=PROJECT_ID)을 실행하여 요청된 리소스가 전역적으로 존재하는지 확인합니다. - 요청 URL 경로를 검사하여 대상
REGION문자열이 유효하고 활성 상태인지 확인합니다. - 리소스가 새로 생성된 경우 60초 후에 요청을 재시도합니다.
projectViews 응답에 quota 배열 누락
리전 projectViews.get 엔드포인트를 사용하여 compute.Project 리소스를 쿼리할 때 quota 배열이 응답에서 제외됩니다.
리전 장애 격리 및 고가용성을 유지하기 위해 projectViews 엔드포인트는 리전 복제본에서만 엄격하게 읽습니다. 영역 간 팬아웃을 수행하여 영역 전체의 할당량 사용량을 수집하지 않으므로 quota 배열이 제외됩니다.
해결 방법: 이 문제를 해결하려면 다음 단계를 수행합니다.
- 애플리케이션이 리전
projectViews엔드포인트에서 반환된 응답에quota배열을 예상하지 않도록 합니다. - 모든
리전 및 영역에서 정확한 할당량 구성 및 실시간 사용량 측정항목을 가져오려면 전역
projects.get엔드포인트를 쿼리하거나 Cloud Monitoring에서 Compute Engine API 할당량 측정항목을 모니터링합니다.
다음 단계
- 복원력 있는 제어 영역 읽기를 위해 리전 뷰 사용을 검토합니다.
- 고가용성을 위해 전역 리소스에 리전별로 액세스하는 방법을 알아봅니다.