Cloud Spanner: 첫 번째 데이터베이스

1. 개요

최종 업데이트: 2020년 7월 23일

Cloud Spanner란 무엇인가요?

Google Cloud Spanner는 복제본, 샤딩, 트랜잭션 처리를 자동으로 처리하는, 전 세계에 분산된 ACID 규격 데이터베이스로, 사용 패턴에 맞게 신속하게 확장하여 제품의 성공을 보장할 수 있습니다.

주요 특징

  • 확장을 위해 설계된 관계형 데이터베이스: 고객이 관계형 데이터베이스에서 기대하는 모든 기능(스키마, SQL 쿼리, ACID 트랜잭션)에 대해 철저한 테스트를 거쳤으며 글로벌 단위로 확장할 준비가 되었습니다.
  • 99.999% 가용성: Cloud Spanner는 멀티 리전 인스턴스에 업계 최고의 99.999% 가용성을 제공하며(99.999%의 다운타임보다 다운타임이 10배 더 적음), 리전 및 멀티 리전 구성 전반에서 투명한 동기식 복제를 제공합니다.
  • 자동 샤딩: Cloud Spanner는 요청 부하 및 데이터 크기에 따라 데이터를 자동으로 샤딩하여 성능을 최적화합니다. 따라서 데이터베이스 확장 방법을 고민하는 시간을 줄이고 비즈니스 확장에 집중할 수 있습니다.

모든 기능 보기

학습할 내용

  • Google Cloud 콘솔을 통해 Cloud Spanner 인스턴스 만들기
  • Cloud Spanner 인스턴스에서 새 데이터베이스 만들기
  • sampledb를 사용하여 샘플 데이터를 로드하고 쿼리합니다.
  • Cloud Spanner 인스턴스 삭제

2. 설정 및 요구사항

자습형 환경 설정

아직 Google 계정(Gmail 또는 Google Apps)이 없으면 계정을 만들어야 합니다. Google Cloud Platform 콘솔 ( console.cloud.google.com)에 로그인하고 새 프로젝트를 만듭니다.

50983ac3fdbbf8d0.png

ea581205026ca8e3.png

모든 Google Cloud 프로젝트에서 고유한 이름인 프로젝트 ID를 기억하세요(위의 이름은 이미 사용되었으므로 사용할 수 없습니다). 이 이름은 나중에 Codelab에서 PROJECT_ID로 참조됩니다.

다음으로 Google Cloud 리소스를 사용할 수 있도록 Cloud 콘솔에서 결제를 사용 설정해야 합니다.

이 codelab을 실행하는 과정에는 많은 비용이 들지 않지만 더 많은 리소스를 사용하려고 하거나 실행 중일 경우 비용이 더 들 수 있습니다(이 문서 마지막의 '삭제' 섹션 참조).

Google Cloud Platform의 신규 사용자에게는 $300의 무료 체험판이 제공됩니다.

3. Cloud 콘솔에서 Cloud Spanner 열기

Google Cloud 콘솔에서 화면 왼쪽 상단의 메뉴 아이콘을 클릭하여 왼쪽 탐색 메뉴로 이동합니다.

아래로 스크롤하여 'Spanner'를 선택합니다.

46fe7785700d335.png

이제 Cloud Spanner UI가 표시되고 Cloud Spanner API를 아직 사용 설정하지 않은 프로젝트를 사용 중인 경우 사용 설정하라는 대화상자가 표시됩니다. 이미 API를 사용 설정했다면 이 단계를 건너뛰어도 됩니다.

'사용 설정'을 클릭합니다. 계속하려면 다음을 따르세요.

323474ade0d07c48.png

4. 인스턴스 만들기

먼저 Cloud Spanner 인스턴스를 만듭니다. UI에서 '인스턴스 만들기'를 클릭합니다. 새 인스턴스를 만듭니다.

1126607e9b3a95f7.png

'인스턴스 만들기'를 클릭하면 인스턴스를 만들 수 있는 페이지로 이동합니다. 인스턴스 이름을 입력하고 구성을 선택합니다.

리전 또는 멀티 리전 설정을 선택할 수 있습니다. 리전 설정에서는 모든 복제본이 동일한 리전에 있고, 멀티 리전 설정은 여러 리전에 읽기 복제본을 만듭니다. '리전 구성 비교'를 클릭하면 구성을 비교합니다

f5f41323226be8b7.png

구성을 선택하면 요약이 오른쪽 패널에 표시됩니다.

be5e99711a47047f.png

