리전 및 멀티 리전 구성

이 페이지에서는 인스턴스 구성과 Spanner가 제공하는 두 가지 유형의 인스턴스 구성(리전 구성 및 멀티 리전 구성)에 대해 설명합니다. 리전 구성과 멀티 리전 구성의 차이 및 장단점도 설명합니다.

인스턴스 구성

인스턴스 구성은 해당 인스턴스에서 데이터베이스의 지리적 위치와 복제를 정의합니다. 인스턴스를 만들 때 인스턴스를 리전(모든 리소스가 단일 Google Cloud 리전에 있음) 또는 멀티 리전(리소스가 리전 두 곳 이상에 있음)으로 구성해야 합니다. 인스턴스 구성을 선택하여 구성할 리전 유형을 선택합니다. 이 선택으로 해당 인스턴스의 데이터가 저장되는 위치가 결정됩니다.

고정된 리전과 복제 토폴로지가 있는 인스턴스 구성을 기본 인스턴스 구성이라고 합니다. 커스텀 인스턴스 구성을 만들고 선택적 읽기 전용 복제본을 추가할 수 있습니다. 기본 인스턴스 구성의 복제 토폴로지는 변경할 수 없습니다. 자세한 내용은 읽기 전용 복제본을 참조하세요.

모든 인스턴스 구성에서 다른 리전 또는 멀티 리전 인스턴스 구성으로 인스턴스를 이동할 수 있습니다(예: us-centra1에서 nam3로 이동). 또한 추가 복제본이 있는 새 커스텀 인스턴스 구성을 만든 후 인스턴스를 새 커스텀 인스턴스 구성으로 이동할 수 있습니다. 예를 들어 인스턴스가 us-central1에 있고 읽기 전용 복제본 us-west1을 추가하려는 경우 us-central1을 기본 구성으로 사용하고 us-west1을 읽기 전용 복제본으로 추가한 새로운 커스텀 인스턴스 구성을 만들어야 합니다. 그런 다음 이 새로운 커스텀 인스턴스 구성으로 인스턴스를 이동합니다.

리전 구성

Google Cloud 서비스는 북미, 남미, 유럽, 아시아, 오스트레일리아의 여러 위치에서 제공됩니다. 사용자와 서비스가 단일 리전 내에 있으면 읽기 및 쓰기 지연 시간이 가장 짧은 리전 인스턴스 구성을 선택합니다.

기본 리전 구성에 관계없이 Cloud Spanner는 리전 내 다른 Google Cloud 영역마다 읽기-쓰기 복제본 세 개를 유지합니다. 각 읽기-쓰기 복제본에는 읽기-쓰기 및 읽기 전용 요청을 처리할 수 있는 운영 데이터베이스의 전체 복사본이 있습니다. Spanner는 여러 영역에서 복제본을 사용하므로 단일 영역에 장애가 발생해도 데이터베이스를 계속 사용할 수 있습니다.

사용 가능한 구성

Spanner는 다음과 같은 기본 리전 인스턴스 구성을 제공합니다.

