Data Connect 서비스 및 데이터베이스 관리

Data Connect 프로젝트는 다음 두 가지 주요 인프라 요소로 구성됩니다.

  • 하나 이상의 Data Connect 서비스 인스턴스
  • 하나 이상의 PostgreSQL용 Cloud SQL 인스턴스

이 가이드에서는 Data Connect 서비스 인스턴스를 설정하고 관리하는 방법을 설명하고 연결된 Cloud SQL 인스턴스를 관리하는 방법을 소개합니다.

Firebase Data Connect의 지역 구성

Data Connect를 사용하는 프로젝트에는 위치 설정이 필요합니다.

Data Connect 서비스 인스턴스를 만들면 서비스 위치를 선택하라는 메시지가 표시됩니다.

사용 가능한 위치

Data Connect 서비스는 다음 리전에서 만들 수 있습니다.

  • asia-east1
  • asia-east2
  • asia-northeast1
  • asia-northeast2
  • asia-northeast3
  • asia-south1
  • asia-southeast1
  • asia-southeast2
  • australia-southeast1
  • australia-southeast2
  • europe-central2
  • europe-north1
  • europe-southwest1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • europe-west6
  • europe-west8
  • europe-west9
  • me-west1
  • northamerica-northeast1
  • northamerica-northeast2
  • southamerica-east1
  • southamerica-west1
  • us-central1
  • us-east1
  • us-east4
  • us-south1
  • us-west1
  • us-west2
  • us-west3
  • us-west4

Data Connect 서비스 인스턴스 관리

서비스 만들기

새 서비스를 만들려면 Firebase 콘솔을 사용하거나 Firebase CLI를 사용하여 로컬 프로젝트 초기화를 실행합니다. 이 워크플로는 새 Data Connect 서비스를 만듭니다.

이 흐름에서는 다음 사항도 안내합니다.

  • 새 Cloud SQL 인스턴스 프로비저닝 (무료 등급)
  • 기존 Cloud SQL 인스턴스를 Data Connect에 연결 (Blaze 요금제)

사용자 관리

Data Connect최소 권한의 원칙 (각 사용자 또는 서비스 계정에 필요한 기능을 지원하는 데 필요한 최소 권한 부여) 및 역할 기반 액세스 제어 (RBAC) 개념 (데이터베이스 권한을 관리하는 사전 정의된 역할로 보안 관리 간소화)에 따라 사용자 액세스를 관리하는 도구를 제공합니다.

프로젝트 구성원을 프로젝트의 Data Connect 인스턴스를 수정할 수 있는 사용자로 추가하려면 Firebase Console을 사용하여 적절한 사전 정의된 사용자 역할을 선택합니다.

이러한 역할은 Identity and Access Management (IAM)를 사용하여 권한을 부여합니다. 역할은 권한 모음입니다. 프로젝트 구성원에게 역할을 할당하면 역할에 포함된 모든 권한이 프로젝트 구성원에게 부여됩니다. 자세한 내용은 다음을 참고하세요.

특정 워크플로를 사용 설정할 역할 선택

IAM 역할은 Firebase CLI 워크플로를 통해 Data Connect 프로젝트를 관리할 수 있도록 합니다.

CLI 명령어, 기타 워크플로 필요한 역할
firebase init dataconnect
  • 권한 없음 (Cloud SQL 인스턴스를 연결하지 않은 경우)
  • roles/cloudsql.admin (Cloud SQL 인스턴스 만들기)
firebase deploy -–only dataconnect
  • firebasedataconnect.connectors.*
  • firebasedataconnect.services.*
  • firebasedataconnect.schemas.*
  • roles/cloudsql.admin
firebase dataconnect:sql:diff
  • firebasedataconnect.services.*
  • firebasedataconnect.schemas.*
firebase dataconnect:sql:migrate
  • 대상 Cloud SQL 인스턴스의 roles/cloudsql.admin
firebase dataconnect:sql:grant
  • 대상 Cloud SQL 인스턴스의 roles/cloudsql.admin

Data Connect 서비스 성능 모니터링

서비스 성능 파악

