[GCP] 구글클라우드 공부하기 - Spanner1
*스패너를 이해하기 위해서는 인스턴스에 대한 이해가 전제가 되어야한다.
클라우드를 만들기 위해서는 Google Cloud 내에 Cloud Spanner 인스턴스를 만들어야한다. 이 인스턴스는 해당 인스턴스를 만든 Cloud Spanner DB에서 사용하는 리소스를 할당한 것이다. 이때 중요한 개념인 인스턴스 구성과 노드 수가 등장한다. 이 둘을 통해 인스턴스 제공 및 저장소 리소스 위치의 양을 결정지을 수 있다.
-인스턴스 구성 : 인스턴스의 리전 유형을 선택하는 것( 리전 vs 멀티 리전), 즉 데이터를 저장할 위치 선택. 인스턴스 구성은 추후에 변경불가
-노드 수 : 해당 인스턴스에 할당할 노드 수를 선택해야한다. 선택한 노드 수로 해당 인스턴스의 데이터베이스에 제공되는 저장소 리소스 및 제공량이 결정된다.
이는 리전 인스턴스 구성으로 생성된 4노드 인스턴스이다.
*계속 등장하는 리전은 무엇인가?
한국어로는 리전과 영역이라고 불리는 것들이 있는데, 둘 다 똑같은 것 같아서 원문을 보니까 Region, Zone이었다. Compute Engine resources are hosted in multiple locations worldwide. These locations are composed of regions and zones.
-Region : 리전은 리소스를 호스팅할 수 있는 특정한 지리적 위치이다. North East Asia-Seoul 과 같이 실제 위치이고, 3개이상의 영역(zone)을 가진다. ex ) Seoul - a, Seoul - b, Seoul - c
-Zone : 가상 머신 인스턴스나 영역 영구 디스크와 같이 영역 안에 위치한 것들은 영역 리소스(Zonal Resources)라고 불린다.
구글이 설명하기로는 ...
- 리전사용자 시나리오에 적합한 리전을 선택합니다. 예를 들어 미국에만 고객이 있거나 데이터가 미국에 있어야 하는 등 특정 요구 사항이 있는 경우 리소스를 us-central1 리전이나 us-east1 리전 내의 영역에 저장하는 것이 좋습니다.
- 리전은 영역의 집합입니다. 영역에서 같은 리전의 다른 영역으로 고대역폭, 낮은 지연 시간으로 네트워크 연결이 가능합니다. 고가용성을 제공하는 내결함성 애플리케이션을 배포하기 위해 Google은 다중 영역 및 다중 리전에 애플리케이션을 배포할 것을 권장합니다. 이렇게 하면 단일 영역이나 리전을 포함하는 경우에도 예기치 않은 구성 요소 장애를 방지하는 데 도움이 됩니다.
- 영역리소스를 배포하고자 하는 범위에 따라, 여러 리전의 여러 영역에 인스턴스를 만들어 중복성을 확보합니다.
- 영역은 리전 내의 배포 구역입니다. 영역의 정규화된 이름은 <region>-<zone>으로 구성됩니다. 예를 들어 us-central1 리전 내 a 영역의 정규화된 이름은 us-central1-a입니다.
*노드는 무엇인가?
노드는 Bigtable 클러스터가 데이터에 액세스하고 관리 작업을 수행하기 위해 사용하는 컴퓨팅 리소스이다.
인스턴스의 각 클러스터에는 노드가 1개 이상 있으며, 이러한 노드는 Bigtable이 데이터를 관리하는 데 사용하는 컴퓨팅 리소스이다.
각 노드는 다음을 수행한다.
- 디스크의 특정 태블릿 추적
- 태블릿에 수신된 읽기 및 쓰기 처리
- 태블릿에서 유지보수 태스크 수행
클러스터에는 현재 워크로드와 클러스터에 저장되는 데이터 양을 지원하기에 충분한 노드가 있어야 합니다. 그렇지 않으면 클러스터가 수신한 요청을 처리하지 못해 지연 시간이 길어질 수 있습니다. 클러스터의 CPU와 디스크 사용량을 모니터링하고 측정항목이 아래에 나열된 권장사항과 한도를 초과하면 인스턴스에 노드를 추가합니다.
각 노드는 최대 2TB의 스토리지를 제공합니다. 노드에서 제공할 수 있는 최대 읽기 및 쓰기 처리량 값은 스키마 디자인과 데이터세트 특성뿐 아니라 인스턴스 구성에 따라 다릅니다.
인스턴스를 만든 후 인스턴스에 노드를 추가할 수 있습니다. 대부분의 경우, 노드를 삭제할 수도 있습니다.
인스턴스에서 제공 및 스토리지 리소스를 확장해야 하는 경우 해당 인스턴스에 노드를 추가합니다.
참고 :
https://cloud.google.com/spanner/docs/instances#node_count
https://cloud.google.com/compute/docs/regions-zones