기본 구성 이름 리전 설명 선택적 리전
미주
northamerica-northeast1 몬트리올 잎 아이콘 낮은 CO2
northamerica-northeast2 토론토 잎 아이콘 낮은 CO2
southamerica-east1 상파울루 잎 아이콘 낮은 CO2
southamerica-west1 산티아고 잎 아이콘 낮은 CO2
us-central1 아이오와 잎 아이콘 낮은 CO2 읽기 전용: asia-northeast1 1-OR
asia-south1 1-OR
europe-west2 1-OR
europe-west9 1-OR
us-east1 사우스캐롤라이나 읽기 전용: us-central1 1-OR
us-west1 1-OR
us-east4 북버지니아
us-east5 콜럼버스
us-south1 댈러스
us-west1 오리건 잎 아이콘 Low CO2
us-west2 로스앤젤레스
us-west3 솔트레이크시티
us-west4 라스베이거스
유럽
europe-central2 바르샤바
europe-north1 핀란드 잎 아이콘 낮은 CO2
europe-southwest1 마드리드
europe-west1 벨기에 잎 아이콘 낮은 CO2 읽기 전용: us-central1 1-OR
us-west1 1-OR
europe-west2 런던 잎 아이콘 낮은 CO2
europe-west3 프랑크푸르트 잎 아이콘 낮은 CO2
europe-west4 네덜란드
europe-west6 취리히 잎 아이콘 낮은 CO2
europe-west8 밀라노
europe-west9 파리 잎 아이콘 낮은 CO2
europe-west10 베를린
europe-west12 토리노
아시아 태평양
asia-east1 타이완
asia-east2 홍콩
asia-northeast1 도쿄
asia-northeast2 오사카
asia-northeast3 서울
asia-south1 뭄바이
asia-south2 델리
asia-southeast1 싱가포르
asia-southeast2 자카르타
australia-southeast1 시드니
australia-southeast2 멜버른
중동
me-central1 도하
me-central2 담맘
me-west1 텔아비브
아프리카
africa-south1 요하네스버그

복제

기본 리전 구성에는 읽기-쓰기 복제본 3개가 포함됩니다. 모든 Spanner 변형에는 다수의 응답 복제본으로 구성된 쓰기 쿼럼이 있어야 합니다. 쓰기 쿼럼은 리전 구성의 복제본 3개 중 2개로 구성됩니다. 리더 리전과 응답 복제본에 대한 자세한 내용은 복제를 참조하세요.

커스텀 리전 인스턴스 구성을 만들고 선택적 읽기 전용 복제본을 추가할 수 있습니다. 읽기 전용 복제본은 읽기를 확장하고 지연 시간이 짧은 비활성 읽기를 지원합니다. 이러한 읽기 전용 복제본은 쓰기 쿼럼에 포함되지 않으며 리전 인스턴스의 Spanner >= 99.99% SLA에 영향을 미치지 않습니다. 선택적 리전 열에 나열된 위치를 선택적 읽기 전용 복제본으로 추가할 수 있습니다. 선택한 읽기 전용 복제본 위치가 표시되지 않는 경우 새로운 선택적 읽기 전용 복제본 리전을 요청할 수 있습니다. 자세한 내용은 읽기 전용 복제본을 참조하세요.

리전 구성 성능 권장사항

최적의 성능을 위해 다음 권장사항을 따르세요.

  • 핫스팟 및 기타 성능 문제를 방지하는 스키마를 설계합니다.
  • 중요한 컴퓨팅 리소스를 Spanner 인스턴스와 같은 리전에 배치합니다.
  • 컴퓨팅 용량을 충분히 프로비저닝하여 우선순위가 높은 총 CPU 사용률을 65% 미만으로 유지합니다.
  • Spanner 노드당 처리량은 리전 구성 성능을 참조하세요.

멀티 리전 구성

Spanner 리전 구성은 단일 리전 내 여러 영역 사이에 데이터를 복제합니다. 하지만 다음과 같은 경우에는 리전 구성이 적합하지 않을 수 있습니다.

  • 애플리케이션에서 여러 지리적 위치의 데이터를 자주 읽어야 하는 경우(예를 들어 북미 및 아시아의 사용자 모두에게 데이터를 제공)
  • 쓰기와 읽기가 다른 위치에서 발생하는 경우(예를 들어 북미에는 대량의 쓰기 워크로드가 있고 유럽에는 대량의 읽기 워크로드가 있는 경우)

멀티 리전 구성은 다음을 수행할 수 있습니다.

  • 여러 리전에서 쓰기 제공
  • 리전 장애 발생 시 가용성 유지
  • 리전 구성보다 높은 가용성 및 SLA 제공

멀티 리전 구성을 사용하면 인스턴스 구성에서 정의한 대로 데이터베이스의 데이터를 여러 리전의 여러 영역에 복제할 수 있습니다. 이러한 추가 복제본을 사용하면 구성에 포함된 리전에서 가까운 여러 위치나 리전 내 여러 위치에서 짧은 지연 시간으로 데이터를 읽을 수 있습니다.

