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 콘솔을 사용하여 적절한 사전 정의된 사용자 역할을 선택하세요.
이러한 역할은 Identity and Access Management (IAM)를 사용하여 권한을 부여합니다. 역할은 권한 모음입니다. 프로젝트 구성원에게 역할을 할당하면 역할에 포함된 모든 권한이 프로젝트 구성원에게 부여됩니다. 자세한 내용은 다음을 참고하세요.
- Firebase IAM 역할 개요
- Data Connect 역할의 자세한 목록
특정 워크플로를 사용 설정할 역할 선택
IAM 역할을 사용하면 Firebase CLI 워크플로를 통해 Data Connect 프로젝트를 관리할 수 있습니다.
CLI 명령어, 기타 워크플로 | 필요한 역할 |
---|---|
firebase init dataconnect
|
|
firebase deploy -–only dataconnect
|
|
firebase dataconnect:sql:diff
|
|
firebase dataconnect:sql:migrate
|
|
firebase dataconnect:sql:grant
|
|
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에서 시작된 요청에 한도가 적용됨을 의미합니다.
이러한 할당량 한도에 도달한 경우 Firebase 지원팀에 문의하여 관련 할당량을 조정하세요.
서비스 성능, 사용량, 결제 모니터링
Firebase 콘솔에서 전역적으로 그리고 작업별로 요청, 오류, 작업률을 모니터링할 수 있습니다.
Cloud SQL 인스턴스 관리
무료 체험판 제한사항
3개월 무료 체험판에서는 다음 PostgreSQL용 Cloud SQL 기능이 지원되지 않습니다.
- PostgreSQL 버전(15.x 제외)
- 기존 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, 보안 비밀 관리자, 데이터 암호화, 인증 프록시와 같은 기능으로 Cloud SQL 액세스 및 보안 관리
- Cloud SQL 사용자를 추가, 삭제, 관리합니다.
이러한 워크플로 및 기타 워크플로에 대해서는 PostgreSQL용 Cloud SQL 문서를 참고하세요.
PostgreSQL 사용자 역할 부여
Data Connect는 최소 권한의 원칙 (필요한 기능을 지원하는 데 필요한 최소 권한을 각 사용자 또는 서비스 계정에 부여)과 역할 기반 액세스 제어 (RBAC) (데이터베이스 권한을 관리하는 사전 정의된 역할로 보안 관리를 간소화) 개념을 따르는 사용자 액세스 관리 도구를 제공합니다.
경우에 따라 Data Connect 관리 Cloud SQL 데이터베이스에 직접 연결하고 싶을 수 있습니다. 예를 들어 Cloud Run, Cloud Functions 또는 GKE를 사용하여 원하는 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와 통합하는 방법에 관한 안내를 제공합니다.
기존 데이터베이스를 Data Connect 프로젝트에 통합
기존 데이터베이스를 통합하는 워크플로는 일반적으로 다음 단계를 포함합니다.
- Firebase 콘솔에서 Data Connect 프로젝트를 설정하는 동안 인스턴스와 데이터베이스를 선택합니다.
Firebase CLI를 사용하여
firebase dataconnect:sql:setup
명령어를 실행하고 Data Connect에서 SQL 마이그레이션을 처리하도록 허용하는 옵션을 거부합니다.맞춤 도구로 실행되지 않는 데이터베이스 스키마의 변경을 방지하기 위해
setup
명령어는 적절한 읽기 권한 사용자 및 쓰기 권한 사용자 역할을 할당하지만owner
역할은 할당하지 않습니다.setup
명령어 및 PostgreSQL 역할에 대한 자세한 내용은 CLI 참조 가이드를 참고하세요.데이터베이스 스키마와 일치하는 Data Connect GraphQL 스키마를 작성합니다.
GraphQL 스키마가 PostgreSQL 스키마와 호환되는 경우에만 GraphQL 스키마, 쿼리, 변형을 배포할 수 있습니다.
두 스키마의 정렬을 간소화하기 위해 데이터베이스를 이전하는 데 필요한 SQL 문을 제공하는
firebase dataconnect:sql:diff
명령어가 제공됩니다. 이를 사용하여 기존 데이터베이스 스키마와 일치하도록 GraphQL 스키마를 반복적으로 개선할 수 있습니다.앞으로는 로컬 개발 환경에서 GraphQL 스키마, 쿼리, 변형을 빠르게 반복할 수 있습니다. 그런 다음 만족하면
firebase dataconnect:sql:diff
를 사용하여 맞춤 도구 및 흐름을 사용하여 PostgreSQL에 적용할 수 있는 SQL 마이그레이션 문을 가져올 수 있습니다.또는 먼저 PostgreSQL 데이터베이스를 직접 변경한 다음 GraphQL 스키마로 다시 포팅할 수도 있습니다. 스키마 변경사항이 지원되지 않는 경우가 있을 수 있으므로 GraphQL 우선 접근 방식을 사용하는 것이 좋습니다. 또한 PostgreSQL 스키마가 배포된 커넥터 쿼리 또는 변형과 호환되지 않도록 변경사항을 배포하면 해당 커넥터가 작동을 중지하거나 오작동할 수 있습니다.