このページでは、Spanner インスタンスを作成、一覧表示、編集、削除する方法について説明します。
インスタンスを作成する
インスタンスは、Google Cloud コンソール、Google Cloud CLI、またはクライアント ライブラリを使用して作成できます。オプションの読み取り専用レプリカを追加して、カスタム インスタンス構成のインスタンスを作成することもできます。
Console
Google Cloud コンソールで [インスタンスの作成] ページに移動します。
Google Cloud コンソールに表示するインスタンス名を入力します。インスタンス名は、Google Cloud プロジェクト内で一意である必要があります。
インスタンスを永続的に識別するためのインスタンス ID を入力します。インスタンス ID も Google Cloud プロジェクト内で一意にする必要があります。インスタンス ID は後で変更できません。
[コンピューティング容量を割り当てる] セクションの [構成を選択] で、[リージョン] または [マルチリージョン] を選択します。 また、2 つのリージョン間で仕様を比較する場合は、[リージョン構成の比較] をクリックします。
プルダウンから構成を選択します。
省略可: Spanner 基本構成に読み取り専用レプリカを追加するには、まず Google Cloud CLI を使用してカスタム インスタンス構成を作成します。
[コンピューティング容量を割り当てる] セクションの [単位を選択] で、次のいずれかをクリックします。
- 小規模なインスタンスなら [処理ユニット]。
- 大規模なインスタンスなら [Nodes]。ノードは 1,000 処理ユニットです。
詳細については、コンピューティング容量、ノード、処理ユニットをご覧ください。
[スケーリング モードを選択する] で、次のいずれかをクリックします。
[手動で割り当てる]: 固定されたコンピューティング リソースと費用に対してコンピューティング容量を手動で設定する場合です。
- [数量] は、このインスタンスに使用する処理ユニットまたはノードの数を示します。
[自動スケーリング] (プレビュー)は、Spanner がコンピューティング容量を自動的に追加、削除できるようにします。マネージド オートスケーラーの詳細については、Spanner のマネージド オートスケーラーをご覧ください。次のマネージド オートスケーラー オプションを構成します。
- [最小] は、コンピューティング容量に選択した測定単位に応じて、スケールダウンする際の下限を示します。詳細については、下限を決定するをご覧ください。
- [Maximum] は、コンピューティング容量に選択した測定単位に応じて、スケールアップする最大制限を示します。詳細については、上限を決定するをご覧ください。
- [優先度の高い CPU 使用率の目標値] は、優先度の高い CPU の目標使用率を示します。詳細については、CPU 使用率の目標値を決めるをご覧ください。
- [ストレージ使用率の目標値] は、使用するストレージの目標使用率を示します。詳細については、ストレージ使用率の目標値を決めるをご覧ください。
[作成] をクリックしてインスタンスを作成します。
gcloud
gcloud spanner instances create
コマンドを使用して、インスタンスを作成します。インスタンスに必要なノード数または処理単位数としてコンピューティング容量を指定します。
gcloud spanner instances create INSTANCE-ID \ --config=INSTANCE-CONFIG \ --description=INSTANCE-DESCRIPTION \ --nodes=NODE-COUNT
または
gcloud spanner instances create INSTANCE-ID \ --config=INSTANCE-CONFIG \ --description=INSTANCE-DESCRIPTION \ --processing-units=PROCESSING-UNIT-COUNT
次のように置き換えます。
- INSTANCE-ID: Google Cloud プロジェクト内で一意の永続的な識別子。インスタンス ID は後で変更できません。
- INSTANCE-CONFIG: インスタンス構成の永続的な識別子。インスタンスの地理的位置を定義し、データのレプリケート方法に影響を与えます。カスタム インスタンス構成の場合は
custom-
で始まります。詳細については、インスタンス構成をご覧ください。 - INSTANCE-DESCRIPTION: Google Cloud コンソールに表示されるインスタンスの名前。インスタンス名は、Google Cloud プロジェクト内で一意である必要があります。
NODE-COUNT: ノード数で表されるインスタンスのコンピューティング容量。各ノードは 1,000 の処理ユニットに相当します。
PROCESSING-UNIT-COUNT: 処理ユニット数で表されるインスタンスのコンピューティング容量。1,000 までの数量については 100 の倍数(100、200、300 など)を、それより多い数量については 1,000 の倍数(1,000、2,000、3,000 など)を入力します。注: 後でマネージド オートスケーラーで有効にするインスタンスを作成する場合は、このパラメータを使用しないでください。
マネージド自動スケーリングを追加する(プレビュー)
gcloud beta spanner instances create
コマンドを使用して、マネージド自動スケーリングを使用するように新しいインスタンスを構成することもできます。詳細については、Spanner のマネージド オートスケーラーをご覧ください。
次のコマンドを使用して、マネージド オートスケーラーを含むインスタンスを作成します。
gcloud beta spanner instances create INSTANCE-ID \ --config=INSTANCE-CONFIG \ --description=INSTANCE-DESCRIPTION \ --autoscaling-min-processing-units=MINIMUM_PROCESSING_UNITS \ --autoscaling-max-processing-units=MAXIMUM_PROCESSING_UNITS \ --autoscaling-high-priority-cpu-target=CPU_PERCENTAGE \ --autoscaling-storage-target=STORAGE_PERCENTAGE
または
gcloud beta spanner instances create INSTANCE-ID \ --config=INSTANCE-CONFIG \ --description=INSTANCE-DESCRIPTION \ --autoscaling-min-nodes=MINIMUM_NODES \ --autoscaling-max-nodes=MAXIMUM_NODES \ --autoscaling-high-priority-cpu-target=CPU_PERCENTAGE \ --autoscaling-storage-target=STORAGE_PERCENTAGE
次のように置き換えます。
- INSTANCE-ID: Google Cloud プロジェクト内で一意の永続的な識別子。インスタンス ID は後で変更できません。
- INSTANCE-CONFIG: インスタンス構成の永続的な識別子。インスタンスの地理的位置を定義し、データのレプリケート方法に影響を与えます。カスタム インスタンス構成の場合は
custom-
で始まります。詳細については、インスタンス構成をご覧ください。 - INSTANCE-DESCRIPTION: Google Cloud コンソールに表示されるインスタンスの名前。インスタンス名は、Google Cloud プロジェクト内で一意である必要があります。
- MINIMUM_PROCESSING_UNITS、MINIMUM_NODES: スケールダウン時の最小の処理ユニットまたはノードの数。詳細については、下限を決定するをご覧ください。
- MAXIMUM_PROCESSING_UNITS、MAXIMUM_NODES: スケールアップ時の処理ユニットまたはノードの最大数。詳細については、上限を決定するをご覧ください。
- CPU_PERCENTAGE: 使用する優先度の高い CPU の目標使用率を 10~90% で指定します。費用を最適化する場合は、より高い使用率を使用します。詳細については、CPU 使用率の目標値を決めるをご覧ください。
- STORAGE_PERCENTAGE: 使用するストレージの目標使用率(10~99%)。詳細については、ストレージ使用率の目標値を決めるをご覧ください。
カスタム構成の使用例
基本リージョン インスタンス構成 us-central1
でインスタンス test-instance
を作成するには、次のコマンドを実行します。
gcloud spanner instances create test-instance --config=regional-us-central1 \
--description="Test Instance" --nodes=1
カスタム マルチリージョン インスタンス構成 custom-eur6
でインスタンス custom-eur6-instance
を作成するには、まずカスタム インスタンス構成を作成します。
次のコマンドを実行します。
gcloud spanner instances create custom-eur6-instance --config=custom-eur6 \
--description="Instance with custom read-only" --nodes=1
前述のコマンドのいずれかを実行すると、次の例のようなメッセージが表示されます。
Creating instance...done.
C++
Spanner 用のクライアント ライブラリをインストールして使用する方法については、Spanner クライアント ライブラリをご覧ください。
Spanner への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
C#
Spanner 用のクライアント ライブラリをインストールして使用する方法については、Spanner クライアント ライブラリをご覧ください。
Spanner への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
Spanner 用のクライアント ライブラリをインストールして使用する方法については、Spanner クライアント ライブラリをご覧ください。
Spanner への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go を使用してマネージド自動スケーリングでインスタンスを作成する(プレビュー)
Java
Spanner 用のクライアント ライブラリをインストールして使用する方法については、Spanner クライアント ライブラリをご覧ください。
Spanner への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java を使用してマネージド自動スケーリングでインスタンスを作成する(プレビュー)
Node.js
Spanner 用のクライアント ライブラリをインストールして使用する方法については、Spanner クライアント ライブラリをご覧ください。
Spanner への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
Spanner 用のクライアント ライブラリをインストールして使用する方法については、Spanner クライアント ライブラリをご覧ください。
Spanner への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Spanner 用のクライアント ライブラリをインストールして使用する方法については、Spanner クライアント ライブラリをご覧ください。
Spanner への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
Spanner 用のクライアント ライブラリをインストールして使用する方法については、Spanner クライアント ライブラリをご覧ください。
Spanner への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
インスタンスの一覧を取得する
Spanner インスタンスの一覧を表示できます。
Console
Google Cloud コンソールで、[Spanner インスタンス] ページに移動します。
Google Cloud コンソールには、Spanner インスタンスのリスト、各インスタンスの ID、表示名、構成、処理ユニットとノードの両方で表されたコンピューティング容量が表示されます。
gcloud
gcloud spanner instances list
コマンドを使用します。
gcloud spanner instances list
gcloud CLI によって、各インスタンスの ID、表示名、構成、コンピューティング容量とともに Spanner インスタンスの一覧が出力されます。
インスタンスの編集
以降のセクションでは、インスタンスの表示名とコンピューティング容量を変更する方法について説明します。インスタンス ID やインスタンス構成は変更できません。
表示名を変更する
Console
Google Cloud コンソールで、[Spanner インスタンス] ページに移動します。
変更するインスタンスの名前をクリックします。
[インスタンスの編集] をクリックします。
新しいインスタンス名を入力します。この名前は、Google Cloud プロジェクト内で一意である必要があります。
[保存] をクリックします。
gcloud
gcloud spanner instances update
コマンドを使用します。
gcloud spanner instances update INSTANCE_ID --description=INSTANCE_NAME
次のように置き換えます。
- INSTANCE_ID: インスタンスの永続的な識別子。
- INSTANCE_NAME: Google Cloud コンソールに表示されるインスタンスの名前。インスタンス名は、Google Cloud プロジェクト内で一意である必要があります。
コンピューティング容量を変更する
CPU 使用率とストレージ使用率が推奨最大値を超えないように、十分なコンピューティング容量をプロビジョニングする必要があります。詳細については、Spanner の割り当てと上限をご覧ください。
既存のインスタンスのコンピューティング容量を削減できない場合があります。
- コンピューティング容量を削除するには、1,000 処理ユニット(1 ノード)あたり 4 TB を超えるデータをインスタンスに格納する必要があります。
- 過去の使用パターンに基づいて、Spanner はインスタンスのデータのスプリットを多数作成しました。まれにコンピューティング容量を削除した後はスプリットを管理できないことがあります。
後者の場合、Cloud Spanner でインスタンスのすべてのスプリットを管理するのに必要な最小容量が見つかるまで、コンピューティング容量を徐々に減らすことができます。使用パターンの変化により、インスタンスでそれほど多くのスプリットが必要なくなった場合、Cloud Spanner は最終的に一部のスプリットをマージし、1 ~ 2 週間後にインスタンスのコンピューティング容量を削減してみることができます。
コンピューティング容量を削除するときは、Cloud Monitoring で CPU 使用率とリクエスト レイテンシをモニタリングし、リージョンのインスタンスで CPU 使用率が 65% を下回り、マルチリージョンのインスタンスの各リージョンで 45% を下回るようにしてください。コンピューティング容量の削除中に、リクエストのレイテンシが一時的に増加する場合があります。
インスタンスのコンピューティング容量を増やすには、コンピューティング容量を追加するだけの十分な割り当てが Google Cloud プロジェクトに必要です。 増加リクエストが完了するまでの時間は、リクエストのサイズによって異なります。ほとんどの場合、リクエストは数分以内に完了します。まれに、スケールアップが完了するまでに最大 1 時間かかることがあります。
コンソール
Google Cloud コンソールで、[Spanner インスタンス] ページに移動します。
変更するインスタンスの名前をクリックします。
[インスタンスの編集] をクリックします。
コンピューティング容量を変更するには、測定単位(処理ユニットまたはノード)を選択し、数量を入力します。処理ユニットを使用する場合は、1,000 までの数量については 100 の倍数(100、200、300 など)を、それよりも多い数量については 1,000 の倍数(1,000、2,000、3,000 など)を入力します。各ノードは 1,000 の処理ユニットに相当します。
[保存] をクリックします。
コンピューティング容量をこの位置に追加するのに十分な割り当てがないというダイアログが表示された場合は、指示に従って割り当ての増加をリクエストします。
gcloud
gcloud spanner instances update
コマンドを使用します。このコマンドを使用するときは、コンピューティング容量をノードまたは処理ユニットの数として指定します。
gcloud spanner instances update INSTANCE_ID --nodes=NODE_COUNT [--async]
または
gcloud spanner instances update INSTANCE_ID --processing-units=PROCESSING_UNIT_COUNT [--async]
次のように置き換えます。
- INSTANCE_ID: インスタンスの永続的な識別子。
- NODE_COUNT: ノード数で表されるインスタンスのコンピューティング容量。各ノードは 1,000 の処理ユニットに相当します。
- PROCESSING_UNIT_COUNT: 処理ユニット数で表されるインスタンスのコンピューティング容量。1,000 までの数量については 100 の倍数(100、200、300 など)を、それより多い数量については 1,000 の倍数(1,000、2,000、3,000 など)を入力します。
オプションのフラグ:
--async
: このフラグは、処理中のオペレーションの完了を待たずに、リクエストをすぐに返す場合に使用します。リクエストのステータスを確認するには、gcloud spanner operations describe
を実行します。
インスタンスのマネージド オートスケーラーを有効にするか、変更する
既存のインスタンスでマネージド 自動スケーリング機能を追加または変更する場合は、次の制限が適用されます。
- 移動するインスタンスでマネージド オートスケーラーを有効にすることはできません。
マネージド オートスケーラーが有効になっている間は、インスタンスを移動できません。
コンソール
Google Cloud コンソールで、[Spanner インスタンス] ページに移動します。
マネージド オートスケーラーを有効にするインスタンスの名前をクリックします。
[インスタンスの編集] をクリックします。
[コンピューティング容量を構成する] で、[自動スケーリング] をクリックします。
[Minimum] に、スケールダウン時に使用する下限を選択します。詳細については、下限を決定するをご覧ください。
[Maximum] で、スケールアップ時に使用する上限を選択します。詳細については、上限を決定するをご覧ください。
[優先度の高い CPU 使用率の目標値] で、使用する優先度の高い CPU の割合を選択します。詳細については、CPU 使用率の目標値を決めるをご覧ください。
[ストレージ使用率の目標値] で、使用するストレージの割合を選択します。詳細については、ストレージ使用率の目標値を決めるをご覧ください。
[保存] をクリックします。
gcloud
gcloud beta spanner instances update
コマンドを使用して、マネージド オートスケーラーをインスタンスに追加します。詳細と制限事項については、Google Cloud CLI
フラグと制限事項をご覧ください。
次のコマンドを使用すると、マネージド オートスケーラーを追加できます。
gcloud beta spanner instances update INSTANCE_ID \ --autoscaling-min-processing-units=MINIMUM_PROCESSING_UNITS \ --autoscaling-max-processing-units=MAXIMUM_PROCESSING_UNITS \ --autoscaling-high-priority-cpu-target=CPU_PERCENTAGE \ --autoscaling-storage-target=STORAGE_PERCENTAGE
または
gcloud beta spanner instances update INSTANCE_ID \ --autoscaling-min-processing-units=MINIMUM_NODES \ --autoscaling-max-processing-units=MAXIMUM_NODES \ --autoscaling-high-priority-cpu-target=CPU_PERCENTAGE \ --autoscaling-storage-target=STORAGE_PERCENTAGE
次のように置き換えます。
- INSTANCE_ID: インスタンスの永続的な識別子。
- MINIMUM_PROCESSING_UNITS、MINIMUM_NODES: スケールダウン時に使用する処理ユニットまたはノードの最小数。詳細については、下限を決定するをご覧ください。
- MAXIMUM_PROCESSING_UNITS、MAXIMUM_NODES: スケールアップ時に使用する処理ユニットまたはノードの最大数。詳細については、上限を決定するをご覧ください。
- CPU_PERCENTAGE: 使用する優先度の高い CPU の割合を 10%~90% で指定します。費用を最適化し、すべてのリクエストで低レイテンシを必要としない場合は、より高い割合を使用します。詳細については、CPU 使用率の目標値を決めるをご覧ください。
- STORAGE_PERCENTAGE: 使用するストレージの目標割合(10%~99%)。詳細については、ストレージ使用率の目標値を決めるをご覧ください。
マネージド オートスケーラーをインスタンスに追加した後、マネージド オートスケーラーの設定を変更することもできます。たとえば、処理ユニットの最大数を 10,000 に増やすには、次のコマンドを実行します。
gcloud beta spanner instances update test-instance \
--autoscaling-max-processing-units=10000
インスタンスをマネージド オートスケーラーを使用する状態から手動スケーリングに変更する
コンソール
Google Cloud コンソールで、[Spanner インスタンス] ページに移動します。
マネージド オートスケーラーを無効にするインスタンスの名前をクリックします。
[スケーリング モードを選択する] で [手動で割り当てる] をクリックします。
[保存] をクリックします。
gcloud
gcloud beta spanner instances update
コマンドを使用してデータセットを更新します。
次のコマンドを使用して、インスタンスをマネージド オートスケーラーから手動スケーリングに変更します。
gcloud beta spanner instances update INSTANCE_ID \ --processing-units=PROCESSING_UNIT_COUNT
または
gcloud beta spanner instances update INSTANCE_ID \ --nodes=NODE_COUNT
次のように置き換えます。
- INSTANCE_ID: インスタンスの永続的な識別子。
- NODE_COUNT: ノード数で表されるインスタンスのコンピューティング容量。各ノードは 1,000 の処理ユニットに相当します。
- PROCESSING_UNIT_COUNT: 処理ユニット数で表されるインスタンスのコンピューティング容量。1,000 までの数量については 100 の倍数(100、200、300 など)を、それより多い数量については 1,000 の倍数(1,000、2,000、3,000 など)を入力します。
インスタンスにラベルを付ける
ラベルはリソースを整理するのに役立ちます。
Console
Google Cloud コンソールで、[Spanner インスタンス] ページに移動します。
インスタンスのチェックボックスをオンにします。ページの右側に情報パネルが表示されます。
[情報パネル] で [ラベル] タブをクリックします。これで、Spanner インスタンスのラベルを追加、削除、または更新できるようになります。
インスタンスを移動する
インスタンスを任意のインスタンス構成から他のインスタンス構成に移動する方法(リージョン構成とマルチリージョン構成間の移動を含む)については、インスタンスを移動するをご覧ください。
インスタンスを削除する
インスタンスを削除するには、Google Cloud コンソールまたは Google Cloud CLI を使用します。
削除保護が有効になっているデータベースが 1 つ以上存在するインスタンスを削除するには、まずそのインスタンスのすべてのデータベースで削除保護を無効にする必要があります。
コンソール
Google Cloud コンソールで、[Spanner インスタンス] ページに移動します。
削除するインスタンスの名前をクリックします。
[インスタンスの削除] をクリックします。
指示に従って、インスタンスを削除することを確認します。
[削除] をクリックします。
gcloud
gcloud spanner instances delete
コマンドを使用します。INSTANCE-ID の部分はインスタンス ID で置き換えてください。
gcloud spanner instances delete INSTANCE-ID
インスタンスを停止または再起動する
Spanner はフルマネージド データベース サービスであり、独自の基本的なタスクやリソースを監視します。これには、プロセスをモニタリングして、必要に応じてダウンタイムなしで再起動することも含まれます。特定のインスタンスを手動で停止または再起動する必要がないため、Spanner にはそのための手段は用意されていません。
次のステップ
- データ操作言語(DML)や gcloud CLI で、データを挿入、更新、削除する方法について学習する。
- インスタンスとそのデータベースに Identity and Access Management のロールを付与する。
- Spanner スキーマの設計方法について学習する。