アプリ プロファイルの作成と構成

このページでは、Bigtable インスタンスのアプリケーション プロファイル(アプリ プロファイル)の作成方法と管理方法について説明します。また、カスタムアプリ プロファイルを使用して Bigtable に接続する方法も説明します。

このページを読む前に、アプリ プロファイルとその機能について理解する必要があります。特に、標準アプリ プロファイル(標準コンピューティングを使用するように構成されたアプリ プロファイル)と Data Boost アプリ プロファイル(Data Boost(プレビュー)サーバーレス コンピューティングを使用して高スループットの読み取りジョブを実行するアプリ プロファイル)の違いを理解しておいてください。Data Boost の詳細と、プロビジョニングされたクラスタノードを使用したコンピューティングとの違いについては、Data Boost の概要をご覧ください。

標準アプリ プロファイルを使用してレプリケーションを構成する場合は、Bigtable レプリケーションの概要も知っておく必要があります。また、レプリケーション設定の例を確認し、ユースケースに最適な設定を判断する必要もあります。

必要なロール

アプリ プロファイルの作成、構成、削除に必要な権限を取得するには、インスタンスに対する Bigtable 管理者roles/bigtable.admin)IAM ロールを付与するように管理者に依頼します。ロールの付与の詳細については、アクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

アプリ プロファイルを作成する

インスタンスごとに、多数のカスタムアプリ プロファイルを作成できます。カスタムアプリ プロファイルを使用すると、各アプリケーション、またはアプリケーション内の各ファンクションがインスタンスとどのようにインタラクションするかを制御できます。たとえば、バッチ アプリケーション用のアプリ プロファイルで 1 つのクラスタへのトラフィックを分離できます。また、別のアプリ プロファイルを使用して他のアプリケーションの高可用性を実現することもできます。

標準アプリ プロファイルを作成する

標準アプリ プロファイルを作成する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールで Bigtable インスタンスのリストを開きます。

    インスタンスのリストを開く

  2. アプリ プロファイルを作成するインスタンスをクリックします。

  3. 左側のペインで [アプリケーション プロファイル] をクリックします。

  4. [アプリケーション プロファイルを作成] をクリックします。

  5. アプリケーション プロファイル ID を入力します。

    アプリケーション プロファイル ID は、アプリ プロファイルの永続的な識別子です。アプリケーションが Bigtable に接続すると、この ID が生成されます。

  6. アプリ プロファイルの説明を入力します。

  7. [クラスタ ルーティング] で、単一クラスタのルーティングまたは複数クラスタのルーティングを選択します。詳細

  8. [単一クラスタ] を選択した場合:

    1. プルダウンを使用して、リクエストのルーティング先となるクラスタを選択します。

    2. 単一行のトランザクションを有効にする必要がある場合は、[単一行のトランザクションを許可] チェックボックスをオンにします。

  9. [複数クラスタ] を選択した場合:

    1. インスタンス内の任意のクラスタにリクエストをルーティングするには、[クラスタ グループ] プルダウンで [任意のクラスタ] を選択します。
    2. リクエストのルーティングをインスタンス内の一部のクラスタのみに制限するには(クラスタ グループ ルーティング)、ルーティング グループに含める各クラスタのチェックボックスをオンにして、[OK] をクリックします。
  10. [作成] をクリックして、アプリ プロファイルを作成します。

  11. Bigtable に接続するためのアプリケーションのコードを更新して、新しいアプリ プロファイルを使用するよう設定します。

