리전 엔드포인트로 데이터 지역 구성

이 페이지에서는 리전 엔드포인트를 사용하도록 Firestore 클라이언트 라이브러리를 구성하는 방법을 설명합니다.

Firestore 클라이언트 라이브러리를 사용할 때는 다음 엔드포인트 중 하나를 사용할 수 있습니다.

  • 전역 엔드포인트: 기본적으로 Firestore 클라이언트 라이브러리는 firestore.googleapis.com이라는 전역 서비스 엔드포인트에 API 요청을 전송합니다. 전역 서비스 엔드포인트는 요청을 데이터베이스로 라우팅합니다. 라우팅 중에는 요청이 데이터베이스 위치와 다른 위치의 리전별 서비스 엔드포인트를 통과할 수 있습니다.

  • 리전 엔드포인트: 리전 엔드포인트는 데이터가 특정 리전에 저장 및 처리되도록 리전 제한을 적용합니다. 서비스 엔드포인트가 데이터베이스와 동일한 리전에서 앱의 Firestore 요청을 처리하도록 보장하려면 클라이언트 라이브러리에서 리전 엔드포인트를 지정합니다.

리전 엔드포인트 설정

다음 예시에서는 Firestore 클라이언트를 초기화할 때 리전 엔드포인트를 설정하는 방법을 보여줍니다. 데이터가 있는 위치가 아닌 다른 리전 엔드포인트를 설정하면 PermissionDeniedError 오류가 발생할 수 있습니다.

Java

Firestore에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.


import com.google.auth.oauth2.GoogleCredentials;
import com.google.cloud.firestore.Firestore;
import com.google.cloud.firestore.FirestoreOptions;

/**
 * Demonstrate how to set a regional endpoint.
 */
public class RegionalEndpointSnippets {

  /**
   * Create a client with a regional endpoint.
   **/
  public Firestore regionalEndpoint(String projectId, String endpoint) throws Exception {
    FirestoreOptions firestoreOptions =
        FirestoreOptions.newBuilder()
            .setProjectId(projectId)
            .setCredentials(GoogleCredentials.getApplicationDefault())
            // set endpoint like nam5-firestore.googleapis.com:443
            .setHost(endpoint)
            .build();
    Firestore dbWithEndpoint = firestoreOptions.getService();

    return dbWithEndpoint;
  }

}

Python

Firestore에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

ENDPOINT = "nam5-firestore.googleapis.com"
client_options = ClientOptions(api_endpoint=ENDPOINT)
db = firestore.Client(client_options=client_options)

cities_query = db.collection("cities").limit(2).get()
for r in cities_query:
    print(r)

리전 엔드포인트의 시맨틱스

Firestore는 리전 및 멀티 리전 위치 모두에 대한 리전 엔드포인트를 지원합니다.

리전 엔드포인트를 정의하려면 다음 형식을 사용합니다.

자바

  REGION_NAME-firestore.googleapis.com:443

포트 번호가 엔드포인트와 함께 정의되었는지 확인합니다.

Python

  REGION_NAME-firestore.googleapis.com

Go

  REGION_NAME-firestore.googleapis.com:443

포트 번호가 엔드포인트와 함께 정의되었는지 확인합니다.

REGION_NAME을 리전 이름 또는 멀티 리전 호스트 이름으로 바꿉니다.

일부 호스트 이름 예시는 다음과 같습니다.

  • eur3-firestore.googleapis.com
  • nam5-firestore.googleapis.com
  • europe-west6-firestore.googleapis.com
  • asia-northeast2-firestore.googleapis.com

멀티 리전 및 리전 호스트 이름의 전체 목록은 Firestore 위치를 참조하세요.

다음 단계