App Design Center(ADC)と Firebase を使ってみる

Firebase は Google CloudApplication Design CenterADCと統合されているため、企業のお客様は標準化とガバナンスのニーズを満たしながら、アプリ デベロッパーが迅速にリリースできるようになります。ADC を使用すると、リソースのプロビジョニングや IAM 権限の付与などのガードレールを定義する事前定義されたテンプレートを通じて、インフラストラクチャが組織の標準とベスト プラクティスに準拠します。

このページでは、次のことについて説明します。

ADC と Firebase の概要

ADC の概要については、Google Cloud のドキュメントをご確認ください。Google Cloud のドキュメントには、ADC の詳細なガイドもいくつか用意されています。主なコンセプト初期設定ガイドなどがあります。

ADC を使用する場合、「アプリ」は、ビジネス機能をまとめて提供するリソースとサービスの論理グループとして定義されます。Firebase デベロッパーの場合、ADC「アプリ」は Firebase プロジェクトと同等と考えることができます。登録された iOS、Android、ウェブアプリはすべて、プロジェクトの同じリソースとサービスを共有し、アクセスできます。

まず、Google Cloud コンソールで使用できるデザイン キャンバスという GUI を使用して ADC を操作することをおすすめします。設計キャンバスを使用すると、アプリで使用可能にするインフラストラクチャのアーキテクチャ図を視覚化して作成できます。

ADC は Terraform によってサポートされているため、ADC を使用して定義されたインフラストラクチャのコード定義には常にアクセスできます。

サポートされている Firebase プロダクト

ADC で使用できる、サポートされている Firebase プロダクトの初期セットは次のとおりです。

ADC を使用する主なペルソナ