하지만 절충해야 하는 부분도 있습니다. 이는 멀티 리전 구성에서는 쿼럼(읽기-쓰기) 복제본이 리전 2개 이상에 분산되어 있기 때문입니다. 이러한 복제본이 서로 통신하여 쓰기 쿼럼을 구성할 때 추가 네트워크 지연 시간이 발생할 수 있습니다. 읽기에는 쿼럼이 필요하지 않습니다. 그 결과 쓰기 지연 시간에서 비용이 약간 증가하지만 애플리케이션이 더 많은 위치에서 읽기를 빠르게 수행할 수 있습니다. 자세한 내용은 쓰기 및 읽기에서 복제본 역할을 참조하세요.

사용 가능한 구성

Spanner는 다음과 같은 기본 멀티 리전 인스턴스 구성을 제공합니다.

대륙 1개

기본 구성 이름 위치 읽기-쓰기 리전 읽기 전용 리전 감시 리전 선택적 리전
asia1 아시아 도쿄: asia-northeast1 L,2R
오사카: asia-northeast2 2R
없음 서울: asia-northeast3 읽기 전용: us-west1 1-OR
us-east5 1-OR
asia2 A 아시아 뭄바이: asia-south1 L,2R
델리: asia-south2 2R
싱가포르: asia-southeast1 1R
없음 없음
eur3 유럽 벨기에: europe-west1 L,2R
네덜란드: europe-west4 2R
없음 핀란드: europe-north1
eur5 유럽 런던: europe-west2 L,2R
벨기에: europe-west1 2R
없음 네덜란드: europe-west4 읽기 전용: us-central1 1-OR
us-east1 1-OR
eur6 유럽 네덜란드: europe-west4 L,2R
프랑크푸르트: europe-west3 2R
없음 취리히: europe-west6 읽기 전용: us-east1 2-OR
nam3 북미 북 버지니아: us-east4 L,2R
사우스캐롤라이나: us-east1 2R
없음 아이오와: us-central1 읽기 전용: us-west2 1-OR
asia-southeast1 1-OR
asia-southeast2 1-OR
europe-west1 1-OR
europe-west2 1-OR
nam6 북미 아이오아: us-central1 L,2R
사우스캐롤라이나: us-east1 2R
오리건: us-west1 1R
로스앤젤레스: us-west2 1R
오클라호마: us-central2
nam7 북미 아이오와: us-central1 L,2R
북 버지니아: us-east4 2R
없음 오클라호마: us-central2 읽기 전용: us-east1 2-OR
us-south1 1-OR
europe-west1 2-OR
nam8 북미 로스앤젤레스: us-west2 L,2R
오리곤: us-west1 2R
없음 솔트레이크시티: us-west3 읽기 전용: asia-southeast1 2R
europe-west2 2R
nam9 북미 북 버지니아: us-east4 L,2R
아이오와: us-central1 2R
오리건: us-west1 2R 사우스캐롤라이나: us-east1
nam10 북미 아이오와: us-central1 L,2R
솔트레이크시티: us-west3 2R
없음 오클라호마: us-central2
nam11 북미 아이오아: us-central1 L,2R
사우스캐롤라이나: us-east1 2R
없음 오클라호마: us-central2 읽기 전용: us-west1 1-OR
nam12 북미 아이오와: us-central1 L,2R
북 버지니아: us-east4 2R
오리건: us-west1 2R 오클라호마: us-central2
nam13 북미 오클라호마: us-central2 L,2R
아이오와: us-central1 2R
없음 솔트레이크시티: us-west3
nam14 북미 북 버지니아: us-east4 L,2R
몬트리올: northamerica-northeast1 2R
없음 사우스캐롤라이나: us-east1
nam15 북미 댈러스: us-south1 L,2R
북 버지니아: us-east4 2R
없음 아이오와: us-central1

대륙 3개

