컴퓨팅 용량, 노드, 처리 단위

이 페이지에서는 Cloud Spanner 컴퓨팅 용량과 이를 정량화하는 데 사용되는 두 가지 측정 단위인 노드와 처리 단위를 설명합니다.

컴퓨팅 용량

컴퓨팅 용량은 인스턴스의 데이터베이스에서 사용할 수 있는 서버 및 스토리지 리소스의 양을 정의합니다. 인스턴스를 만들 때 컴퓨팅 용량을 처리 단위 수 또는 노드 수로 지정합니다. 여기서 처리 단위는 1,000개는 노드 1개와 같습니다.

컴퓨팅 용량이 1,000개의 처리 단위(노드 1개)보다 작은 인스턴스를 만드는 경우 처리 단위를 사용하여 인스턴스의 컴퓨팅 용량을 지정해야 하지만 이 경우가 아니라면 사용하는 측정 단위는 중요하지 않습니다.

컴퓨팅 용량을 정의할 때(인스턴스를 처음 만들거나 나중에 인스턴스 용량을 늘리거나 줄일 때) 최대 1,000개의 처리 단위까지 처리 단위 100개의 배수(100, 200, 300)로 수량을 지정하며 처리 단위 1000개의 배수(1,000, 2,000, 3,000 등) 또는 노드(1, 2, 3 등)로 더 큰 수량을 지정합니다.

데이터 스토리지 한도

할당량 및 한도에 설명된 대로 데이터베이스에 액세스할 때 고가용성과 짧은 지연 시간을 제공하기 위해 Cloud Spanner는 인스턴스의 컴퓨팅 용량을 기준으로 저장용량 한도를 정의합니다.

  • 노드 1개(1,000개의 처리 단위)보다 작은 인스턴스의 경우 Cloud Spanner는 데이터베이스에 있는 100개의 처리 단위마다 204.8GB(≈205GB)의 데이터를 할당합니다.
  • 노드가 1개 이상인 인스턴스의 경우 Cloud Spanner는 각 노드에 2TB의 데이터를 할당합니다.

예를 들어 300GB 데이터베이스의 인스턴스를 만들려면 컴퓨팅 용량을 200 처리 단위로 설정해야 합니다. 이렇게 하면 데이터베이스 크기가 409.6GB를 초과할 때까지 인스턴스를 한도 이하로 유지할 수 있습니다. 데이터베이스가 409.6GB에 도달하면 데이터베이스 확장을 위해 처리 단위 100개를 추가해야 합니다. 그렇지 않으면 데이터베이스에 대한 쓰기가 거부될 수 있습니다. 자세한 내용은 데이터베이스 스토리지 사용률 권장사항을 참조하세요.

성능

지정된 컴퓨팅 용량으로 제공할 수 있는 최대 읽기 및 쓰기 처리량 값은 스키마 디자인과 데이터 세트 특성뿐 아니라 인스턴스 구성에 따라 다릅니다. 자세한 내용은 리전 구성 성능멀티 리전 구성 성능 섹션을 참조하세요.

컴퓨팅 용량 및 인스턴스 구성

리전 및 멀티 리전 구성에 설명된 대로 Cloud Spanner는 하나 이상의 리전 영역에 인스턴스를 분산하여 높은 성능과 고가용성을 제공합니다. 따라서 인스턴스의 컴퓨팅 용량에서 제공하는 서버 리소스도 분산됩니다.

다음은 이러한 서버 리소스 분포를 보여주는 다이어그램입니다.

리전 인스턴스 구성에서 생성된 인스턴스 2개

이 다이어그램은 리전 구성이 있는 두 인스턴스를 보여줍니다.

  • Instance-A는 3개의 영역 각각에서 서버 리소스를 소비하는 분산 컴퓨팅 용량이 있는 1,000개의 처리 단위(1노드)의 인스턴스를 보여줍니다.
  • Instance-B는 3개의 영역 각각에서 서버 리소스를 소비하는 분산 컴퓨팅 용량이 있는 2000개의 처리 단위(노드 2개)의 인스턴스를 보여줍니다.