Data Connect 서비스와 PostgreSQL용 Cloud SQL 서비스의 성능이 모두 환경에 영향을 줄 수 있습니다.

  • PostgreSQL용 Cloud SQL 서비스의 경우 할당량 및 한도 문서의 일반 안내를 참고하세요.
  • Data Connect 서비스에는 GraphQL 요청에 대한 할당량이 있으며, 이는 쿼리를 호출하고 실행할 수 있는 속도에 영향을 미칩니다.

    • 클라이언트 앱 커넥터의 전체 프로젝트별 할당량은 분당 6,000개 요청입니다.
    • Firebase Admin SDK 및 REST API의 전체 프로젝트별 할당량은 분당 요청 6,000개입니다.
    • 사용자별 분당 요청 1,200개의 할당량 여기서 사용자당은 클라이언트 앱, Firebase Admin SDK 또는 REST API 중 어디에서든 하나의 IP 주소에서 시작한 요청에 한도가 적용된다는 뜻입니다.

    할당량 한도가 발생하면 Firebase 지원팀에 문의하여 관련 할당량을 조정하세요.

서비스 성능, 사용량, 결제 모니터링

Firebase 콘솔에서 전 세계적으로 그리고 작업별로 요청, 오류, 작업 비율을 모니터링할 수 있습니다.

Cloud SQL 인스턴스 관리

무료 체험판 제한사항

3개월 무료 체험에서는 다음 PostgreSQL용 Cloud SQL 기능이 지원되지 않습니다.

  • 15.x가 아닌 PostgreSQL 버전
  • 기존 PostgreSQL용 Cloud SQL 인스턴스 사용
  • db-f1-micro와 다른 머신 등급
  • 스토리지, 메모리, CPU와 같은 인스턴스 리소스 변경
  • 읽기 복제본
  • 비공개 인스턴스 IP 주소
  • 고가용성 (다중 영역): 단일 영역 인스턴스만 지원됨
  • Enterprise Plus 버전
  • 자동 백업
  • 스토리지 자동 증가

Cloud SQL 인스턴스 관리

일반적으로 Google Cloud 콘솔을 사용하여 Cloud SQL 인스턴스를 관리하고 다음 워크플로를 실행할 수 있습니다.

  • Cloud SQL 인스턴스 중지 및 다시 시작
  • Cloud SQL 데이터베이스 만들기 및 삭제 (인스턴스 내)
  • 플래그를 사용하여 PostgreSQL 데이터베이스 인스턴스를 시작하고 다양한 확장 프로그램을 사용합니다.
  • Google Cloud 콘솔에서 Cloud SQL 관측 가능성 기능을 사용하여 성능 모니터링
  • IAM, Secret Manager, 데이터 암호화, 인증 프록시와 같은 기능으로 Cloud SQL 액세스 및 보안 관리
  • Cloud SQL 사용자를 추가, 삭제, 관리합니다.

이러한 워크플로 및 기타 워크플로는 PostgreSQL용 Cloud SQL 문서를 참고하세요.

PostgreSQL 사용자 역할 부여

Data Connect최소 권한의 원칙 (각 사용자 또는 서비스 계정에 필요한 기능을 지원하는 데 필요한 최소 권한 부여) 및 역할 기반 액세스 제어 (RBAC) 개념 (데이터베이스 권한을 관리하는 사전 정의된 역할로 보안 관리 간소화)에 따라 사용자 액세스를 관리하는 도구를 제공합니다.

경우에 따라 Cloud Run, Cloud Functions 또는 GKE와 같은 원하는 SQL 클라이언트를 통해 Data Connect에서 관리하는 Cloud SQL 데이터베이스에 직접 연결할 수 있습니다.

이러한 연결을 사용 설정하려면 다음과 같이 SQL 권한을 부여해야 합니다.

  • Google Cloud 콘솔에서 또는 gcloud CLI를 사용하여 인스턴스에 연결해야 하는 사용자 또는 서비스 계정에 roles/cloudsql.client IAM 역할을 할당합니다.
  • Firebase CLI를 사용하여 필요한 PostgreSQL 역할 부여

Cloud SQL IAM 역할 할당