gcloud

  1. インスタンス ID がわからない場合は、bigtable instances list コマンドを使用して、プロジェクトのインスタンスのリストを表示します。

    gcloud bigtable instances list
    
  2. bigtable app-profiles create コマンドを使用して、アプリ プロファイルを作成します。

    gcloud bigtable app-profiles create APP_PROFILE_ID \
        --instance=INSTANCE_ID \
        [--description=DESCRIPTION] \
        [--force] \
        [--route-any] \
        [--restrict-to=CLUSTER_ID_1, CLUSTER_ID_2...]
        [--route-to=CLUSTER_ID] \
        [--transactional-writes]
    

    次のフィールドを入力します。

    • APP_PROFILE_ID: アプリ プロファイルの永続的な識別子。
    • INSTANCE_ID: インスタンスの永続的な識別子。

    コマンドには、以下の任意のフラグを指定できます。

    • --description=DESCRIPTION: アプリ プロファイルの詳細な説明。
    • --force: 問題や他のアプリ プロファイルとの競合の可能性についての警告を無視します。
    • --route-any: 複数クラスタのルーティングを有効にして、使用可能な任意のクラスタにリクエストをルーティングできるようにします。

      このフラグを --route-to フラグや --transactional-writes フラグと組み合わせることはできません。

    • --restrict-to=CLUSTER_ID_1, CLUSTER_ID_2...: リクエストのルーティング先となるクラスタのリスト。このオプションは、インスタンス内の一部のクラスタのみにリクエストをルーティングする場合に使用します。

      このフラグを --route-to フラグや --transactional-writes フラグと組み合わせることはできません。

    • --route-to=CLUSTER_ID: すべてのリクエストのルーティング先となるクラスタ ID。このフラグにより、単一クラスタのルーティングが有効になります。

      このフラグを --route-any フラグと組み合わせることはできません。

    • --transactional-writes: アプリ プロファイルで単一行のトランザクションを有効にします。

      このフラグを --route-any フラグや --restrict-to フラグと組み合わせることはできません。

    • --priority=PRIORITY: アプリ プロファイルで使用する優先度。指定できる値は PRIORITY_HIGHPRIORITY_MEDIUMPRIORITY_LOW です。

  3. Bigtable に接続するためのアプリケーションのコードを更新して、新しいアプリ プロファイルを使用するよう設定します。

Data Boost アプリ プロファイルを作成する

Data Boost アプリ プロファイル(Data Boost サーバーレス コンピューティングを使用するアプリ プロファイル)を作成する手順は次のとおりです。ワークロードが Data Boost に対応していることを確認するには、制限事項を確認してください。

  1. インスタンス ID がわからない場合は、bigtable instances list コマンドを使用して、プロジェクトのインスタンスのリストを表示します。

    gcloud bigtable instances list
    
  2. beta bigtable app-profiles create コマンドを使用して、アプリ プロファイルを作成します。

    gcloud bigtable app-profiles create APP_PROFILE_ID \
        --instance=INSTANCE_ID \
        --data-boost \
        --data-boost-compute-billing-owner=HOST_PAYS \
        --route-to=CLUSTER_ID
    

    次のフィールドを入力します。

    • APP_PROFILE_ID: アプリ プロファイルの永続的な識別子。
    • INSTANCE_ID: インスタンスの永続的な識別子。
    • CLUSTER_ID: すべてのリクエストのルーティング先となるクラスタ ID。このフラグにより、単一クラスタのルーティングが有効になります。

カスタム アプリ プロファイルに接続する

カスタム アプリ プロファイルを作成したら、Bigtable と接続するときにアプリがアプリ プロファイルを使用するようにコードを更新できます。

以下の例では、アプリが Bigtable クライアントを作成してインスタンスに接続するときにアプリ プロファイルを指定する方法を説明します。[APP_PROFILE_ID] は、適切な値で置き換えます。

C#

var client = BigtableClient.Create(appProfileId: "[APP_PROFILE_ID]");

Go

clientConf := bigtable.ClientConfig{AppProfile:"[APP_PROFILE_ID]"}
client, err = bigtable.NewClientWithConfig(ctx, project, instance, clientConf)

HBase Java

// If using BigtableOptions directly:
optionsBuilder.setAppProfileId("[APP_PROFILE_ID]");

// If using BigtableOptionsFactory:
configuration.set(BigtableOptionsFactory.APP_PROFILE_ID_KEY, "[APP_PROFILE_ID]");

// If using system properties, set "google.bigtable.app_profile.id" to
// "[APP_PROFILE_ID]"

// If using CloudBigtableIO for Cloud Dataflow:
config.withConfiguration(BigtableOptionsFactory.APP_PROFILE_ID_KEY,
                         "[APP_PROFILE_ID]");

Node.js

const bigtable = new Bigtable({appProfileId: '[APP_PROFILE_ID]'});

Python

from google.cloud import bigtable

client = bigtable.Client(project=project_id)
instance = client.instance(instance_id)
table = bigtable.table.Table(table_id, instance, '[APP_PROFILE_ID]')

アプリ プロファイルを更新する