기본 구성 이름 위치 읽기-쓰기 리전 읽기 전용 리전 감시 리전 선택적 리전
nam-eur-asia1 북미
유럽
아시아
아이오와: us-central1 L,2R
오클라호마: us-central2 2R
벨기에: europe-west1 2R
타이완: asia-east1 2R
사우스 캐롤라이나: us-east1 읽기 전용: us-west2 1-OR
nam-eur-asia3 북미
유럽
아시아
아이오와: us-central1 L,2R
사우스 캐롤라이나: us-east1 2R
벨기에: europe-west1 1R
네덜란드: europe-west4 1R
타이완: asia-east1 2R
오클라호마: us-central2
  • L: 기본 리더 리전입니다. 자세한 내용은 데이터베이스의 리더 리전 수정을 참조하세요.

  • 1R: 리전의 1개 복제본입니다.

  • 2R: 리전의 2개 복제본입니다.

  • 1-OR: 하나의 선택적인 복제본입니다. 커스텀 리전 인스턴스 구성을 만들고 하나의 선택적 읽기 전용 복제본을 추가할 수 있습니다. 자세한 내용은 커스텀 인스턴스 구성 만들기를 참조하세요.

  • 2-OR: 최대 2개의 선택적인 복제본입니다. 커스텀 리전 인스턴스 구성을 만들고 선택적 읽기 전용 복제본을 1~2개 추가할 수 있습니다. 읽기 지연 시간을 낮게 유지하려면 2개(가능한 경우)를 추가하는 것이 좋습니다. 자세한 내용은 커스텀 인스턴스 구성 만들기를 참조하세요.

  • A: 이 인스턴스 구성은 허용 목록으로 제한됩니다. 액세스하려면 기술계정 관리자에게 문의하세요.

혜택

멀티 리전 인스턴스는 다음과 같은 주요 이점을 제공합니다.

  • 99.999% 가용성: Spanner 리전 구성이 제공하는 99.99% 가용성보다 높습니다.

  • 데이터 분산: Spanner는 strong consistency를 보장하며 리전 사이에 데이터를 자동으로 복제합니다. 따라서 데이터를 사용 위치에 저장하여 지연 시간을 줄이고 사용자 환경을 개선할 수 있습니다.

  • 외부 일관성: 지리적으로 먼 위치에서 복제하더라도 Spanner를 단일 머신에서 실행되는 데이터베이스처럼 사용할 수 있습니다. 트랜잭션은 직렬화가 보장되며, 데이터베이스에서 트랜잭션 순서는 클라이언트가 커밋된 트랜잭션을 관찰하는 순서와 동일합니다. 외부 일관성은 일부 다른 제품에서 제공하는 'strong consistency'보다 더욱 강력한 보증입니다. TrueTime 및 외부 일관성에서 이 속성에 대해 자세히 알아보세요.

복제

각 기본 멀티 리전 구성에는 읽기-쓰기 리전으로 지정된 리전이 2개 있으며 각 리전에는 읽기-쓰기 복제본이 2개 있습니다. 이러한 읽기-쓰기 리전 중 하나는 기본 리더 리전으로 지정됩니다. 즉, 이 리전에 데이터베이스의 리더 복제본이 포함됩니다. Spanner는 감시 리전이라는 세 번째 리전에 감시 복제본도 배치합니다.

클라이언트에서 데이터베이스에 변형을 실행할 때마다 쓰기 쿼럼이 형성됩니다. 이 쿼럼은 기본 리더 리전의 복제본 중 1개와 추가 응답 복제본 4개 중 2개로 구성됩니다. (쿼럼은 응답에 참여하는 다른 복제본에 따라 구성에 포함된 2개 또는 3개 리전의 복제본으로 형성될 수도 있습니다.) 일부 기본 멀티 리전 구성에는 이러한 5개의 응답 복제본 외에도 지연 시간이 짧은 읽기를 제공하기 위한 읽기 전용 복제본이 포함됩니다. 읽기 전용 복제본이 있는 리전을 읽기 전용 리전이라 합니다.

