확장
클러스터 확장은 클러스터 워크로드 또는 데이터 스토리지 요구사항의 변화에 따라 클러스터로부터 노드를 추가하거나 삭제하는 프로세스입니다.
다음 방법으로 Bigtable 클러스터를 확장할 수 있습니다.
- 자동 확장
- 수동 노드 할당
대부분의 경우 자동 확장을 선택합니다. 클러스터에 자동 확장을 사용 설정하면 Bigtable이 클러스터를 지속적으로 모니터링하고 설정에 따라 노드 수를 자동으로 조정합니다.
클러스터의 CPU 사용량과 같은 측정항목을 기반으로 Bigtable 클러스터를 확장할 수 있습니다. 예를 들어 클러스터에 과부하가 걸려 있고 해당 CPU 사용률이 높은 경우 CPU 사용량이 떨어질 때까지 클러스터에 노드를 추가할 수 있습니다. 사용량이 많지 않을 때 클러스터에서 노드를 제거함으로써 비용을 절약할 수도 있습니다.
노드 확장 계수
Bigtable 클러스터를 만들 때 2배 노드 확장 계수로 클러스터를 구성할 수 있습니다. 이 구성을 선택하면 Bigtable은 두 개의 표준 노드를 더 큰 단일 컴퓨팅 노드로 취급하며 클러스터는 항상 노드 2개 단위로 확장됩니다. 따라서 클러스터의 노드 간에 컴퓨팅 경계가 줄어듭니다. 워크로드에 따라 2배 노드 확장의 이점은 다음과 같습니다.
- 처리량 및 꼬리 지연 시간 안정성 개선
- 핫스팟 흡수 능력 향상
Google Cloud 콘솔 또는 gcloud CLI를 사용하면 노드 확장 계수가 2배로 설정된 클러스터를 만들 수 있습니다.
자동 확장 또는 수동 노드 할당으로 2배 노드 확장을 구성할 수 있습니다.
제한사항은 노드 크기 조정 계수 제한사항을 참고하세요.
소규모 클러스터
노드 확장 2배는 대규모 워크로드에 가장 적합합니다. 표준 노드 확장 (배율 1)에서 노드 확장 2배로 변경하려는 경우 비용 영향을 고려하세요. 노드가 1개인 클러스터에서 실행되는 워크로드와 같이 작은 워크로드의 경우 노드 확장을 2배로 사용하면 비용이 두 배로 듭니다. 마찬가지로 이전에 노드 3개가 있는 클러스터에서 실행된 워크로드에 노드 확장 2배를 사용하면 비용이 33% 증가합니다.
반면 이전에 대규모 클러스터(예: 노드 50개가 있는 클러스터)에서 실행된 워크로드의 경우 노드 확장 계수 2배의 효과는 노드 수에 비해 작습니다.
지원되지 않는 영역에서 노드 확장 계수가 2배인 클러스터를 만들려고 하면 Bigtable에서 오류가 반환됩니다.
제한사항
클러스터 확장은 노드 가용성에 따라 달라지며, 완료하는 데 시간이 걸리고, 부적절한 스키마 설계를 보완할 수 없으며, 점진적으로 이루어져야 합니다. 다음 섹션에서는 이러한 제한사항과 2배 노드 확장에 적용되는 제한사항을 설명합니다.
노드 가용성
노드 할당량은 클러스터에 수동 노드 할당이나 자동 확장이 사용 설정되어 있는지 여부를 적용됩니다. 자세한 내용은 할당량 및 노드 가용성을 참조하세요.
노드가 재조정되는 동안 지연
클러스터에 노드를 추가한 후, 클러스터 성능이 눈에 띄게 향상될 때까지 부하 상태에서 최대 20분 기다려야 할 수 있습니다. 따라서 짧은 순간에 활동이 급상승하는 워크로드의 경우에는 CPU 로드를 기준으로 클러스터에 노드를 추가해도 성능이 향상되지 않습니다. Bigtable이 데이터를 재조정했을 때쯤이면 짧게 급상승했던 활동이 이미 끝난 후일 것이기 때문입니다.
이러한 지연을 계획하려면 클러스터 부하가 증가하기 전에 프로그래매틱 방식으로 또는 Google Cloud 콘솔을 통해 클러스터에 노드를 추가하면 됩니다. 이 접근 방식을 사용하면 Bigtable이 워크로드가 증가하기 전에 추가 노드에서 데이터를 재조정할 수 있습니다. 수동 노드 할당을 사용하는 클러스터에서 노드 수를 변경합니다. 자동 확장을 사용하는 클러스터에서 최소 노드 수를 변경합니다. 트래픽이 정상으로 돌아간 후 노드 설정을 다시 변경합니다.
너무 빠르게 축소하여 지연 시간 증가
축소하기 위해 클러스터의 노드 수를 줄일 때는 10분 동안 클러스터 크기를 10% 넘게 줄이지 마세요. 클러스터의 잔여 노드가 일시적으로 과부화되는 경우 너무 빠르게 축소하면 지연 시간 증가와 같은 성능 문제가 발생할 수 있습니다.
스키마 디자인 문제
테이블의 스키마 디자인에 문제가 있는 경우, Bigtable 클러스터에 노드를 추가해도 성능이 향상되지 않을 수 있습니다. 예를 들어 테이블의 한 행에 여러 개의 읽기 및 쓰기가 있는 경우, 모든 읽기 또는 쓰기는 클러스터에서 동일한 노드로 이동합니다. 따라서 노드를 추가해도 성능이 향상되지 않습니다. 반면에 읽기와 쓰기가 테이블에 있는 행에 고르게 분산된 경우에는 노드를 추가하면 일반적으로 성능이 향상됩니다.
Bigtable 크기를 효율적으로 조정할 수 있는 스키마를 디자인하는 방법에 대해서는 스키마 디자인하기를 참고하세요.
노드 확장 계수 제한
표준 노드 확장이 적용된 클러스터를 2배 노드 확장을 사용하도록 변환할 수는 없습니다. 새 클러스터를 만들고 생성 시 2배 노드 확장을 사용 설정해야 합니다. 인스턴스에 클러스터를 추가하는 방법에 관한 자세한 내용은 인스턴스 수정을 참고하세요.
HDD 클러스터에는 2배 노드 확장을 구성할 수 없습니다.
모든 Bigtable 리전에서 2배 노드 확장으로 구성된 클러스터를 만들 수 있지만 모든 영역에서는 만들 수 없습니다. 다음 영역에는 노드 확장이 2배인 클러스터를 포함할 수 없습니다.
- asia-south1-c
- europe-central2-c
- me-central2-b
- me-central2-c
- northamerica-northeast1-a
- northamerica-northeast1-b
- southamerica-east1-c
- us-south1-b
- us-south1-c
다음 단계
- Bigtable 자동 확장에 대해 알아봅니다.
- 프로그래매틱 방식과 Google Cloud 콘솔을 통해 인스턴스를 모니터링하는 방법을 알아봅니다.