ADC を理解して使用する一般的な方法は、次の 2 つのペルソナに基づいて 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
テンプレートの作成と管理、アプリの構成とデプロイ プラットフォーム エンジニア 管理プロジェクトに対する App Design Center ユーザー
)(roles/designcenter.user
ADC アプリをデプロイするためのサービス アカウントを作成する
サービス アカウントを作成する プラットフォーム エンジニア サービス アカウントの作成
roles/iam.serviceAccountCreator) (管理プロジェクト
ADC デプロイに使用されるプロジェクトへのアクセス権をサービス アカウントに付与する プラットフォーム エンジニア デプロイ プロジェクトに対するプロジェクト IAM 管理者
roles/resourcemanager.projectIamAdmin
ADC アプリを構成してデプロイする
アプリのライフサイクル全体を制御する
(ソースコードと CI/CD システムとの統合を含む)
アプリケーション デベロッパー 管理プロジェクトに対するアプリケーション管理者
roles/designcenter.applicationAdmin
管理者が設定した既存のテンプレートと接続に基づいてアプリを構成してデプロイする アプリケーション デベロッパー 管理プロジェクトに対するアプリケーション編集者
roles/designcenter.applicationEditor

1 これらのロールのいくつかは、Google Cloud 階層内の最上位リソースである管理プロジェクトで設定する必要があります。

全般的なワークフロー

このセクションでは、ADC テンプレートを作成して使用する一般的なワークフローについて説明します。手順には、通常その手順を行うペルソナのタグが付けられています。

  1. ステップ 1: ADC を設定する(プラットフォーム エンジニア)
  2. ステップ 2: テンプレートを作成する(プラットフォーム エンジニア)
  3. ステップ 3: テンプレートを使用する(アプリケーション デベロッパー)
  4. ステップ 4: 実際のアプリを開発する(アプリケーション デベロッパー)

ステップ 1: ADC を設定する(プラットフォーム エンジニア)

プラットフォーム エンジニア(またはそれ以上のロール)は、これらのタスクを完了して ADC を設定します。通常、これらのタスクは 1 回だけ完了すれば、ADC を使用するための設定がすべて完了します。

  1. 最初の ADC の設定。

    Google Cloud ドキュメントの ADC初期設定ガイドの手順とガイダンスに沿って操作します。このガイドでは、フォルダレベルの境界を設定することを前提としています。

    この設定が完了すると、チームが共同で作業し、テンプレートを作成してアプリケーションをデプロイするための専用領域であるスペースが作成されます。このスペース(およびフォルダとカタログ)が、共同作業を行うすべてのユーザーと共有されていることを確認します。ADC

  2. スペースのアクセス権とユーザーを設定します。

    Google Cloud ドキュメントの ADC のスペース ユーザーを管理するの手順に沿って操作します。このページの冒頭で説明した、アクセス制御に必要な IAM ロールに関するガイダンスを使用します。

  3. プロジェクトを事前プロビジョニングします。

    フォルダに 1 つ以上の新しい Google Cloud プロジェクトを作成します。Cloud Billing アカウントをこれらのプロジェクトにリンクしてください。これらのプロジェクトは、テンプレートで定義されたインフラストラクチャをデプロイするときにアプリケーション デベロッパーによって使用されます。

  4. デプロイ サービス アカウントを構成します。

    ADC は、厳密にスコープ設定されたサービス アカウントを使用して、リソースの自動プロビジョニングを管理します。これにより、アプリケーション デベロッパーは自分のアカウントを使用してインフラストラクチャをデプロイできなくなります。

    ADC は、作成したテンプレートのデプロイをテストする際に、お客様に代わってスコープが限定されたサービス アカウントを自動的に作成できます。アプリケーション デベロッパーに適切と思われる権限を持つ独自のサービス アカウントを使用することもできます。

ステップ 2: テンプレートを作成する(プラットフォーム エンジニア)

プラットフォーム エンジニアのペルソナは、デザイン キャンバスまたは Gemini Cloud Assist を使用して、新しい ADC テンプレートを作成します。

  1. リソースを定義します。

    デザイン キャンバスを使用して、コンポーネントをキャンバスにドラッグ&ドロップし、コンポーネント間の接続を作成します。これらのコンポーネントは、アプリケーション デベロッパーが使用する Firebase(および Google Cloud)サービスを定義する方法です。

    たとえば、テンプレートで次のようなリソースを定義できます。

    • アプリケーション デベロッパーは、リソースをすべて使用する iOS、Android、ウェブアプリを開発できます。
    • アプリケーション デベロッパーは、アプリで Firebase AI LogicFirebase AuthenticationCloud FirestoreFirebase Security Rules を使用できます(ADC でサポートされているすべての Firebase プロダクトのリストをご覧ください)。
    • Firebase Security Rules は、デフォルトですべてのアクセス リクエストを拒否するように初期設定されています。アプリケーション デベロッパーがこのテンプレートを独自のデプロイに使用する際に、必要なアクセスモデルに合わせてこれらの Security Rules を変更できます。
  2. ポリシーを定義します。

    デプロイされたインフラストラクチャの IAM ロールやリソースで許可されるリージョンなどのポリシーを定義する場合は、それらのポリシーのそれぞれのインターフェースで設定する必要があります。現在、ADC はテンプレート レベルでのポリシーの定義をサポートしていません。

    プロジェクト メンバーに特定の Firebase IAM ロールを割り当てることができます。たとえば、Firebase コンソールでリソースを表示するだけでよい場合は、Firebase 閲覧者ロール(roles/firebase.viewer)を割り当てます。

    リソースのリージョン制限は、フォルダレベルまたは組織レベルで設定できます。

  3. テンプレートをカタログに追加します。

    テンプレートをテストしたら、チームの ADC カタログに追加します。このカタログは、適切なユーザー(特にアプリケーション デベロッパー)と共有する必要があります。これにより、デベロッパーはテンプレートを使用できるようになります(上記のステップ 1: ADC を設定するを参照)。

ステップ 3: テンプレートを使用する(アプリケーション デベロッパー)

アプリケーション デベロッパーのペルソナは、事前定義されたテンプレートを選択し、特定のユースケースに合わせて構成してから、インフラストラクチャをデプロイします。

  1. テンプレートを選択して構成します。

    ADC カタログからテンプレートを選択し、構成してアプリケーションの下書きを作成します。使用可能な構成(リソースのリージョンなど)は、テンプレートの作成時にプラットフォーム エンジニアが設定した構成に限定されます。

  2. インフラストラクチャをデプロイします。

    アプリケーションの下書きを作成したら、インフラストラクチャのデプロイ用に作成された事前プロビジョニングされたプロジェクトのいずれかに ADC アプリをデプロイします(上記のステップ 1: ADC を設定するをご覧ください)。

    Firebase コンソールにアクセスして、プロジェクト用にプロビジョニングされたリソースと有効になっているサービスを確認できます。

    )を使用して、ADC でデプロイされた Firebase プロジェクトを直接開くことができます。

ステップ 4: 実際のアプリを開発する(アプリケーション デベロッパー)

ADC は、Firebase と Google Cloud インフラストラクチャ(リソースのプロビジョニングや API の有効化など)の設定に役立ちます。ただし、これらのリソースと API を使用する実際のアプリのコーディングは行いません。

アプリケーション デベロッパーのペルソナが実行する必要がある重要なタスクを次に示します。

  1. アプリのコードベースを Firebase に接続します。

    各アプリのコードベースに Firebase 構成を取得して追加します。

    たとえば、テンプレートで Android アプリが許可されている場合は、google-services.json ファイルを Android プロジェクト内の適切なディレクトリに追加する必要があります。

  2. コードとリソースの整合性を保つ。

    Cloud Firestore を使用している場合) アプリの Cloud Firestore データモデルに合わせて Firebase Security Rules を更新して公開してください。

Google アシスタントの機能

  • デプロイされた ADC「アプリ」をモニタリングする。これらは App Hub に自動的に登録されます。これにより、より広範な Google Cloud デプロイのコンテキスト内で、Firebase リソースの統合モニタリング、費用観測、トラブルシューティングが可能になります。