향후 인스턴스에 더 많은 리소스를 제공하기 위해 노드 수를 늘리거나 인스턴스에 추가 리소스가 필요하지 않은 경우 노드 수를 줄일 수 있습니다.

'만들기'를 클릭합니다. 인스턴스를 만듭니다

97cf7427660e36bd.png

이제 Cloud Spanner 인스턴스를 사용할 수 있습니다.

13ac2d48ea60370b.png

5. 데이터베이스 만들기

새 데이터베이스를 만들려면 '데이터베이스 만들기'를 클릭합니다.

71761f0803038a5.png

새 데이터베이스의 이름을 입력합니다. 원한다면 이 시점에 스키마를 제공할 수도 있습니다.

d7ca47df879931c2.png

이 단계에서는 스키마 제공을 건너뛰고 '만들기'를 클릭합니다. 빈 데이터베이스를 만듭니다

e398ab29aad3d601.png

'만들기'를 클릭하면 새 데이터베이스가 생성됩니다.

4164af0df20ca180.png

6. 샘플 데이터 로드 및 쿼리

이 Codelab에서는 sampledb를 사용하여 샘플 데이터를 로드하고 쿼리합니다. Sampledb는 다양한 데이터 세트를 포함하며 데이터를 기존 데이터베이스로 가져올 수 있습니다.

프로그램은 Google Cloud Shell에서 실행합니다. 이 프로젝트에서 Google Cloud Shell을 처음 사용하는 경우 상단 탐색 메뉴에 Google Cloud Shell 로고가 표시됩니다. Cloud Shell을 눌러 활성화합니다.

e23b881395174c00.png

활성화되면 하단에 콘솔이 표시됩니다.

b885c452da656556.png

콘솔에서 sampledb 저장소를 클론하고 안내에 따라 종속 항목을 설치합니다.

$ git clone https://github.com/cloudspannerecosystem/sampledb.git
Cloning into 'sampledb'...
remote: Enumerating objects: 59, done.
remote: Counting objects: 100% (59/59), done.
remote: Compressing objects: 100% (42/42), done.
remote: Total 59 (delta 23), reused 35 (delta 11), pack-reused 0
Unpacking objects: 100% (59/59), done.
$ cd sampledb
$ virtualenv env
$ source env/bin/activate
$ pip install -r requirements.txt

종속 항목이 설치되면 sampledb를 실행하여 샘플 데이터가 있는 새 데이터베이스를 만들 수 있습니다.

$ python batch_import.py my-first-instance my-sample-db

성공하면 'my-sample-db'가 표시됩니다. 새로운 두 개의 표 (댓글 및 스토리)를 추가하여

eb4adca281f8704a.png

샘플 데이터 세트에는 Hacker News의 기사와 의견이 포함되어 있습니다. '쿼리' 탭을 클릭하면 데이터 쿼리와 탐색을 시작합니다.

8b95a3b14709b285.png

7. 삭제

이 단계는 선택사항입니다. Cloud Spanner 인스턴스로 계속 실험하려는 경우 지금은 삭제할 필요가 없습니다. 하지만 사용 중인 프로젝트에는 인스턴스에 대한 요금이 계속 청구됩니다. 이 인스턴스가 더 이상 필요하지 않은 경우 요금이 청구되지 않도록 지금 삭제해야 합니다.

'my-first-instance'를 클릭하여 인스턴스 페이지로 돌아갑니다. 을 클릭합니다.

2a226b985f43074f.png

'삭제'를 클릭합니다. 버튼을 클릭하여 인스턴스를 삭제합니다.

27ee8f9656364f98.png

인스턴스 삭제는 영구적입니다. 해당 인스턴스의 데이터는 복구할 수 없습니다. 실수로 잘못된 인스턴스를 삭제하지 않도록 하려면 확인 대화상자에 인스턴스 이름을 입력하여 삭제를 확인해야 합니다.

537e18cf2dd7a668.png

인스턴스 이름을 입력하고 '삭제'를 누릅니다.

8. 축하합니다.

지금까지 새 Cloud Spanner 인스턴스를 만들고, 빈 데이터베이스를 만들고, 샘플 데이터를 로드하고, Cloud Spanner 인스턴스 (선택 사항)를 삭제했습니다.

학습한 내용

  • Google Cloud 콘솔을 통해 Cloud Spanner 인스턴스 만들기
  • Cloud Spanner 인스턴스에서 새 데이터베이스 만들기
  • sampledb를 사용하여 샘플 데이터를 로드하고 쿼리합니다.
  • Cloud Spanner 인스턴스 삭제

자세히 알아보기