インスタンスのアプリ プロファイルの表示とそれらの設定の更新は、いつでも可能です。更新により動作の予期しない変動が発生する可能性がある場合は、警告が生成されます。

アプリ プロファイルを標準から Data Boost、または Data Boost から標準に更新する方法については、アプリ プロファイルを変換するをご覧ください。

標準アプリ プロファイルを更新する

標準アプリ プロファイルを更新する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールで Bigtable インスタンスのリストを開きます。

    インスタンスのリストを開く

  2. [アプリケーション プロファイル] 列で、表示または更新するアプリ プロファイルをクリックします。

    編集するアプリ プロファイルが表示されない場合は、インスタンス名をクリックしてから左側のペインで [アプリケーション プロファイル] をクリックすると、完全なリストを表示できます。

  3. 必要に応じて設定を更新してから [保存] をクリックします。保存せずに終了する場合は [キャンセル] をクリックします。

gcloud

  1. インスタンス ID がわからない場合は、bigtable instances list コマンドを使用して、プロジェクトのインスタンスのリストを表示します。

    gcloud bigtable instances list
    
  2. アプリ プロファイルの ID がわからない場合は、bigtable app-profiles list コマンドを使用して、インスタンスのアプリ プロファイルのリストを表示します。

    gcloud bigtable app-profiles list --instance=INSTANCE_ID
    

    INSTANCE_ID はインスタンスの永続的な識別子に置き換えます。

  3. (省略可)bigtable app-profiles describe コマンドを使用して、アプリ プロファイルの設定を確認します。

    gcloud bigtable app-profiles describe APP_PROFILE_ID \
        --instance=INSTANCE_ID
    

    次のフィールドを入力します。

    • APP_PROFILE_ID: アプリ プロファイルの永続的な識別子。
    • INSTANCE_ID: インスタンスの永続的な識別子。
  4. bigtable app-profiles update コマンドを使用して、アプリ プロファイルの設定を更新します。

    gcloud bigtable app-profiles update APP_PROFILE_ID \
        --instance=INSTANCE_ID \
        [--description=DESCRIPTION] \
        [--force] \
        [--route-any] \
        [--restrict-to=CLUSTER_ID_1, CLUSTER_ID_2...]
        [--route-to=CLUSTER_ID] \
        [--transactional-writes]
    

    次のフィールドを入力します。

    • APP_PROFILE_ID: アプリ プロファイルの永続的な識別子。
    • INSTANCE_ID: インスタンスの永続的な識別子。

    コマンドには、以下の任意のフラグを指定できます。

    • --description=DESCRIPTION: アプリ プロファイルの詳細な説明。
    • --force: 問題や他のアプリ プロファイルとの競合の可能性についての警告を無視します。
    • --route-any: 複数クラスタのルーティングを有効にして、使用可能な任意のクラスタにリクエストをルーティングできるようにします。

      このフラグを --route-to フラグや --transactional-writes フラグと組み合わせることはできません。

    • --restrict-to=CLUSTER_ID_1, CLUSTER_ID_2...: リクエストのルーティング先となるクラスタのリスト。このオプションは、インスタンス内の一部のクラスタのみにリクエストをルーティングする場合に使用します。

      このフラグを --route-to フラグや --transactional-writes フラグと組み合わせることはできません。

    • --route-to=CLUSTER_ID: すべてのリクエストのルーティング先となるクラスタ ID。このフラグにより、単一クラスタのルーティングが有効になります。

      このフラグを --route-any フラグと組み合わせることはできません。

    • --transactional-writes: アプリ プロファイルで単一行のトランザクションを有効にします。

      このフラグを --route-any フラグと組み合わせることはできません。

    • --priority=PRIORITY: アプリ プロファイルが使用する優先度。指定できる値は PRIORITY_HIGHPRIORITY_MEDIUMPRIORITY_LOW です。

Data Boost アプリ プロファイルを更新する

