< Bucket / Object Operations and Truncated Exponential Backoff >
The following operations are strongly consistent
다음 작업은 강력하게 일관성이 있음
- 강력하게 일관된 작업은 Cloud Storage에서 작업을 수행하고 성공 응답을 받으면 Google이 서비스를 제공하는
모든 위치에서 객체를 즉시 다운로드 및 메타데이터 작업에 사용할 수 있음 - Google Cloud Storage의 다음 작업은 쓰기 후 읽기, 메타데이터 업데이트 후 읽기, 삭제 후 읽기, 버킷 목록, 개체 목록,
리소스에 대한 액세스 권한 부여와 같이 매우 일관
The following operations are eventually consistent
다음 작업은 최종 일관성이 있음
- 다음 작업은 최종적으로 일관성이 있으며 개체에서 액세스를 취소하고 공개적으로 읽을 수 있는 캐시된 개체에 액세스
- 액세스 취소는 변경 사항이 적용되는 데 최대 1분이 걸릴 수 있으므로 취소가 발생할 때까지 작업이 일관되지 않음
- 공개적으로 읽을 수 있는 캐시된 개체는 개체가 업데이트되거나 삭제될 때 캐시에 있는 경우 최종 일관성이 유지
- 캐시의 개체가 업데이트되거나 삭제되면 캐시 수명이 만료될 때까지 작업이 적용되지 않음
Use the following request endpoints
다음 요청 엔드포인트 사용
- 수행 중인 작업과 애플리케이션 요구사항에 따라 3개의 요청 엔드포인트(URI)를 통해 Cloud Storage에 액세스 가능
- XML API를 사용하면 나열된 두 개의 URI를 사용할 수 있고 JSON API를 사용하면 나열된 URI를 사용 가능
- URI는 SSL(Secure Sockets Layer) 암호화를 지원하므로 HTTP 또는 HTTPS를 사용 가능
- OAuth 2.0을 사용하여 Cloud Storage API에 인증하는 경우 HTTPS를 사용해야 함 - CNAME 리디렉션은 고유 도메인의 URI를 사용하여 Cloud Storage URI를 공개하지 않고
Cloud Storage의 리소스에 액세스할 수 있게 해주는 특수 DNS 레코드
- 예를 들어 travel-maps.example.com CNAME c.storage.googleapis.com을 게시한 경우
다음 http://travel-maps.example.com/paris.jpg URI를 사용하여 객체에 액세스 가능
- CNAME 리디렉션은 HTTP만 사용 가능 - 인증된 브라우저 다운로드를 사용하여 리소스에 액세스할 수도 있음
- Google 계정에 로그인하고 데이터를 읽을 수 있는 권한이 부여된 경우 브라우저를 통해 데이터를 다운로드하여
인증된 브라우저 다운로드는 Google 계정 기반 ACL과 함께 쿠키 기반 Google 계정 인증을 사용
- 쿠키 기반 인증을 사용하여 객체를 다운로드하려면 https://storage.cloud.google.com/<bucket>/<oject> URI를
사용하며 HTTPS만 지원 - 콘텐츠 기반 부하 분산 구성을 수정하여 정적 콘텐츠 요청을 Cloud Storage 버킷으로 라우팅할 수 있음
- /static으로 시작하는 URI 경로에 대한 요청은 스토리지 버킷으로 보낼 수 있고
다른 모든 요청은 가상 머신 인스턴스로 보낼 수 있음
- 콘텐츠 기반 로드 밸런싱을 사용하여 특정 리전의 버킷으로 라우팅할 수도 있음
예를 들어 /static/eu로 시작하는 경로에 대한 요청은 EU 지역의 버킷으로 라우팅될 수 있음
Composite objects and parallel uploads
복합 개체 및 병렬 업로드
- 추가 개체 데이터를 전송하지 않고 최대 32개의 기존 개체를 새 개체로 구성할 수 있음
- 객체 합성은 객체를 병렬로 업로드하는 데 사용 가능
- 데이터를 여러 청크로 나누고, 각 청크를 별개의 객체에 병렬로 업로드하고, 최종 객체를 구성하고,
임시 객체를 삭제하기만 하면 됨
- 병렬 업로드에서는 객체를 여러 조각으로 나누고 조각을 임시 위치에 동시에 업로드하고
이러한 임시 조각에서 원본 객체를 구성
- 한 가지 사용 사례는 데이터를 청크로 나누고 별도로 업로드하여 사용 가능한 대역폭을 완전히 사용하는 것
- 다른 하나는 빅 데이터 시나리오에서 단일 명령으로 많은 파일을 병렬로 복사하는 것
Design your application to handle network failures with truncated exponential backoff
잘린 지수 백오프로 네트워크 오류를 처리하도록 애플리케이션 설계
- 잘린 지수 백오프는 클라이언트가 요청 간 지연을 늘리면서
실패한 요청을 주기적으로 재시도하는 네트워크 응용 프로그램의 표준 오류 처리 전략 - 클라이언트는 데이터 또는 메타데이터의 업로드 및 다운로드를 포함하여
HTTP 5xx 및 429 응답 코드를 반환하는 Cloud Storage에 대한 모든 요청에 대해 잘린 지수 백오프를 사용해야 함 - Cloud Storage XML API 또는 JSON API를 직접 사용하는 클라이언트 애플리케이션을 빌드하거나 클라이언트 라이브러리를 통해 Cloud Storage에 액세스하거나 gsutil 명령줄 도구를 사용하는 경우 잘린 지수 백오프의 작동 방식을 이해하는 것이 중요
- Cloud Console은 사용자를 대신하여 Cloud Storage에 요청을 보내고 필요한 백오프를 처리
- 예제는 분산 서비스 및 기타 원격 끝점을 재시도할 때 Python 재시도 라이브러리에 대한 백오프 구현을 보여줌