Firebase는 Application Design Center (ADC) 에서 제공하는 Google Cloud와 통합되어 엔터프라이즈 고객이 표준화 및 거버넌스 요구사항을 충족하는 동시에 앱 개발자가 신속하게 출시할 수 있도록 지원합니다. ADC를 사용하면 리소스 프로비저닝, IAM 권한 부여 등을 위한 가드레일을 정의하는 사전 정의된 템플릿을 통해 인프라가 조직 표준 및 권장사항을 준수하도록 할 수 있습니다.
이 페이지에서는 다음을 알아봅니다.
ADC 및 Firebase 개요
Google Cloud 개요는 문서를 검토하는 것이 좋습니다ADC. Google Cloud 문서에서는 ADC 주요 개념 및 초기 설정 가이드를 비롯한 심층 가이드도 여러 개 제공합니다.
ADC를 사용할 때 '앱'은 비즈니스 기능을 함께 제공하는 리소스 및 서비스의 논리적 그룹으로 정의됩니다. Firebase 개발자의 경우 ADC "앱"을 Firebase 프로젝트와 동일한 것으로 생각할 수 있습니다. 등록된 iOS, Android, 웹 앱이 모두 프로젝트의 모든 동일한 리소스와 서비스를 공유하고 액세스할 수 있습니다.
시작하려면 ADC라는 GUI 환경을 사용하여 작업하는 것이 좋습니다. 이 환경은 디자인 캔버스라고 하며 Google Cloud 콘솔에서 사용할 수 있습니다. 디자인 캔버스를 사용하면 앱에서 사용할 수 있는 인프라의 아키텍처 다이어그램을 시각화하고 만들 수 있습니다.
ADC는 Terraform을 기반으로 하므로 ADC를 사용하여 정의된 인프라의 코드 정의에 항상 액세스할 수 있습니다.
지원되는 Firebase 제품
다음은 ADC와 함께 사용할 수 있는 지원되는 Firebase 제품의 초기 집합입니다.
- Firebase AI Logic
- Firebase Authentication
- Firebase App Check
- Cloud Firestore
- Firebase Security Rules
ADC 사용을 위한 주요 페르소나
ADC를 이해하고 사용하는 일반적인 방법은 두 가지 페르소나를 기반으로 ADC 관련 작업을 분류하는 것입니다.
플랫폼 엔지니어: 이 페르소나는 재사용 가능하고 정책이 적용된 ADC 템플릿을 설계, 확인, 게시하여 ADC 카탈로그에 추가합니다.
애플리케이션 개발자: 이 페르소나는 게시된 ADC 템플릿 (예: 팀의 ADC 카탈로그)을 사용하여 인프라를 구성하고 배포합니다. 또한 앱의 실제 코드베이스와 기능을 개발합니다.
액세스 제어를 위한 필수 IAM 역할
IAM 역할을 할당하면 특정 작업을 수행할 수 있는 프로젝트 구성원 (주 구성원)을 제어할 수 있습니다.
예를 들어 공간을 만들고 할당하고, 카탈로그를 관리하고, 템플릿을 설계해야 하는 플랫폼 엔지니어에게 App Design Center 관리자 역할(roles/designcenter.admin)을 할당할 수 있습니다. 하지만 애플리케이션 개발자가 템플릿을 사용 할 수는 있지만 템플릿을 만들 수는 없도록 애플리케이션 편집자 역할 (roles/designcenter.applicationEditor)만 할당할 가능성이 높습니다.
다음 표에서는 ADC-관련 작업, 대상 페르소나, 필수 역할을 설명합니다.
| 작업 | 페르소나 | IAM 역할 1 |
|---|---|---|
| 템플릿 만들기 및 관리 | ||
|
전체 ADC 수명 주기 관리 (공간, 카탈로그, 템플릿 관리, 앱 구성 및 배포 포함) |
플랫폼 엔지니어 |
관리 프로젝트의 App Design Center 관리자 ( roles/designcenter.admin |
| 템플릿 만들기 및 관리, 앱 구성 및 배포 | 플랫폼 엔지니어 |
관리 프로젝트의 Application Design Center 사용자 ( roles/designcenter.user |
| ADC 앱 배포를 위한 서비스 계정 만들기 ADC 앱 | ||
| 서비스 계정 만들기 | 플랫폼 엔지니어 |
서비스 계정 만들기 ( roles/iam.serviceAccountCreator |
| 서비스 계정에 배포에 사용되는 프로젝트ADC에 대한 액세스 권한 부여 | 플랫폼 엔지니어 |
_배포 프로젝트_의 프로젝트 IAM 관리자 ( roles/resourcemanager.projectIamAdmin |
| ADC 앱 구성 및 배포ADC | ||
|
전체 앱 수명 주기 제어 (소스 코드 및 CI/CD 시스템과의 통합 포함) |
애플리케이션 개발자 |
_관리 프로젝트_의 애플리케이션 관리자 ( roles/designcenter.applicationAdmin |
| 관리자가 설정한 기존 템플릿 및 연결 을 기반으로 앱 구성 및 배포 | 애플리케이션 개발자 |
애플리케이션 편집자 ( roles/designcenter.applicationEditor |
1 이러한 역할 중 일부는 관리 프로젝트에 설정해야 합니다. 이 프로젝트는 Google Cloud 계층 구조 내의 최상위 리소스입니다.
일반 워크플로
이 섹션에서는 ADC 템플릿을 만들고 사용하는 일반적인 워크플로를 설명합니다. 단계에는 일반적으로 단계를 수행하는 페르소나가 태그로 지정됩니다.
1단계: ADC 설정 (플랫폼 엔지니어)
플랫폼 엔지니어 페르소나 (또는 그 이상)는 이러한 작업을 완료하여 ADC을 설정합니다. 이러한 작업은 일반적으로 ADC를 사용하도록 모든 것을 설정하기 위해 한 번만 완료하면 됩니다 ADC.
초기 ADC 설정.
초기 설정 가이드에 있는 단계와 안내를 따르세요.ADCGoogle Cloud 이 가이드에서는 폴더 수준 경계 를 설정한다고 가정합니다.
이 설정을 완료하면 팀이 공동작업하고, 템플릿을 만들고, 애플리케이션을 배포할 수 있는 전용 영역인 공간이 있어야 합니다. 이 공간 (및 폴더와 카탈로그)이 ADC로 작업하려는 모든 사용자와 공유되는지 확인합니다. ADC
공간에 대한 액세스 권한 및 사용자 설정.
공간 사용자 관리 단계에 따라 ADC 문서에서 Google Cloud 진행합니다. 액세스 제어를 위한 필수 IAM 역할에 관해 이 페이지의 앞부분에서 설명한 안내를 사용합니다 .
프로젝트 사전 프로비저닝.
폴더에 하나 이상의 새 Google Cloud 프로젝트를 만듭니다. 이러한 프로젝트에 Cloud Billing 계정을 연결해야 합니다. 이러한 프로젝트는 애플리케이션 개발자가 템플릿에 정의된 인프라를 배포할 때 사용합니다.
배포 서비스 계정 구성.
ADC는 범위가 좁은 서비스 계정을 사용하여 리소스의 자동 프로비저닝을 관리합니다. 이렇게 하면 애플리케이션 개발자가 자체 계정을 사용하여 인프라를 배포할 수 없습니다.
ADC는 생성한 템플릿의 배포를 테스트할 때 범위를 좁힌 서비스 계정을 자동으로 만들 수 있습니다. 애플리케이션 개발자에게 적합하다고 생각하는 권한이 있는 자체 서비스 계정을 가져올 수도 있습니다.
2단계: 템플릿 만들기 (플랫폼 엔지니어)
플랫폼 엔지니어 페르소나는 디자인 캔버스 또는 Gemini Cloud Assist를 사용하여 새 ADC 템플릿을 만듭니다.
리소스 정의.
디자인 캔버스를 사용하여 구성요소를 캔버스로 드래그 앤 드롭하고 구성요소 간에 연결을 만듭니다. 이러한 구성요소는 애플리케이션 개발자가 사용할 Firebase (및 Google Cloud) 서비스를 정의하는 방법입니다.
예를 들어 템플릿은 다음과 같은 리소스를 정의할 수 있습니다.
- 애플리케이션 개발자는 모든 리소스를 사용하는 iOS, Android, 웹 앱을 개발할 수 있습니다.
- 애플리케이션 개발자는 앱에서 Firebase AI Logic, Firebase Authentication, Cloud Firestore, Firebase Security Rules를 사용할 수 있습니다 (ADC에 지원되는 모든 Firebase 제품 목록 참고).
- Firebase Security Rules은 기본적으로 모든 액세스 요청을 거부하도록 설정됩니다. 그런 다음 애플리케이션 개발자가 자체 배포에 이 템플릿을 사용하면 필요한 액세스 모델에 맞게 이러한 Security Rules을 변경할 수 있습니다.
정책 정의.
배포된 인프라의 IAM 역할 또는 리소스에 허용되는 리전과 같은 정책을 정의하려면 해당 정책의 각 인터페이스에서 정책을 설정해야 합니다. ADC는 현재 템플릿 수준에서 정책 정의를 지원하지 않습니다.
프로젝트 구성원에게 수행할 작업에 따라 특정 Firebase IAM 역할을 할당할 수 있습니다. 예를 들어 Firebase 콘솔에서 리소스만 확인해야 하는 경우 Firebase 뷰어 역할 (
roles/firebase.viewer)을 할당합니다.폴더 또는 조직 수준에서 리소스의 리전 제한을 설정할 수 있습니다.
카탈로그에 템플릿 추가.
템플릿을 테스트한 후 팀의 ADC 카탈로그에 추가합니다. 이 카탈로그는 적절한 사용자, 특히 애플리케이션 개발자가 템플릿을 사용할 수 있도록 공유해야 합니다 (위의 1단계: ADC설정 참고).
3단계: 템플릿 사용 (애플리케이션 개발자)
애플리케이션 개발자 페르소나는 사전 정의된 템플릿을 선택하고 특정 사용 사례에 맞게 구성한 후 인프라를 배포합니다.
템플릿 선택 및 구성.
ADC 카탈로그에서 템플릿 을 선택하고 구성하여 애플리케이션 초안을 만듭니다. 리소스에 가능한 리전과 같은 사용 가능한 구성은 플랫폼 엔지니어가 템플릿을 만들 때 설정한 구성으로 제한됩니다.
인프라 배포.
애플리케이션 초안이 생성된 후 인프라 배포를 위해 생성된 사전 프로비저닝된 프로젝트 중 하나에 ADC 앱을 배포합니다 (위의 1단계: ADC 설정 참고).
Firebase 콘솔을 방문하여 프로젝트에 프로비저닝된 리소스와 사용 설정된 서비스를 볼 수 있습니다.Firebase
https://console.firebase.google.com/project/PROJECT_ID/overview
4단계: 실제 앱 개발 (애플리케이션 개발자)
ADC는 리소스 프로비저닝 및 API 사용 설정과 같은 Firebase 및 Google Cloud 인프라를 설정하는 데 도움이 됩니다. 하지만 이러한 리소스와 API를 사용하는 실제 앱의 코딩은 수행하지 않습니다.
다음은 애플리케이션 개발자 페르소나가 수행해야 하는 몇 가지 중요한 사항입니다.
앱의 코드베이스를 Firebase에 연결.
Firebase 구성을 가져온 후 각 앱의 코드베이스에 추가합니다.
예를 들어 템플릿에서 Android 앱을 허용하는 경우 Android 프로젝트 내의 적절한 디렉터리에
google-services.json파일을 추가해야 합니다.코드와 리소스를 정렬된 상태로 유지.
(Cloud Firestore를 사용하는 경우) 앱의 Cloud Firestore 데이터 모델에 맞게 Firebase Security Rules를 업데이트하고 게시해야 합니다.
또 뭘 할 수 있니?
- App Hub에 자동으로 등록되는 배포된 ADC "앱"을 모니터링합니다. 이렇게 하면 더 광범위한 Google Cloud 배포 컨텍스트 내에서 Firebase 리소스에 대한 통합 모니터링, 비용 관찰, 문제 해결이 가능합니다.