Data Boost アプリ プロファイルが読み取るクラスタを更新するには、次の手順を行います。

  1. インスタンス ID がわからない場合は、bigtable instances list コマンドを使用して、プロジェクトのインスタンスのリストを表示します。

    gcloud bigtable instances list
    
  2. アプリ プロファイルの ID がわからない場合は、bigtable app-profiles list コマンドを使用して、インスタンスのアプリ プロファイルのリストを表示します。

    gcloud bigtable app-profiles list --instance=INSTANCE_ID
    

    INSTANCE_ID はインスタンスの永続的な識別子に置き換えます。

  3. (省略可)bigtable app-profiles describe コマンドを使用して、アプリ プロファイルの設定を確認します。

    gcloud bigtable app-profiles describe APP_PROFILE_ID \
        --instance=INSTANCE_ID
    

    次のフィールドを入力します。

    • APP_PROFILE_ID: アプリ プロファイルの永続的な識別子。
    • INSTANCE_ID: インスタンスの永続的な識別子。
  4. beta bigtable app-profiles update コマンドを使用して、アプリ プロファイルの設定を更新します。

    gcloud beta bigtable app-profiles update APP_PROFILE_ID \
        --instance=INSTANCE_ID \
        --route-to=CLUSTER_ID
    

    次のフィールドを入力します。

    • APP_PROFILE_ID: アプリ プロファイルの永続的な識別子。
    • INSTANCE_ID: インスタンスの永続的な識別子。
    • CLUSTER_ID: 読み取り元の新しいクラスタの ID

アプリ プロファイルを変換する

標準アプリ プロファイルを Data Boost アプリ プロファイルに変換したり、Data Boost アプリ プロファイルを標準アプリ プロファイルに変換したりできます。アプリ プロファイルを変換する前に、アプリ プロファイルの変更のガイダンスを確認してください。

  1. インスタンス ID がわからない場合は、bigtable instances list コマンドを使用して、プロジェクトのインスタンスのリストを表示します。

    gcloud bigtable instances list
    
  2. アプリ プロファイルの ID がわからない場合は、bigtable app-profiles list コマンドを使用して、インスタンスのアプリ プロファイルのリストを表示します。

    gcloud bigtable app-profiles list --instance=INSTANCE_ID
    

    INSTANCE_ID はインスタンスの永続的な識別子に置き換えます。

  3. (省略可)bigtable app-profiles describe コマンドを使用して、アプリ プロファイルの設定を確認します。

    gcloud bigtable app-profiles describe APP_PROFILE_ID \
        --instance=INSTANCE_ID
    

    次のフィールドを入力します。

    • APP_PROFILE_ID: アプリ プロファイルの永続的な識別子。
    • INSTANCE_ID: インスタンスの永続的な識別子。
  4. beta bigtable app-profiles update コマンドを使用して、アプリ プロファイルを標準から Data Boost に変換します。

    gcloud bigtable app-profile-update APP_PROFILE_ID \
        --instance=INSTANCE_ID \
        --data-boost \
        --data-boost-compute-billing-owner=HOST_PAYS \
        --route-to=CLUSTER_ID
    

    次のフィールドを入力します。

    • APP_PROFILE_ID: アプリ プロファイルの永続的な識別子。
    • INSTANCE_ID: インスタンスの永続的な識別子。
    • CLUSTER_ID: すべてのリクエストのルーティング先となるクラスタ ID。このフラグにより、単一クラスタのルーティングが有効になります。

アプリ プロファイルを標準から Data Boost に変換する

アプリ プロファイルを標準(コンピューティング用にプロビジョニングされたノード)から Data Boost サーバーレス コンピューティングに更新する前に、Data Boost の適合性指標を確認してください。

  1. インスタンス ID がわからない場合は、bigtable instances list コマンドを使用して、プロジェクトのインスタンスのリストを表示します。

    gcloud bigtable instances list
    
  2. アプリ プロファイルの ID がわからない場合は、bigtable app-profiles list コマンドを使用して、インスタンスのアプリ プロファイルのリストを表示します。

    gcloud bigtable app-profiles list --instance=INSTANCE_ID
    

    INSTANCE_ID はインスタンスの永続的な識別子に置き換えます。

  3. (省略可)bigtable app-profiles describe コマンドを使用して、アプリ プロファイルの設定を確認します。

    gcloud bigtable app-profiles describe APP_PROFILE_ID \
        --instance=INSTANCE_ID
    

    次のフィールドを入力します。

    • APP_PROFILE_ID: アプリ プロファイルの永続的な識別子。
    • INSTANCE_ID: インスタンスの永続的な識別子。

アプリ プロファイルを Data Boost から標準に変換する