일반적으로 멀티 리전 구성의 응답 리전은 지리적으로 가까운(1,000마일 미만) 곳에 배치되어 빠르게 쓸 수 있고 지연 시간이 짧은 쿼럼을 형성합니다(자세히 알아보기). 그러나 리전들은 조정 오류를 방지하기 위해 충분히 멀리(일반적으로 최소 수백 마일) 떨어져 있습니다. 또한 클라이언트 애플리케이션이 리더가 아닌 리전에 있는 경우 Spanner는 데이터베이스의 지연 시간을 줄이기 위해 리더 인식 라우팅을 사용하여 읽기-쓰기 트랜잭션을 동적으로 라우팅합니다. 자세한 내용은 리더 인식 라우팅을 참조하세요.

선택적 읽기 전용 복제본을 사용하여 커스텀 멀티 리전 인스턴스 구성을 만들 수 있습니다. 생성한 커스텀 읽기 전용 복제본은 쓰기 쿼럼에 포함할 수 없습니다. 선택적 리전 열에 나열된 위치를 선택적 읽기 전용 복제본으로 추가할 수 있습니다. 선택한 읽기 전용 복제본 위치가 표시되지 않는 경우 새로운 선택적 읽기 전용 복제본 리전을 요청할 수 있습니다. 자세한 내용은 읽기 전용 복제본을 참조하세요.

멀티 리전 구성 성능 권장사항

최적의 성능을 위해 다음 권장사항을 따르세요.

  • 핫스팟 및 기타 성능 문제를 방지하는 스키마를 설계합니다.
  • 최적의 쓰기 지연 시간을 위해서는 쓰기가 많은 워크로드의 컴퓨팅 리소스를 기본 최적 리전 내 또는 가까이 배치합니다.
  • 기본 최적 리전 외부에서 최적의 읽기 성능을 얻으려면 최소 15초의 비활성을 사용합니다.
  • 워크로드가 한 리전에만 의존하지 않도록 하려면 중요 컴퓨팅 리소스를 둘 이상의 리전에 배치합니다. 올바른 옵션은 모든 단일 리전 중단이 애플리케이션 모두에 영향을 주지 않도록 2개의 서로 다른 읽기-쓰기 리전 옆에 배치하는 것입니다.
  • 컴퓨팅 용량을 충분히 프로비저닝하여 각 리전에서 우선순위가 높은 총 CPU 사용률을 45% 미만으로 유지합니다.
  • Spanner 노드당 처리량은 멀티 리전 구성 성능을 참조하세요.

리전 유형

Spanner에는 읽기-쓰기 리전, 읽기 전용 리전, 감시 리전 등 세 가지 리전 유형이 있습니다.

읽기-쓰기 리전

각 멀티 리전 구성에는 읽기-쓰기 리전 2개가 있으며 각 리전에는 읽기-쓰기 복제본 2개가 있습니다.

이러한 읽기-쓰기 리전 중 하나가 기본 리더 리전으로 지정됩니다. 리더 리전은 각 분할의 기본 리더 리전에 있는 복제본에서 선택됩니다. 최적 복제본이 실패할 경우 기본 최적 리전에 있는 다른 복제본이 자동으로 다음 최적 복제본 역할을 수행합니다. 실제로 최적 복제본은 자체적으로 상태 확인을 실행하며, 비정상 상태를 감지하면 최적 복제본 역할을 사전에 포기할 수 있습니다. 대부분의 경우 기본 리더 리전이 정상 상태로 돌아가면 자동으로 리더를 다시 가정합니다.

쓰기는 먼저 기본 리더 리전에서 처리됩니다. instance/leader_percentage_by_region 모니터링 측정항목을 사용해서 지정된 리전 내에서 복제본 비율을 모니터링할 수 있습니다. 자세한 내용은 Spanner 측정항목을 참조하세요.

두 번째 읽기-쓰기 리전에는 읽기를 제공하고 쓰기 커밋을 위한 응답에 참여하는 추가 복제본이 있습니다. 두 번째 읽기-쓰기 리전의 이러한 추가 복제본이 최적 복제본이 될 수 있습니다. 드물긴 하지만 기본 최적 리전의 모든 복제본이 손실되는 경우 두 번째 읽기-쓰기 리전에서 새 최적 복제본이 선택됩니다.

