インスタンスの作成
Bigtable インスタンスは、Bigtable クラスタのコンテナです。複数のクラスタがあるインスタンスは、レプリケーションを使用します。最大 8 つのリージョンにクラスタを作成できます。各リージョンには、ゾーンと同じ数のクラスタを作成できます。
このページでは、インスタンスを作成する方法について説明します。 このページを読む前に、Bigtable の概要を理解する必要があります。また、インスタンス、クラスタ、ノードの概要についても理解する必要があります。
始める前に
環境の準備:
-
Google アカウントにログインします。
Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Bigtable API, Cloud Bigtable Admin API APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Bigtable API, Cloud Bigtable Admin API APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init - 次のコマンドを実行して
cbtCLI をインストールします。gcloud components install cbt
構成の計画:
省略可: レプリケーションを有効にする場合は、次の操作を行います。
- レプリケーションの概要をご覧ください。
- レプリケーションのユースケースを特定します。
- ユースケース、アプリケーションの場所、トラフィックの場所に基づいて、インスタンスを配置するリージョンを決定します。
- アプリケーション プロファイルを使用して受信リクエストをルーティングする方法を決定します。
省略可: デフォルトの Google 管理の暗号化の代わりに顧客管理の暗号鍵(CMEK)を使用する場合は、新しいインスタンスを作成する前に CMEK 鍵 ID を用意しておきます。作成後のインスタンスに CMEK による保護を追加することはできません。また、インスタンスの作成後に CMEK 鍵の変更や置換を行うことはできません。詳細については、顧客管理の暗号鍵(CMEK)を使用するをご覧ください。
インスタンスの作成
Bigtable インスタンスを作成するには:
コンソール
Google Cloud コンソールで [インスタンスの作成] ページに移動します。
インスタンスの名前を入力します。
Google Cloud コンソールには、この名前がインスタンスの識別のために表示されます。
インスタンス ID を入力します。
インスタンス ID は、インスタンスの永続的な識別子です。
[続行] をクリックします。
クラスタで使用するディスクタイプ(SSD または HDD)を選択します。ほとんどの場合、SSD が最適です。この選択は永続的に適用されます。詳細を確認する。
[続行] をクリックします。
最初のクラスタのクラスタ ID を入力します。
クラスタ ID は、クラスタの永続的な識別子です。
最初のクラスタを実行するリージョンとゾーンを選択します。
省略可: クラスタが常に 2 ノード単位でスケールインするように構成するには、[2 倍のノード スケーリングを有効にする] を選択します。2 倍のノード スケーリングは、すべてのゾーンで使用できるわけではありません。詳細については、ノードのスケーリング係数をご覧ください。
クラスタのノード スケーリング モードを選択します。ほとんどの場合、自動スケーリングを選択します。スケーリングのガイダンスについては、自動スケーリングをご覧ください。
- [手動ノード割り当て] で、最初のクラスタの Bigtable ノード数を入力します。必要なノードの数がわからない場合は、デフォルトの設定を使用します。後でノードを追加することもできます。
- [自動スケーリング] に次の値を入力します。
- ノードの最小数
- ノードの最大数
- CPU 使用率の目標値
- ストレージ使用率の目標値
省略可: デフォルトの Google 管理の暗号化ではなく CMEK を使用してインスタンスを保護する場合は、次の操作を行います。
- [暗号化オプションを表示する] をクリックします。
- [Cloud KMS 鍵] を選択します。
- [鍵管理のタイプ] フィールドで、次のいずれかのオプションを選択します。
- Cloud KMS 鍵の作成を自動化する場合は、[Cloud KMS with Autokey] を選択し、[鍵をリクエスト] をクリックします。鍵が正常に作成され、使用できる状態になると、メッセージが表示されます。
- 鍵を手動で追加する場合は、[Cloud KMS] を選択します。クラスタに使用する CMEK 鍵のリソース名を選択または入力します。これは後から追加できません。CMEK 鍵のサービス アカウントに権限を付与するように求められたら、[付与] をクリックします。このタスクを完了するには、ユーザー アカウントに Cloud KMS 管理者のロールが付与されている必要があります。[保存] をクリックします。
省略可: レプリケーションを直ちに有効にするには、次の追加の手順を行います。
- [詳細設定を表示] をクリックします。
- [クラスタを追加] をクリックし、クラスタの設定を入力して、[追加] をクリックします。この手順を繰り返して、インスタンスに追加のクラスタを作成します。また、クラスタを追加してレプリケーションを有効にすることもできます。
各リージョン内のそれぞれのゾーンに配置できるクラスタは 1 つのみです。[クラスタを追加] ボタンが無効になっている場合は、最初のクラスタのゾーンを変更します。
6 つ以上のクラスタが含まれるインスタンスを作成するには、6 つのクラスタを持つインスタンスを作成してから、そのインスタンスにさらにクラスタを追加します。
[作成] をクリックしてインスタンスを作成します。
デフォルトのアプリ プロファイルでレプリケーションの設定を見直して、それらの設定がレプリケーションのユースケースに適しているかどうかを確認します。デフォルトのアプリ プロファイルの更新やカスタムアプリ プロファイルの作成が必要になることがあります。
gcloud
bigtable instances createコマンドを使用して、インスタンスを作成します。gcloud bigtable instances create INSTANCE_ID \ --display-name=DISPLAY_NAME \ [--cluster-storage-type=CLUSTER_STORAGE_TYPE] \ [--cluster-config=id=CLUSTER_ID,zone=CLUSTER_ZONE, \ nodes=NODES] \ [--cluster-config=id=CLUSTER_ID,zone=CLUSTER_ZONE, \ autoscaling-min-nodes=AUTOSCALING_MIN_NODES, \ autoscaling-max-nodes=AUTOSCALING_MAX_NODES, \ autoscaling-cpu-target=AUTOSCALING_CPU_TARGET, \ autoscaling-storage-target=AUTOSCALING_STORAGE_TARGET, \ kms-key=KMS_KEY], \ [node-scaling-factor=NODE_SCALING_FACTOR]以下を置き換えます。
INSTANCE_ID: インスタンスの永続的な識別子。DISPLAY_NAME: Google Cloud コンソールでインスタンスを識別するための判読可能な名前。CLUSTER_ID: クラスタの永続的な識別子。CLUSTER_ZONE: クラスタが実行されるゾーン。
--cluster-configフラグを使用して、インスタンスに対して少なくとも 1 つのクラスタを構成する必要があります。複数のクラスタを持つインスタンスを作成するには、クラスタごとに--cluster-configフラグを繰り返し指定します。手動ノード割り当ての場合、
--cluster-configフラグでのnodesの設定は任意です。値が設定されていない場合、Bigtable はデータ フットプリントに基づいてノードをクラスタに自動的に割り当て、ストレージ使用率が 50% になるように最適化します。このノードの自動割り当ては料金に影響します。クラスタ内のノード数を制御する場合は、NODESをクラスタに必要なノード数に置き換えます。ノードの詳細をご確認ください。ほとんどの場合、手動ノード割り当てではなく自動スケーリングを選択します。 自動スケーリングの場合は、
--cluster-configフラグにautoscaling-オプションを指定します(autoscaling-storage-targetは省略可能)。nodesは使用しません。自動スケーリング設定の値の選択方法については、自動スケーリングをご覧ください。cluster-configオプションキーを次のように置き換えます。AUTOSCALING_MIN_NODES: クラスタの最小ノード数。AUTOSCALING_MAX_NODES: クラスタノードの最大数。AUTOSCALING_CPU_TARGET: クラスタの CPU 使用率の目標値(パーセント)。値は 10~80 にする必要があります。AUTOSCALING_STORAGE_TARGET: (省略可)ノードを追加または削除することで Bigtable が維持するストレージ使用率の目標値(GiB 単位)。KMS_KEY: クラスタの CMEK 鍵。
KMS_KEY 値は次の形式にする必要があります。
projects/PROJECT/locations/LOCATION/keyRings/KEYRING/cryptoKeys/KEY以下を置き換えます。
- PROJECT: プロジェクトの永続的な識別子
- LOCATION: クラスタのロケーション
- KEYRING: 鍵を含むキーリングの名前
- KEY: 鍵の名前
次に例を示します。
projects/examplestore.com:dev/locations/us-east1/keyRings/devt-cmek-2/cryptoKeys/key2インスタンスが CMEK で保護されている場合、各クラスタは CMEK 鍵と同じリージョンに存在する必要があります。CMEK クラスタは、すでに CMEK で保護されているインスタンスにのみ追加できます。詳細を確認する。
コマンドには、以下の任意のフラグを指定できます。
--cluster-storage-type=CLUSTER_STORAGE_TYPE: インスタンスで使用するストレージのタイプ。 デフォルト値はSSDです。ほとんどの場合、デフォルト値が最適です。この選択は永続的に適用されます。詳細--project=PROJECT: クラスタを作成するプロジェクト(現在のプロジェクトと異なる場合)。node-scaling-factor=NODE_SCALING_FACTOR: 2 倍のノード スケーリングを有効にするフラグ。この機能は、手動スケーリングと自動スケーリングの両方で有効にできます。指定できる値はnode-scaling-factor-2xまたはnode-scaling-factor-1xです。
2 倍のノード スケーリングに使用できない Bigtable ゾーンのリストを表示するには、ノード スケーリング ファクタの制限事項をご覧ください。
デフォルトのアプリ プロファイルでレプリケーションの設定を見直して、それらの設定がレプリケーションのユースケースに適しているかどうかを確認します。デフォルトのアプリ プロファイルの更新やカスタムアプリ プロファイルの作成が必要になることがあります。
cbt
最初に、クラスタが 1 つのインスタンスを作成します。
createinstanceコマンドを使用して、インスタンスを作成します。cbt createinstance INSTANCE_ID \ DISPLAY_NAME \ CLUSTER_ID \ CLUSTER_ZONE \ CLUSTER_NUM_NODES \ CLUSTER_STORAGE_TYPE次のフィールドを入力します。
INSTANCE_ID: インスタンスの永続的な識別子。DISPLAY_NAME: Google Cloud コンソールでインスタンスを識別するための判読可能な名前。CLUSTER_ID: クラスタの永続的な識別子。CLUSTER_ZONE: クラスタが実行されるゾーン。CLUSTER_NUM_NODES: このフィールドは省略可能です。値が設定されていない場合、Bigtable はデータ使用量に基づいてノードを自動的に割り当て、50% のストレージ使用率になるよう最適化します。クラスタ内のノード数を制御する場合は、CLUSTER_NUM_NODESの値を更新します。ノード数がゼロ以外の値に設定されていることを確認します。ノードの詳細をご確認ください。CLUSTER_STORAGE_TYPE: クラスタで使用するストレージのタイプ。インスタンス内の各クラスタは、同じストレージ タイプを使用する必要があります。指定できる値はSSDとHDDです。ほとんどの場合、SSDが最適です。この選択は永続的に適用されます。詳細
レプリケーションを有効にするには、
createclusterコマンドを使用してクラスタを追加します。cbt -instance=INSTANCE_ID \ createcluster CLUSTER_ID \ ZONE \ NUM_NODES \ STORAGE_TYPE次のフィールドを入力します。
INSTANCE_ID: 作成したインスタンスの永続的な識別子。CLUSTER_ID: クラスタの永続的な識別子。ZONE: クラスタが実行されるゾーン。各リージョン内のそれぞれのゾーンに配置できるクラスタは 1 つのみです。 たとえば、インスタンスのクラスタが
us-east1-bにある場合は、同じリージョン内の別のゾーン(例us-east1-c)、または別のリージョンのゾーン(例:europe-west2-a)にクラスタを追加できます。NUM_NODES: このフィールドは省略可能です。値が設定されていない場合、Bigtable はデータ使用量に基づいてノードを自動的に割り当て、50% のストレージ使用率になるよう最適化します。クラスタ内のノード数を制御する場合は、NUM_NODESの値を更新します。ノード数がゼロ以外の値に設定されていることを確認します。多くの場合、インスタンス内の各クラスタのノード数は同じである必要がありますが、例外もあります。ノードとレプリケーションの詳細をご覧ください。
STORAGE_TYPE: クラスタで使用するストレージのタイプ。インスタンス内の各クラスタは、同じストレージ タイプを使用する必要があります。指定できる値はSSDとHDDです。
(省略可) デフォルトのアプリ プロファイルでレプリケーションの設定を見直して、それらの設定がレプリケーションのユースケースに適しているかどうかを確認します。デフォルトのアプリ プロファイルの更新やカスタムアプリ プロファイルの作成が必要になることがあります。
C++
Bigtable 用のクライアント ライブラリをインストールして使用する方法については、Bigtable クライアント ライブラリをご覧ください。
Bigtable で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
C#
Bigtable 用のクライアント ライブラリをインストールして使用する方法については、Bigtable クライアント ライブラリをご覧ください。
Bigtable で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
Bigtable 用のクライアント ライブラリをインストールして使用する方法については、Bigtable クライアント ライブラリをご覧ください。
Bigtable で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
Bigtable 用のクライアント ライブラリをインストールして使用する方法については、Bigtable クライアント ライブラリをご覧ください。
Bigtable で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
PHP
Bigtable 用のクライアント ライブラリをインストールして使用する方法については、Bigtable クライアント ライブラリをご覧ください。
Bigtable で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
Bigtable 用のクライアント ライブラリをインストールして使用する方法については、Bigtable クライアント ライブラリをご覧ください。
Bigtable で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Ruby
Bigtable 用のクライアント ライブラリをインストールして使用する方法については、Bigtable クライアント ライブラリをご覧ください。
Bigtable で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
次のステップ
- Bigtable でインスタンス、クラスタ、ノードがどのように使用されているかを確認する。
- Bigtable レプリケーションについて学習する。
- レプリケーション用のデフォルトのアプリ プロファイルを確認および更新して、必要に応じてカスタムアプリ プロファイルを作成する。
- 既存のインスタンスを変更する方法を確認する。