이 다이어그램에서 다음 사항에 주목하세요.

  • 각 인스턴스에 대해 서버 리소스는 리전 구성의 각 영역에 할당됩니다. 각 영역별 서버 리소스는 해당 영역의 데이터 복제본을 사용합니다. 인스턴스 구성의 데이터 복제본에 대한 자세한 내용은 리전 및 멀티 리전 구성을 참조하세요. Cloud Spanner가 이러한 데이터 복제본을 동기화 상태로 유지하는 방법에 대한 자세한 내용은 복제를 참조하세요.

  • Instance-A의 서버 리소스는 단순한 상자로 표시되고 Instance-B의 리소스는 두 개의 부분으로 구분된 상자로 표시됩니다. 이러한 차이는 Cloud Spanner가 크기가 다른 인스턴스에 대해 서버 리소스를 다르게 할당한다는 것을 보여줍니다.

    • 처리 단위 1,000개(1노드) 이하의 인스턴스의 경우 Cloud Spanner는 영역당 단일 서버 태스크에 서버 리소스를 할당합니다.
    • 처리 단위 1,000개(1개 노드)를 초과하는 인스턴스의 경우 Cloud Spanner는 영역당 여러 서버 태스크에 서버 리소스를 할당합니다(처리 단위 1,000개마다 하나의 태스크). 영역당 여러 서버 태스크를 사용하면 성능이 향상되고 Cloud Spanner가 데이터베이스 분할을 만들고 더 나은 성능을 제공합니다.

컴퓨팅 용량 증가 및 감소

인스턴스를 만든 후에는 컴퓨팅 용량을 나중에 늘릴 수 있습니다. 대부분의 경우 컴퓨팅 용량을 줄일 수도 있습니다. 컴퓨팅 용량을 줄일 수 없는 몇 가지 경우는 다음과 같습니다.

  • 컴퓨팅 용량을 삭제하려면 인스턴스에서 처리 단위 1,000개(노드 1개)당 2TB를 초과하는 데이터를 저장해야 하는 경우
  • 과거 사용량 패턴에 따라 Cloud Spanner가 인스턴스 데이터에 대해 많은 수의 분할을 만들었으며, 컴퓨팅 용량 삭제 후에는 Cloud Spanner가 분할을 관리할 수 없게 되는 경우

컴퓨팅 용량을 삭제할 때 CPU 사용률을 모니터링하고 Cloud Monitoring에서 지연 시간을 요청하여 CPU 사용률이 리전 인스턴스의 경우 65% 미만, 멀티 리전 인스턴스의 각 리전에서 45% 미만으로 유지되도록 합니다. 컴퓨팅 용량을 삭제하는 동안 요청 지연 시간이 일시적으로 증가할 수 있습니다.

Cloud Console, gcloud 명령줄 도구 또는 클라이언트 라이브러리를 사용하여 컴퓨팅 용량을 변경할 수 있습니다.

Cloud Spanner에는 정지 모드가 없습니다. Cloud Spanner 컴퓨팅 용량은 전용 리소스이므로 워크로드를 실행하지 않는 경우에도 Cloud Spanner는 백그라운드 작업을 자주 수행하여 데이터를 최적화하고 보호합니다.

컴퓨팅 용량과 복제본 비교

인스턴스의 서버 및 스토리지 리소스를 확장해야 하는 경우 인스턴스의 컴퓨팅 용량을 늘립니다. 컴퓨팅 용량을 늘려도 지정된 인스턴스 구성에서 일정한 복제본 수는 늘어나지 않지만 인스턴스에서 각 복제본의 리소스는 늘어납니다. 컴퓨팅 용량을 늘리면 각 복제본에 더 많은 CPU와 RAM이 제공되어 복제본의 처리량이 늘어납니다. 즉, 초당 읽기 및 쓰기 처리량이 늘어납니다.

다음 단계