데이터베이스의 리더 리전 변경의 안내에 따라 데이터베이스의 리더 리전을 구성할 수 있습니다. 자세한 내용은 기본 리더 리전 구성을 참조하세요.

읽기 전용 리전

읽기 전용 리전에는 읽기 전용 복제본이 있습니다. 이 복제본은 읽기-쓰기 리전의 외부에 있는 클라이언트에 짧은 지연 시간 읽기를 제공할 수 있습니다. 읽기 전용 복제본은 읽기-쓰기 복제본에서 복제된 데이터 전체 복사본을 유지합니다. 쓰기 커밋을 위한 응답에 참여하지 않으므로 쓰기 지연 시간에 영향을 주지 않습니다.

일부 기본 멀티 리전 구성에는 읽기 전용 복제본이 포함됩니다. 커스텀 인스턴스 구성을 만들고 읽기 전용 복제본을 커스텀 인스턴스 구성에 추가하여 읽기를 확장하고 지연 시간이 짧은 비활성 읽기를 지원할 수도 있습니다. 모든 읽기 전용 복제본에는 컴퓨팅 용량 및 데이터베이스 스토리지 비용이 적용됩니다. 또한 읽기 전용 복제본을 인스턴스 구성에 추가해도 인스턴스 구성의 Spanner SLA는 변경되지 않습니다. 자세한 내용은 읽기 전용 복제본을 참조하세요.

감시 리전

감시 리전에는 쓰기에 응답하기 위해 사용되는 감시 복제본이 있습니다. 읽기-쓰기 리전을 사용할 수 없게 되는 드문 경우에 감시가 중요해집니다.

인스턴스 이동

Spanner 인스턴스를 모든 인스턴스 구성에서 리전 구성과 멀티 리전 구성을 포함한 다른 인스턴스 구성으로 이동할 수 있습니다. 인스턴스를 이동해도 다운타임이 발생하지 않으며 Spanner는 이동 중에 strong consistency를 포함한 일반적인 트랜잭션 보장을 계속 제공합니다.

Spanner 인스턴스 이동에 대한 자세한 내용은 인스턴스 이동을 참조하세요.

기본 리더 리전 구성

애플리케이션 지연 시간을 줄이기 위해 연결 클라이언트에 더 가깝게 데이터베이스의 기본 리더 리전 위치를 변경하려면 멀티 리전 구성을 사용하는 모든 Spanner 인스턴스의 리더 리전을 변경하면 됩니다. 리더 리전 위치를 변경하는 방법은 데이터베이스의 리더 리전 변경을 참조하세요. 데이터베이스의 기본 리더 리전이 될 수 있는 리전은 멀티 리전 구성의 읽기-쓰기 리전뿐입니다.

리더 리전은 모든 데이터 베이스 쓰기를 처리하는 역할을 합니다. 따라서 대부분의 트래픽이 하나의 지리적 리전에서 유입되는 경우 리더 리전을 그 지리적 리전으로 이동하여 지연 시간을 줄일 수 있습니다. 기본 리더 리전 업데이트는 비용은 저렴하고 데이터 이동이 수반되지 않습니다. 새 값이 적용되는 데 몇 분 정도 걸립니다.

기본 리더 리전 변경은 장기 실행 작업을 사용하는 스키마 변경입니다. 필요한 경우 장기 실행 작업의 상태를 가져올 수 있습니다.

장단점: 리전 구성과 멀티 리전 구성 비교

구성 가용성 지연 시간 비용 데이터 위치
리전 99.99% 리전 내에서 쓰기 지연 시간을 줄입니다. 낮은 비용. 가격을 참조하세요. 지리적 데이터 거버넌스를 활성화합니다.
멀티 리전 99.999% 여러 지리적 리전에서 읽기 지연 시간이 줄고 쓰기 지연 시간이 약간 증가합니다. 높은 비용. 가격을 참조하세요. 구성 내 여러 리전에 데이터를 분산합니다.

다음 단계