데이터베이스 생성 및 관리
이 페이지에서는 MongoDB 호환성 데이터베이스를 사용하여 Firestore를 만들고, 업데이트하고, 삭제하는 방법을 설명합니다. 프로젝트당 Firestore 데이터베이스 여러 개를 만들 수 있습니다. 여러 데이터베이스를 사용하여 프로덕션 및 테스트 환경을 설정하고 고객 데이터를 격리하며 데이터 리전화를 수행할 수 있습니다.무료 등급 사용량
Firestore는 비용 없이 시작할 수 있는 무료 등급을 제공합니다.
무료 등급은 프로젝트당 하나의 Firestore 데이터베이스에만 적용됩니다. 무료 등급 데이터베이스가 없는 프로젝트에서 생성된 첫 번째 데이터베이스에 무료 등급이 적용됩니다. 무료 등급이 적용된 데이터베이스가 삭제되면 다음에 생성되는 데이터베이스에 무료 등급이 적용됩니다.
시작하기 전에
데이터베이스를 만들기 전에 다음을 완료해야 합니다.
-
Make sure that billing is enabled for your Google Cloud project.
- 다음 섹션에 설명된 대로 적절한 Identity and Access Management 역할을 할당합니다.
필요한 역할
데이터베이스를 만들고 관리하려면 Owner
또는 Datastore Owner
Identity and Access Management 역할이 필요합니다. 이러한 역할은 필수 권한을 부여합니다.
필수 권한
데이터베이스를 관리하려면 다음 권한이 필요합니다.
- 데이터베이스 만들기:
datastore.databases.create
- 데이터베이스 구성 읽기:
datastore.databases.getMetadata
- 데이터베이스 구성:
datastore.databases.update
- 데이터베이스 삭제:
datastore.databases.delete
데이터베이스 만들기
MongoDB 호환성 데이터베이스가 있는 Firestore를 만들려면 다음 방법 중 하나를 사용하세요.
Google Cloud 콘솔
-
Google Cloud 콘솔에서 데이터베이스 페이지로 이동합니다.
- Firestore 데이터베이스 만들기를 클릭합니다.
- 데이터베이스 ID를 입력합니다.
- Enterprise 버전을 선택합니다.
- 데이터베이스의 위치를 선택합니다.
- (선택사항) 암호화를 맞춤설정해야 하는 경우 암호화 옵션 표시를 클릭하고 암호화 옵션을 구성합니다.
- 데이터베이스 만들기를 클릭합니다.
gcloud CLI
gcloud firestore databases create
명령어를 사용하고 --edition=enterprise
를 설정합니다.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise
다음을 바꿉니다.
- DATABASE_ID: 유효한 데이터베이스 ID
- LOCATION: MongoDB 호환 Firestore 멀티 리전 또는 리전의 이름
삭제 보호를 사용 설정하려면 --delete-protection
플래그를 추가합니다.
이 설정을 중지할 때까지는 삭제 보호가 사용 설정된 데이터베이스를 삭제할 수 없습니다. 이 설정은 기본적으로 사용 중지되어 있습니다.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise \ --delete-protection
Terraform
google_firestore_database
리소스를 사용하고 database_edition
를 ENTERPRISE
로 설정합니다.
resource "google_firestore_database" "database" { name = "DATABASE_ID" location_id = "LOCATION" type = "FIRESTORE_NATIVE" database_edition = "ENTERPRISE" // Optional delete_protection_state = "DELETE_PROTECTION_STATE" }
다음을 바꿉니다.
- DATABASE_ID: 유효한 데이터베이스 ID
- LOCATION: MongoDB 호환 Firestore 멀티 리전 또는 리전의 이름
- DELETE_PROTECTION_ENABLEMENT:
DELETE_PROTECTION_ENABLED
또는DELETE_PROTECTION_DISABLED
삭제 보호를 사용 설정하려면 delete_protection_state
을 DELETE_PROTECTION_ENABLED
로 설정합니다.
이 설정을 중지할 때까지는 삭제 보호가 사용 설정된 데이터베이스를 삭제할 수 없습니다. 이 설정은 기본적으로 사용 중지되어 있습니다.
데이터베이스 ID
유효한 데이터베이스 ID에는 다음을 준수하는 ID가 포함됩니다.
- 문자, 숫자, 하이픈(
-
) 문자만 포함합니다. - 문자는 소문자여야 합니다.
- 첫 번째 글자는 문자여야 합니다.
- 마지막 글자는 문자 또는 숫자여야 합니다.
- 최소 4자(영문 기준)입니다.
- 최대 63자(영문 기준)입니다.
- UUID이거나 UUID와 유사해서는 안 됩니다. 예를 들어
f47ac10b-58cc-0372-8567-0e02b2c3d479
와 같은 ID를 사용하지 마세요.
데이터베이스를 삭제하면 5분 동안 데이터베이스 ID를 재사용할 수 없습니다.
보호 삭제
삭제 보호를 사용하여 데이터베이스가 실수로 삭제되는 것을 방지하세요. 삭제 보호는 다음과 같이 작동합니다.
- 삭제 보호가 사용 중지된 데이터베이스는 삭제 보호를 사용 중지할 때까지 삭제할 수 없습니다.
- 삭제 보호는 기본적으로 사용 중지되어 있습니다.
- 데이터베이스를 만들 때 삭제 보호를 사용 설정하거나 데이터베이스 구성을 업데이트하여 삭제 보호를 사용 설정할 수 있습니다.
데이터베이스 나열
다음 방법 중 하나를 사용하여 데이터베이스를 나열합니다.
콘솔
Google Cloud 콘솔에서 데이터베이스 페이지로 이동합니다.
gcloud CLI
gcloud firestore databases list
명령어를 사용하여 프로젝트의 모든 데이터베이스를 나열합니다.
gcloud firestore databases list
데이터베이스 세부정보 보기
단일 데이터베이스에 대한 세부정보를 보려면 다음 방법 중 하나를 사용합니다.
콘솔
-
Google Cloud 콘솔에서 데이터베이스 페이지로 이동합니다.
- 데이터베이스 목록에서 데이터베이스를 선택합니다.
gcloud CLI
gcloud firestore databases describe
명령어를 사용합니다.
gcloud firestore databases describe --database=DATABASE_ID
DATABASE_ID를 데이터베이스 ID로 바꿉니다.
데이터베이스 구성 업데이트
데이터베이스의 구성 설정을 업데이트하려면 gcloud firestore databases update
명령어를 사용합니다.
이 명령어를 사용하여 삭제 보호를 변경, 사용 설정 또는 사용 중지합니다.
삭제 방지 설정 업데이트
데이터베이스에서 삭제 보호를 사용 설정하려면 gcloud firestore databases update
명령어를 --delete-protection
플래그와 함께 사용합니다. 예를 들면 다음과 같습니다.
gcloud CLI
gcloud firestore databases update --database=DATABASE_ID --delete-protection
DATABASE_ID를 데이터베이스 ID로 바꿉니다.
데이터베이스에서 삭제 보호를 사용 중지하려면 gcloud firestore databases update
명령어를 --no-delete-protection
플래그와 함께 사용합니다. 예를 들면 다음과 같습니다.
gcloud CLI
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection
DATABASE_ID를 데이터베이스 ID로 바꿉니다.
데이터베이스 삭제
데이터베이스를 삭제하려면 콘솔이나 명령줄 도구를 사용합니다. 데이터베이스 삭제 작업에 대한 요금은 청구되지 않습니다.
데이터베이스에 삭제 보호 설정이 사용 설정된 경우 먼저 삭제 보호를 중지해야 합니다.
Google Cloud 콘솔
-
Google Cloud 콘솔에서 데이터베이스 페이지로 이동합니다.
- 삭제하려는 데이터베이스의 작업 열에서 더보기를 클릭합니다. 삭제를 클릭합니다. 대화상자가 나타납니다.
데이터베이스를 삭제하시겠어요? 대화상자의 텍스트 필드에 데이터베이스 ID를 입력하여 삭제를 확인합니다. 삭제를 클릭합니다. 콘솔에 작업의 성공 또는 실패가 표시됩니다.
작업이 실패하면 데이터베이스 세부정보를 보고 삭제 보호가 사용 중지되어 있는지 확인합니다. 삭제 보호를 중지하려면 삭제 보호 설정 업데이트를 참조하세요.
gcloud CLI
`gcloud firestore databases delete` 명령어를 사용합니다.
gcloud firestore databases delete --database=DATABASE_ID
DATABASE_ID를 삭제할 데이터베이스의 ID로 바꿉니다.
데이터베이스별 액세스 권한 구성
Identity and Access Management 조건을 사용하여 데이터베이스 수준별로 액세스 권한을 구성할 수 있습니다. 다음 예시에서는 Google Cloud CLI를 사용하여 하나 이상의 데이터베이스에 조건부 액세스 권한을 할당합니다. Google Cloud 콘솔에서 IAM 조건을 정의할 수도 있습니다.
기존 IAM 정책 보기
gcloud projects get-iam-policy PROJECT_ID
PROJECT_ID
를 프로젝트 ID로 설정합니다.
데이터베이스에 대한 액세스 권한 부여
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name=="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'
다음을 설정합니다.
PROJECT_ID
: 프로젝트 ID입니다.EMAIL
: 특정 계정을 나타내는 이메일 주소입니다. 예를 들면[email protected]
입니다.DATABASE_ID
: 데이터베이스 IDTITLE
: 표현식의 제목(선택사항)입니다.DESCRIPTION
: 표현식의 설명(선택사항)입니다.
데이터베이스 1개를 제외한 모든 데이터베이스에 액세스 권한 부여
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name!="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'
다음을 설정합니다.
PROJECT_ID
: 프로젝트 ID입니다.EMAIL
: 특정 계정을 나타내는 이메일 주소입니다. 예를 들면[email protected]
입니다.DATABASE_ID
: 데이터베이스 IDTITLE
: 표현식의 제목(선택사항)입니다.DESCRIPTION
: 표현식의 설명(선택사항)입니다.
지정된 구성원 및 역할의 정책 삭제
gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all
다음을 설정합니다.
PROJECT_ID
: 프로젝트 ID입니다.EMAIL
: 특정 계정을 나타내는 이메일 주소입니다. 예를 들면[email protected]
입니다.
제한사항
프로젝트당 최대 100개의 데이터베이스를 포함할 수 있습니다. 지원팀에 문의하여 이 한도 상향을 요청할 수 있습니다.
다음 단계
- 빠른 시작: 데이터베이스 만들기 및 연결을 실행합니다.
- 동작 차이에 대해 알아보세요.
- MongoDB 호환 Firestore의 Cloud Monitoring 측정항목에 대해 알아보세요.