이 페이지에서는 Spanner 컴퓨팅 용량과 이를 정량화하는 데 사용되는 두 가지 측정 단위인 노드와 처리 단위를 설명합니다.
컴퓨팅 용량
컴퓨팅 용량은 인스턴스의 데이터베이스에서 사용할 수 있는 서버 및 스토리지 리소스의 양을 정의합니다. 인스턴스를 만들 때 컴퓨팅 용량을 처리 단위 수 또는 노드 수로 지정합니다. 여기서 처리 단위는 1,000개는 노드 1개와 같습니다.
컴퓨팅 용량이 1,000개의 처리 단위(노드 1개)보다 작은 인스턴스를 만들지 않는 한 사용하는 처리 단위는 중요하지 않습니다. 이 경우, 인스턴스의 컴퓨팅 용량을 지정하려면 처리 단위를 사용해야 합니다.
인스턴스에서 컴퓨팅 용량을 정의하거나 변경할 때는 처리 단위를 100의 배수(100, 200, 300 등)로 지정합니다. 처리 단위 수가 1,000개에 도달하면 더 많은 수량을 처리 단위 1,000의 배수(1000, 2000, 3000 등) 또는 노드(1, 2, 3 등)로 지정할 수 있습니다.
처리 단위가 1,000개 미만인 인스턴스는 더 작은 데이터 크기, 쿼리, 워크로드를 대상으로 합니다. 이러한 인스턴스는 컴퓨팅 리소스가 제한되므로 일부 워크로드의 경우 비선형 확장 및 성능 문제가 발생하고 지연 시간이 간헐적으로 증가할 수 있습니다.
데이터 스토리지 한도
할당량 및 한도에 설명된 대로 데이터베이스에 액세스할 때 고가용성과 짧은 지연 시간을 제공하기 위해 Spanner는 다음 가이드라인을 따라 인스턴스의 컴퓨팅 용량을 기준으로 저장용량 한도를 결정합니다.
- 노드 1개(처리 단위 1,000개)보다 작은 인스턴스의 경우 Spanner는 데이터베이스에 있는 처리 단위 100개마다 409.6GB 데이터를 할당합니다.
- 노드 1개보다 큰 인스턴스의 경우 Spanner는 노드마다 4TB 데이터를 할당합니다. 증가된 스토리지 용량(노드당 10TB)을 일부 리전 및 멀티 리전 Spanner 인스턴스 구성에서 사용할 수 있습니다. 자세한 내용은 성능 및 스토리지 개선을 참조하세요.
예를 들어 300GB 데이터베이스의 인스턴스를 만들려면 컴퓨팅 용량을 처리 단위 100개로 설정하면 됩니다. 이렇게 하면 데이터베이스 크기가 409.6GB를 초과할 때까지 인스턴스를 한도 이하로 유지할 수 있습니다. 데이터베이스가 409.6GB에 도달하면 데이터베이스 확장을 위해 처리 단위 100개를 추가해야 합니다. 그렇지 않으면 Spanner가 데이터베이스에 대한 쓰기를 거부할 수 있습니다. 자세한 내용은 데이터베이스 스토리지 사용률 권장사항을 참조하세요.
Spanner는 총 스토리지 할당량이 아니라 인스턴스가 실제로 활용하는 스토리지에 대한 요금을 청구합니다.
성능
지정된 컴퓨팅 용량으로 제공할 수 있는 최대 읽기 및 쓰기 처리량 값은 스키마 디자인과 데이터 세트 특성뿐 아니라 인스턴스 구성에 따라 다릅니다. 자세한 내용은 리전 구성 성능 및 멀티 리전 구성 성능 섹션을 참조하세요.
처리 단위가 1,000개 미만인 인스턴스는 더 작은 데이터 크기, 쿼리, 워크로드를 대상으로 합니다. 대규모 워크로드의 경우 제한된 컴퓨팅 리소스로 인해 비선형 확장 및 성능 문제가 발생하고 지연 시간이 간헐적으로 증가할 수 있습니다.
컴퓨팅 용량 및 인스턴스 구성
리전 및 멀티 리전 구성에 설명된 대로 Spanner는 하나 이상의 리전 영역에 인스턴스를 분산하여 높은 성능과 고가용성을 제공합니다. 따라서 Spanner는 인스턴스의 컴퓨팅 용량에서 제공하는 서버 리소스도 배포합니다.
다음은 이러한 서버 리소스 분포를 보여주는 다이어그램입니다.
이 다이어그램은 리전 구성이 있는 두 인스턴스를 보여줍니다.
- Instance-A는 3개의 영역 각각에서 서버 리소스를 소비하는 컴퓨팅 용량 분산이 있는 1,000개의 처리 단위(노드 1개)의 인스턴스를 보여줍니다.
- Instance-B는 3개의 영역 각각에서 서버 리소스를 소비하는 컴퓨팅 용량 분산이 있는 2,000개의 처리 단위(노드 2개)의 인스턴스를 보여줍니다.
이 다이어그램에서 다음 사항에 주목하세요.
각 인스턴스에 대해 Spanner는 리전 구성의 각 영역에 서버 리소스를 할당합니다. 각 영역별 서버 리소스는 해당 영역의 데이터 복제본을 사용합니다. 인스턴스 구성의 데이터 복제본에 대한 자세한 내용은 리전 및 멀티 리전 구성을 참조하세요. Spanner가 이러한 데이터 복제본을 동기화 상태로 유지하는 방법에 대한 자세한 내용은 복제를 참조하세요.
Instance-A의 서버 리소스는 단순한 상자로 표시되고 Instance-B의 리소스는 두 개의 부분으로 구분된 상자로 표시됩니다. 이러한 차이는 Spanner가 크기가 다른 인스턴스에 대해 서버 리소스를 다르게 할당한다는 것을 보여줍니다.
- 처리 단위 1,000개(노드 1개) 이하의 인스턴스의 경우 Spanner는 영역당 단일 서버 태스크에 서버 리소스를 할당합니다.
- 처리 단위 1,000개(노드 1개)를 초과하는 인스턴스의 경우 Spanner는 영역당 여러 서버 태스크에 서버 리소스를 할당합니다(처리 단위 1,000개마다 하나의 태스크). 영역당 여러 서버 태스크를 사용하면 성능이 향상되고 Spanner가 데이터베이스 분할을 만들고 더 나은 성능을 제공합니다.
컴퓨팅 용량 증가 및 감소
인스턴스를 만든 후에는 컴퓨팅 용량을 나중에 늘릴 수 있습니다. 대부분의 경우 컴퓨팅 용량을 줄일 수도 있습니다. 컴퓨팅 용량을 줄일 수 없는 몇 가지 경우는 다음과 같습니다.
- 컴퓨팅 용량을 삭제하려면 인스턴스에서 처리 단위 1,000개(노드 1개)당 데이터를 4TB 넘게 저장해야 하는 경우
- 과거 사용량 패턴에 따라 Spanner에서 다수의 인스턴스 데이터 분할을 만들었으며 드물게는 컴퓨팅 용량 삭제 후에 Spanner에서 분할을 관리할 수 없게 되는 경우
후자의 경우 Spanner에서 모든 인스턴스 분할을 관리하는 데 필요한 최소 용량을 확보할 때까지 컴퓨팅 용량을 점진적으로 조금씩 줄여봅니다. 사용량 패턴 변경으로 인해 인스턴스에 더 이상 많은 분할이 필요하지 않은 경우 Spanner에서 일부 분할을 병합하여 1~2주 후에 인스턴스의 컴퓨팅 용량을 더 줄일 수 있습니다.
컴퓨팅 용량을 삭제할 때 CPU 사용률을 모니터링하고 Cloud Monitoring에서 지연 시간을 요청하여 CPU 사용률이 리전 인스턴스의 경우 65% 미만, 멀티 리전 인스턴스의 각 리전에서 45% 미만으로 유지되도록 합니다. 컴퓨팅 용량을 삭제하는 동안 요청 지연 시간이 일시적으로 늘어날 수 있습니다.
Google Cloud 콘솔, Google Cloud CLI 또는 클라이언트 라이브러리를 사용하여 컴퓨팅 용량을 변경할 수 있습니다.
Spanner에는 정지 모드가 없습니다. Spanner 컴퓨팅 용량은 전용 리소스이므로 워크로드를 실행하지 않는 경우에도 Spanner는 백그라운드 작업을 자주 수행하여 데이터를 최적화하고 보호합니다.
컴퓨팅 용량과 복제본 비교
인스턴스의 서버 및 스토리지 리소스를 수직 확장해야 하는 경우 인스턴스의 컴퓨팅 용량을 늘립니다. 컴퓨팅 용량을 늘려도 지정된 인스턴스 구성에서 일정한 복제본 수는 늘어나지 않지만 인스턴스에서 각 복제본의 리소스는 늘어납니다. 컴퓨팅 용량을 늘리면 각 복제본에 더 많은 CPU와 RAM이 제공되어 복제본의 처리량이 늘어납니다. 즉, 초당 읽기 및 쓰기 처리량이 늘어납니다.
다음 단계
- Spanner 인스턴스를 만드는 방법 알아보기