フェイルオーバーの管理
Bigtable クラスタが応答しなくなった場合、レプリケーションにより受信トラフィックを同じインスタンスの別のクラスタにフェイルオーバーできます。フェイルオーバーは、アプリケーションが使用しているアプリ プロファイルと、アプリ プロファイルの構成方法に応じて、手動または自動で行えます。
このページでは、クラスタ間でフェイルオーバーを実行する手順について説明します。
- アプリ プロファイルがすべてのリクエストを 1 つのクラスタにルーティングしている場合、手動フェイルオーバーを実行できます。
- アプリ プロファイルでマルチクラスタ ルーティングを使用している場合、フェイルオーバーが自動的に行われるため、何もする必要はありません。
このページを読む前に、Bigtable レプリケーションの概要を理解する必要があります。 また、Bigtable で利用可能なルーティング オプションについても理解している必要があります。
手動フェイルオーバーを実行する
アプリ プロファイルがすべてのリクエストを 1 つのクラスタに転送していて、そのクラスタが応答しなくなった場合は、手動フェイルオーバーを使用します。クラスタが応答していないかどうかを判別するために使用できる基準の例については、手動フェイルオーバーをご覧ください。フェイルオーバーを決定する前に、インスタンスのレプリケーション レイテンシを確認します。詳細については、レプリケーションのグラフをご覧ください。
手動フェイルオーバーを実行するには、アプリ プロファイルを更新して、応答しないクラスタでなく応答するクラスタにリクエストが転送されるようにします。
コンソール
Google Cloud コンソールで Bigtable インスタンスのリストを開きます。
[アプリケーション プロファイル] 列で、応答しないクラスタにトラフィックをルーティングしているアプリ プロファイルをクリックします。
編集するアプリ プロファイルが表示されない場合は、インスタンス名をクリックしてから左側のペインで [アプリケーション プロファイル] をクリックすると、完全なリストを表示できます。
[クラスタ ルーティング] で、インスタンス内の応答するクラスタを選択します。
[保存] をクリックします。確認ダイアログが表示されます。
確認ダイアログの警告を慎重に確認し、[続行] をクリックします。
gcloud
インスタンス ID がわからない場合は、
bigtable instances list
コマンドを使用して、プロジェクトのインスタンスのリストを表示します。gcloud bigtable instances list
インスタンスのクラスタ ID がわからない場合は、
bigtable clusters list
コマンドを使用して、インスタンスのクラスタのリストを表示します。gcloud bigtable clusters list --instances=INSTANCE_ID
INSTANCE_ID
はインスタンスの永続的な識別子に置き換えます。アプリ プロファイルの ID がわからない場合は、
bigtable app-profiles list
コマンドを使用して、インスタンスのアプリ プロファイルのリストを表示します。gcloud bigtable app-profiles list --instance=INSTANCE_ID
INSTANCE_ID
はインスタンスの永続的な識別子に置き換えます。アプリ プロファイルで使用するクラスタを変更するには、
bigtable app-profiles update
コマンドを使用します。gcloud bigtable app-profiles update APP_PROFILE_ID \ --instance=INSTANCE_ID \ --route-to=CLUSTER_ID
次のフィールドを入力します。
APP_PROFILE_ID
: アプリ プロファイルの永続的な識別子。INSTANCE_ID
: インスタンスの永続的な識別子。CLUSTER_ID
: すべてのリクエストのルーティング先となるクラスタ ID。このフラグにより、単一クラスタのルーティングが有効になります。
エラー メッセージが表示された場合は、メッセージに記載されている警告の内容を慎重に確認してください。エラーをオーバーライドする場合は、
--force
フラグを指定して同じコマンドをもう一度実行します。
アプリ プロファイルを更新するとすぐに、そのアプリ プロファイルを使用しているすべてのアプリケーションで、選択した正常なクラスタにすべてのリクエストが送信されるようになります。異常が発生しているクラスタは引き続き CPU を使用してレプリケーションやその他のメンテナンス タスクを処理します。
異常が発生していたクラスタが復旧すると、同じ手順でアプリ プロファイルを更新して、復旧したクラスタにすべてのリクエストをルーティングできます。
自動フェイルオーバーを実行する
Bigtable での自動フェイルオーバーは、完全に自動で実行されます。アプリ プロファイルでマルチクラスタ ルーティングを使用しており、アプリケーション サーバーに最も近いクラスタが異常になった場合は、何もする必要はありません。Bigtable では、クラスタが一時的に異常な状態であっても、自動的にフェイルオーバーし、異常が発生しているクラスタが復旧するまで正常なクラスタを使用してリクエストを処理します。
特定の期間に自動的にルート変更されたリクエストの数を表示するには、Google Cloud コンソールで [自動フェイルオーバー] グラフを確認します。インスタンスのリストを開き、インスタンス名をクリックし、[モニタリング] をクリックします。
次のステップ
Bigtable インスタンスをモニタリングする方法を確認する。