アプリ プロファイルを Data Boost(サーバーレス コンピューティング)から標準(コンピューティング用にプロビジョニングされたノード)に変更する手順は次のとおりです。

  1. インスタンス ID がわからない場合は、bigtable instances list コマンドを使用して、プロジェクトのインスタンスのリストを表示します。

    gcloud bigtable instances list
    
  2. アプリ プロファイルの ID がわからない場合は、bigtable app-profiles list コマンドを使用して、インスタンスのアプリ プロファイルのリストを表示します。

    gcloud bigtable app-profiles list --instance=INSTANCE_ID
    

    INSTANCE_ID はインスタンスの永続的な識別子に置き換えます。

  3. (省略可)bigtable app-profiles describe コマンドを使用して、アプリ プロファイルの設定を確認します。

    gcloud bigtable app-profiles describe APP_PROFILE_ID \
        --instance=INSTANCE_ID
    
  4. beta bigtable app-profiles update コマンドを使用して、アプリ プロファイルを変換します。

    gcloud beta bigtable app-profiles update APP_PROFILE_ID \
        --instance=INSTANCE_ID \
        --standard \
        [--route-any] \
        [--restrict-to=CLUSTER_ID_1, CLUSTER_ID_2...]
        [--route-to=CLUSTER_ID] \
        [--transactional-writes]
    

次のフィールドを入力します。

  • APP_PROFILE_ID: アプリ プロファイルの永続的な識別子。
  • INSTANCE_ID: インスタンスの永続的な識別子。

コマンドには、以下の任意のフラグを指定できます。

  • --route-any: 複数クラスタのルーティングを有効にして、使用可能な任意のクラスタにリクエストをルーティングできるようにします。

    このフラグを --route-to フラグや --transactional-writes フラグと組み合わせることはできません。

  • --restrict-to=CLUSTER_ID_1, CLUSTER_ID_2...: リクエストのルーティング先となるクラスタのリスト。このオプションは、インスタンス内の一部のクラスタのみにリクエストをルーティングする場合に使用します。

    このフラグを --route-to フラグや --transactional-writes フラグと組み合わせることはできません。

  • --route-to=CLUSTER_ID: すべてのリクエストのルーティング先となるクラスタ ID。このフラグにより、単一クラスタのルーティングが有効になります。

    このフラグを --route-any フラグと組み合わせることはできません。

  • --transactional-writes: アプリ プロファイルで単一行のトランザクションを有効にします。

    このフラグを --route-any フラグや --restrict-to フラグと組み合わせることはできません。

アプリ プロファイルを削除する

インスタンスのカスタムアプリ プロファイルは削除できますが、デフォルトのアプリ プロファイルは削除できません。

カスタムアプリ プロファイルを削除するには:

コンソール

  1. Google Cloud コンソールで Bigtable インスタンスのリストを開きます。

    インスタンスのリストを開く

  2. 削除するアプリ プロファイルがあるインスタンスをクリックします。

  3. 左側のペインで [アプリケーション プロファイル] をクリックします。

  4. その他の操作メニュー を開き、[アプリケーション プロファイルを削除] をクリックします。確認ダイアログが表示されます。

  5. 確認ダイアログの手順に沿って、[削除] をクリックします。

gcloud

  1. インスタンス ID がわからない場合は、bigtable instances list コマンドを使用して、プロジェクトのインスタンスのリストを表示します。

    gcloud bigtable instances list
    
  2. アプリ プロファイルの ID がわからない場合は、bigtable app-profiles list コマンドを使用して、インスタンスのアプリ プロファイルのリストを表示します。

    gcloud bigtable app-profiles list --instance=INSTANCE_ID
    

    INSTANCE_ID はインスタンスの永続的な識別子に置き換えます。

  3. bigtable app-profiles delete コマンドを使用して、アプリ プロファイルを削除します。

    gcloud bigtable app-profiles delete APP_PROFILE_ID \
        --instance=INSTANCE_ID \
        [--force]
    

    次のフィールドを入力します。

    • APP_PROFILE_ID: アプリ プロファイルの永続的な識別子。
    • INSTANCE_ID: インスタンスの永続的な識別子。

    コマンドには、以下の任意のフラグを指定できます。

    --force: 問題や他のアプリ プロファイルとの競合の可能性についての警告を無視します。