이 페이지에서는 인스턴스 구성과 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% | 여러 지리적 리전에서 읽기 지연 시간이 줄고 쓰기 지연 시간이 약간 증가합니다. | 높은 비용. 가격을 참조하세요. | 구성 내 여러 리전에 데이터를 분산합니다. |
다음 단계
- Spanner 인스턴스를 만드는 방법 알아보기
- Google Cloud 리전 및 영역 자세히 알아보기