データベースへのアクセス

このページでは、さまざまなプラットフォームから Datastore モードの Firestore データベースにアクセスする方法、課金を有効にする方法、および費用制限を設定する方法について説明します。

始める前に

このページは、Datastore モードのデータベースがすでに作成されていることを前提としています。Datastore モードの Firestore のクイックスタートを完了することでデータベースを作成できます。

App Engine からデータベースにアクセスする

Datastore モードと App Engine の使用を開始するには、次の言語別のページのいずれかをご覧ください。

App Engine スタンダード環境 App Engine フレキシブル環境

App Engine の Datastore モード権限

デフォルトでは、App Engine アプリは同じプロジェクト内にある Datastore モードのデータベースにアクセスできます。各 App Engine アプリは、App Engine のデフォルト サービス アカウントを使用して、Firestore などの GCP サービスへのアクセスを管理します。デフォルトでは、App Engine のデフォルト サービス アカウントにはプロジェクト編集者の IAM のロールがあります。これには、Datastore モードへの完全な読み取りと書き込みアクセス権が含まれます。

App Engine のデフォルト サービス アカウントの IAM 権限を変更できます。ただし変更すると、必要な Firestore 権限を IAM ロールに割り当てなければ、アプリが Firestore にアクセスできなくなる可能性があります。たとえば、Datastore オーナー IAM ロールと Datastore ユーザー IAM ロールでは、Datastore モードの Firestore への読み取りと書き込みアクセス権が付与されます。

App Engine のデフォルトのサービス アカウントを無効にするか削除すると、App Engine アプリで Datastore モード データベースへのアクセスが失われます。App Engine のサービス アカウントを無効にした場合は、再度有効にできます。サービス アカウントの有効化をご覧ください。過去 30 日以内に App Engine サービス アカウントを削除した場合は、サービス アカウントを復元できます。サービス アカウントの削除の取り消しをご覧ください。

Compute Engine インスタンスからデータベースにアクセスする

このセクションでは、新規または既存のプロジェクトで Compute Engine VM インスタンスから Datastore モードのデータベースを有効化してアクセスする方法について説明します。

  1. プロジェクトに対して Google Compute Engine API を有効にします。
    Compute Engine API を有効にする
  2. Google Cloud プロジェクトに対して課金が有効になっていることを確認します。 プロジェクトに対して課金が有効になっていることを確認する方法を学習する

  3. Compute Engine インスタンスを作成します。

Console

  1. Google Cloud Console で、[VM インスタンス] ページに移動します。
  2. [インスタンスを作成] ボタンをクリックします。
  3. [ID と API へのアクセス] セクションで、[アクセス範囲] を設定して Datastore へのアクセスを有効にします。[すべての Cloud API に完全アクセス権を許可] をクリックしてすべての Google Cloud APIs に対するアクセスを許可するか、または [各 API にアクセス権を設定] をクリックし、[Datastore] のプルダウンをクリックして [有効] をクリックすることで、Datastore へのアクセスを許可します。
  4. [作成] ボタンをクリックしてインスタンスを作成します。
  5. インスタンスが実行されていることを確認します。
  6. この新しい Compute Engine インスタンスを使用するには、ブラウザを利用してそのインスタンスに接続します。

gcloud

  1. まだ行っていない場合は、gcloud コマンドライン ツールをインストールして、gcloud compute を設定します。
  2. Google Compute Engine ドキュメントにあるインスタンスの起動手順に沿って Google Compute Engine インスタンスを追加して起動します。下に示すように、プロジェクト ID、インスタンス名、datastoreスコープを指定します。[YOUR_PROJECT_ID] は、以前に作成したプロジェクトの ID です。[YOUR_INSTANCE_NAME] は、Compute Engine インスタンスに使用する名前です。

    export PROJECT_ID=[YOUR_PROJECT_ID]
        export INSTANCE_NAME=[YOUR_INSTANCE_NAME]
        gcloud compute instances create $INSTANCE_NAME --project $PROJECT_ID --scopes datastore
        
  3. インスタンスが実行されていることを確認します。

  4. この新しい Compute Engine インスタンスを使用するには、ssh を使用して接続します。

これでプロジェクト用にすべてのサービスと権限が構成されたので、コードの記述API の確認を始めることができます。

他のプラットフォームからデータベースにアクセスする

このセクションでは、Google Cloud 以外のプラットフォームで実行されている外部アプリケーションから Datastore モードのデータベースにアクセスする方法について説明します。

  1. Google Cloud Console の [サービス アカウント キーの作成] ページに移動します。

    [サービス アカウントキーの作成] ページに移動

  2. [サービス アカウント] の下にあるプルダウン ボックスをクリックし、[新しいサービス アカウント] をクリックします。

  3. サービス アカウントの名前を [サービス アカウント名] に入力します。

  4. [役割] プルダウンで、Cloud Datastore オーナーなどのデータベースへのアクセスを許可する IAM ロールを選択します。

  5. デフォルトの [サービス アカウント ID] を使用するか、別の ID を作成します。

  6. [キーのタイプ] で [JSON] を選択します。

  7. [作成] をクリックします。

  8. 作成が成功すると、ブラウザに秘密鍵がダウンロードされます。Cloud Console でプロンプトが開き、秘密鍵のファイル名が表示されます。このファイルを後で見つけられるようにファイル名を記録したら、[閉じる] をクリックしてプロンプトを閉じます。

  9. サービス アカウントは、[サービス アカウント] セクションに表示されているメールアドレスです。

  10. 秘密鍵は、今ダウンロードしたファイルです。

このサービス アカウントを使用して、サービス アカウント認証情報の提供の説明に従ってアプリケーション コードの認証情報を構成します。

割り当てと課金

料金と割り当ての説明にあるとおり、一定額の無料割り当てが用意されています。つまり、課金を有効化しなくても、使用を開始したり無料割り当ての上限まで Datastore モードの Firestore を使用したりできます。ただし無料割り当てを超えるリソースが必要となった場合は、プロジェクトに対する課金を有効にし、費用制限を設定する必要があります。

課金の有効化と費用制限の設定

費用制限は 1 日あたりの使用制限であり、1 日に課金されるリソースの最高金額を設定するものです。この制限額に達すると、それ以上のコストは発生しませんが、課金対象となる Datastore モードの Firestore のオペレーションもそれ以上は認められません。初期のデフォルトの費用制限は常に 0 に設定されており、すなわちデフォルト設定のままでは課金を有効化しても無料割り当て額を超える利用はできないため、費用制限は必ず指定する必要があります。

Firestore リソースは App Engine リソースの一部です。App Engine リソースの費用制限は App Engine アプリケーションの設定で指定します。

課金を有効にするには:

  1. Google Cloud プロジェクトに対して課金が有効になっていることを確認します。 プロジェクトに対して課金が有効になっていることを確認する方法を学習する

費用制限を設定するには:

  1. [アプリケーションの設定] に移動します。
    [アプリケーションの設定] に移動
  2. [編集] をクリックして、費用制限を指定します。
  3. [保存] をクリックします。

費用制限は、選択したプロジェクトの App Engine リソース(Firestore を含む)にのみ適用されます。

  • その他の Google Cloud Platform リソースについては別途課金される場合があります。
  • 複数のプロジェクトがある場合は、プロジェクトごとに費用制限を設定することをおすすめします。

1 日の使用量上限を引き上げると、新しい制限がすぐに有効になります。

詳細については、費用制限をご覧ください。