PostgreSQL용 Cloud SQL을 사용하여 IAM 역할 roles/cloudsql.client를 할당하는 방법에 관한 자세한 내용은 역할 및 권한을 참고하세요.

PostgreSQL 역할 부여

Firebase CLI를 사용하면 firebase dataconnect:sql:grant 명령어로 프로젝트와 연결된 사용자 또는 서비스 계정에 사전 정의된 PostgreSQL 역할을 부여할 수 있습니다.

예를 들어 작성자 역할을 부여하려면 CLI에서 다음 명령어를 실행합니다.

firebase dataconnect:sql:grant --role writer

자세한 내용은 CLI 참조 가이드를 참고하세요.

기존 PostgreSQL용 Cloud SQL 데이터베이스 통합

기본 데이터베이스 프로비저닝 및 관리 흐름은 프로젝트에서 새 (신규) 데이터베이스를 사용한다고 가정하며, firebase deploy를 호출하면 Data Connect이 적용할 데이터베이스 스키마 변경사항을 표시하고 승인한 후 마이그레이션을 실행합니다.

기존 (브라운필드) 데이터베이스의 경우 스키마를 관리하기 위한 자체 워크플로가 있고 이전에 Data Connect 도구를 사용할 수 없지만 Data Connect 프로젝트에서 데이터베이스를 사용하여 모바일 및 웹용 SDK 생성, 쿼리 기반 승인, 클라이언트 연결 관리 등을 활용하려고 할 수 있습니다.

이 섹션에서는 후자의 경우, 즉 기존 데이터베이스를 Data Connect와 통합하는 방법을 안내합니다.

에 따라 Database Migration Service를 사용할 수 있습니다.

기존 데이터베이스를 Data Connect 프로젝트에 통합

기존 데이터베이스를 통합하는 워크플로는 일반적으로 다음 단계를 포함합니다.

  1. Firebase 콘솔에서 Data Connect 프로젝트를 설정하는 동안 인스턴스와 데이터베이스를 선택합니다.
  2. Firebase CLI를 사용하여 firebase dataconnect:sql:setup 명령어를 실행하고 Data Connect가 SQL 이전을 처리하도록 허용하는 옵션을 거부합니다.

    맞춤 도구로 인해 데이터베이스 스키마가 변경되지 않도록 setup 명령어는 적절한 리더 및 작성자 역할을 할당하지만 owner 역할은 할당하지 않습니다. setup 명령어 및 PostgreSQL 역할에 관한 자세한 내용은 CLI 참조 가이드를 참고하세요.

  3. 데이터베이스 스키마와 일치하는 Data Connect GraphQL 스키마를 작성합니다.

    GraphQL 스키마가 PostgreSQL 스키마와 호환되는 경우에만 GraphQL 스키마, 쿼리, 변형을 배포할 수 있습니다.

    두 스키마의 정렬을 간소화하기 위해 데이터베이스를 이전하는 데 필요한 SQL 문을 제공하는 firebase dataconnect:sql:diff 명령어를 제공합니다. 이를 사용하여 기존 데이터베이스 스키마와 일치하도록 GraphQL 스키마를 반복적으로 미세 조정할 수 있습니다.

  4. 이제 로컬 개발 환경에서 GraphQL 스키마, 쿼리, 변형을 빠르게 반복할 수 있습니다. 그런 다음 만족스러우면 firebase dataconnect:sql:diff를 사용하여 맞춤 도구 및 흐름을 사용하여 PostgreSQL에 적용할 수 있는 SQL 마이그레이션 문을 가져올 수 있습니다.

  5. 또는 먼저 PostgreSQL 데이터베이스를 직접 변경한 다음 GraphQL 스키마로 다시 포팅해 볼 수도 있습니다. 스키마 변경이 지원되지 않는 경우가 있을 수 있으므로 GraphQL 우선 접근 방식을 사용하는 것이 좋습니다. 또한 PostgreSQL 스키마가 배포된 커넥터 쿼리 또는 변이와 호환되지 않도록 변경사항을 배포하면 이러한 커넥터가 작동을 멈추거나 오작동할 수 있습니다.