このページでは、セカンダリ クラスタを作成して操作し、クロスリージョン レプリケーションを使用する方法について説明します。
クロスリージョン レプリケーションのコンセプトの概要については、クロスリージョン レプリケーションについてをご覧ください。
始める前に
- 使用している Google Cloud プロジェクトで、AlloyDB へのアクセスが有効になっている必要があります。
- 使用している Google Cloud プロジェクトに、次のいずれかの IAM ロールが必要です。
roles/alloydb.admin
(AlloyDB 管理者の事前定義 IAM ロール)roles/owner
(オーナーの基本 IAM ロール)roles/editor
(編集者の基本 IAM ロール)
これらのロールを付与されていない場合は、組織管理者に連絡してアクセス権をリクエストしてください。
セカンダリ クラスタの作成
セカンダリ クラスタを作成すると、AlloyDB はポイントインタイム リカバリ(PITR)やバックアップ構成など、プライマリ クラスタ構成の一部をコピーしてセカンダリ クラスタに適用します。AlloyDB は、プライマリ クラスタに読み取りプール インスタンスがいくつ存在していても、セカンダリ クラスタの作成後に読み取りプール インスタンスを追加しません。
セカンダリ クラスタの作成後にプライマリ クラスタの構成を更新しても、セカンダリ クラスタでは変更を使用できません。ただし、プライマリ クラスタで使用可能な最新の構成をセカンダリ クラスタに手動で更新できます。
AlloyDB セカンダリ クラスタとセカンダリ インスタンスを作成する手順は次のとおりです。
コンソール
Google Cloud コンソールで、[クラスタ] ページに移動します。
[リソース名] 列でクラスタをクリックします。
[概要] ページで、[セカンダリ クラスタを作成] をクリックします。
セカンダリ クラスタを構成します。
- [クラスタ ID] フィールドに、セカンダリ クラスタのリソース ID を入力します。
- プライマリ クラスタのリージョンとは異なるリージョンをセカンダリ クラスタに選択します。
- 暗号化方法としてデフォルトの Google 管理の暗号化または顧客管理の暗号鍵(CMEK)を選択し、セカンダリ クラスタを暗号化します。
CMEK 鍵を使用してこのクラスタを暗号化する手順は次のとおりです。
- [高度な暗号化オプション] をクリックします。
- [Customer-managed encryption key (CMEK)] を選択します。
表示されたメニューから顧客管理の暗号鍵を選択します。
Google Cloud コンソールでは、このリストは新しいクラスタと同じGoogle Cloud プロジェクトとリージョン内のキーに制限されます。
このリストにない鍵を使用する手順は次のとおりです。
- [鍵が表示されない場合は、鍵のリソース名を入力します。
- [鍵のリソース名] フィールドにリソース名を入力します。
- [保存] をクリックします。
- [続行] をクリックします。
AlloyDB で CMEK 鍵を使用するには、追加の設定が必要です。詳細については、CMEK を使用するをご覧ください。
関連付けられたプライマリ インスタンスが CMEK 鍵で暗号化されている場合は、セカンダリ クラスタも CMEK 鍵で暗号化する必要があります。
セカンダリ インスタンスを構成します。
- [インスタンス ID] フィールドに、セカンダリ インスタンスのリソース ID を入力します。リソース ID はクラスタ内で一意である必要があります。
[クラスタを作成] をクリックします。
gcloud
gcloud CLI を使用するには、Google Cloud CLI をインストールして初期化するか、Cloud Shell を使用します。
gcloud alloydb clusters create-secondary
コマンドを次のように使用します。
gcloud alloydb clusters create-secondary SECONDARY_CLUSTER_ID \ --region=REGION_ID \ --primary-cluster=projects/PROJECT_ID/locations/LOCATION_ID/clusters/ PRIMARY_CLUSTER_ID \
gcloud alloydb instances create-secondary SECONDARY_INSTANCE_ID \ --cluster=SECONDARY_CLUSTER_ID \ --region=REGION_ID
次のように置き換えます。
SECONDARY_CLUSTER_ID
: 作成するセカンダリ クラスタの ID。SECONDARY_INSTANCE_ID
: 作成するセカンダリ インスタンスの ID。REGION_ID
: セカンダリ クラスタのリージョンの ID(例:us-central1
)。PROJECT_ID
: セカンダリ クラスタのプロジェクトの ID。LOCATION_ID
: プライマリ クラスタが配置されているロケーション(例:us-central1
)。PRIMARY_CLUSTER_ID
: セカンダリ クラスタが関連付けられているプライマリ クラスタの ID。SECONDARY_CLUSTER_ID
: セカンダリ インスタンスが関連付けられているセカンダリ クラスタの ID。ALLOWED_PROJECT
(省略可): インスタンスへのアクセスを許可するプロジェクト ID またはプロジェクト番号のカンマ区切りリスト(例:my-project-1
、12345
、my-project-n
)。クラスタがインスタンスへの接続方法として Private Service Connect を使用している場合は、許可されるプロジェクトまたは番号のリストを設定する必要があります。--no-enable-automated-backup
(省略可): セカンダリ クラスタでの自動バックアップの作成を無効にします。
Private Service Connect 対応のセカンダリ クラスタとインスタンスを作成するには、クラスタの作成時に --enable-private-service-connect
フラグを追加し、--allowed-psc-projects
フラグを追加して、インスタンスへのアクセスを許可するプロジェクト ID またはプロジェクト番号のカンマ区切りリストを設定します(例: my-project-1
、12345
、my-project-n
)。
gcloud alloydb clusters create-secondary SECONDARY_CLUSTER_ID \ --region=REGION_ID \ --primary-cluster=projects/PROJECT_ID/locations/LOCATION_ID/clusters/ PRIMARY_CLUSTER_ID \ --enable-private-service-connect
gcloud alloydb instances create-secondary SECONDARY_INSTANCE_ID \ --cluster=SECONDARY_CLUSTER_ID \ --region=REGION_ID \ --allowed-psc-projects=ALLOWED_PROJECT_LIST
次のように置き換えます。
ALLOWED_PROJECT
(省略可): インスタンスへのアクセスを許可するプロジェクト ID またはプロジェクト番号のカンマ区切りリスト(例:my-project-1
、12345
、my-project-n
)。クラスタがインスタンスへの接続方法として Private Service Connect を使用している場合は、許可するプロジェクトまたは番号のリストを設定する必要があります。
パブリック IP 対応クラスタのセカンダリ インスタンスを作成するには、--assign-inbound-public-ip=ASSIGN_IPV4
パラメータを追加します。
gcloud alloydb instances create-secondary SECONDARY_INSTANCE_ID \
--cluster=SECONDARY_CLUSTER_ID \
--region=REGION_ID \
--assign-inbound-public-ip=ASSIGN_IPV4
必要に応じて、64.233.160.0/16
などの CIDR ブロックのカンマ区切りのリストを --authorized-external-networks
パラメータに渡して、インスタンスに承認済み外部ネットワークを設定します。
セカンダリ クラスタを表示する
AlloyDB セカンダリ クラスタの詳細情報を表示する手順は次のとおりです。
Google Cloud コンソールで、[クラスタ] ページに移動します。
[リソース名] 列でセカンダリ クラスタをクリックします。
[概要] ページで、セカンダリ クラスタの詳細をすべて表示します。
セカンダリ インスタンスを更新する
セカンダリ インスタンスを更新して、データベース フラグを追加、変更、削除できます。セカンダリ インスタンスのマシンタイプをスケーリングすることもできます。
セカンダリ インスタンスでデータベース フラグを構成する
データベース フラグを追加、変更、削除する手順は次のとおりです。
コンソール
Google Cloud コンソールで、[クラスタ] ページに移動します。
[リソース名] 列で、変更するセカンダリ クラスタをクリックします。
[概要] ページで [クラスタ内のインスタンス] に移動し、セカンダリ インスタンスを選択して、[セカンダリを編集] をクリックします。
インスタンスからデータベース フラグを追加、変更、削除します。
フラグを追加する
- インスタンスにデータベース フラグを追加するには、[フラグを追加] をクリックします。
- [新しいデータベース フラグ] リストからフラグを選択します。
- フラグの値を指定します。
- [完了] をクリックします。
フラグを変更する
- インスタンス内のデータベース フラグを変更するには、データベース フラグを開き、[データベース フラグを編集] セクションで既存のフラグの値を変更します。
- [完了] をクリックします。
フラグを削除する
- インスタンスからデータベース フラグを削除するには、フラグを選択して削除アイコンをクリックします。
- [完了] をクリックします。
[セカンダリを更新] をクリックします。
gcloud
セカンダリ インスタンスのデータベース フラグを変更するには、gcloud alloydb instances update
コマンドを使用します。
gcloud alloydb instances update SECONDARY_INSTANCE_ID \
--database-flags FLAGS_LIST \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID
次のように置き換えます。
SECONDARY_INSTANCE_ID
: セカンダリ インスタンスの ID。FLAGS_LIST
: 1 つ以上のデータベース フラグ仕様のカンマ区切りリスト。各仕様は、フラグの名前、等号(=
)、フラグに割り当てる値で構成されます。値を受け取らないデータベース フラグの場合は、フラグ名の後に等号(=
)を付けます。REGION_ID
: セカンダリ インスタンスが配置されているリージョン(例:us-central1
)。CLUSTER_ID
: セカンダリ インスタンスが配置されているクラスタの ID。PROJECT_ID
: セカンダリ クラスタが配置されるプロジェクトの ID。
セカンダリ インスタンスのマシンタイプをスケーリングする
セカンダリ インスタンスのマシンタイプをスケーリングする手順は次のとおりです。
コンソール
Google Cloud コンソールで、[クラスタ] ページに移動します。
[リソース名] 列で、変更するセカンダリ クラスタをクリックします。
[概要] ページで [クラスタ内のインスタンス] セクションに移動し、[セカンダリを編集] をクリックします。
ページでクラスタのステータスがメンテナンスと報告されている場合、このアクションは使用できません。[ステータス] が [準備完了] に変わると、アクションが再度使用できるようになります。
マシンタイプを選択します。
[セカンダリを更新] をクリックします。
gcloud
gcloud alloydb instances
update
コマンドを使用して、セカンダリ インスタンスのマシンタイプを変更します。
gcloud alloydb instances update SECONDARY_INSTANCE_ID \
--cpu-count=CPU_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID
次のように置き換えます。
SECONDARY_INSTANCE_ID
: 更新するセカンダリ インスタンスの ID。CPU_COUNT
: インスタンスに必要な vCPU の数。有効な値は次のとおりです。2
(2 個の vCPU、16 GB RAM)4
(4 個の vCPU、32 GB RAM)8
(8 個の vCPU、64 GB RAM)16
(16 個の vCPU、128 GB RAM)32
(32 個の vCPU、256 GB RAM)64
(64 個の vCPU、512 GB RAM)
REGION_ID: インスタンスが配置されるリージョン。
CLUSTER_ID: インスタンスが配置されているクラスタの ID。
PROJECT_ID: クラスタが配置されるプロジェクトの ID。
コマンドから「invalid cluster state MAINTENANCE
」というフレーズを含むエラー メッセージが返された場合は、クラスタが定期メンテナンス中です。これにより、インスタンスの再構成が一時的に禁止されます。クラスタが READY
状態に戻ったら、コマンドをもう一度実行します。
クラスタのステータスを確認するには、クラスタの詳細を表示するをご覧ください。
読み取りプール インスタンスをセカンダリ クラスタに追加する
セカンダリ クラスタに読み取りプール インスタンスを追加する手順は次のとおりです。
Google Cloud コンソールで、[クラスタ] ページに移動します。
[リソース名] 列で、読み取りプール インスタンスを追加するセカンダリ クラスタをクリックします。
[概要] ページの [クラスタ内のインスタンス] セクションに移動し、[読み取りプールを追加] をクリックします。
読み取りプール インスタンスを構成します。
- [読み取りプール インスタンス ID] フィールドに、読み取りプール インスタンスの ID を入力します。
- [ノード数] フィールドにノード数を入力します。読み取りプール インスタンス内のノードの数によって、インスタンスの全体的なコンピューティング容量が決まります。クラスタ内のすべての読み取りプール インスタンスに最大 20 個のノードを配置できます。
- マシンタイプを選択します。
省略可: インスタンスにカスタムフラグを設定します。フラグごとに、次の操作を行います。
- [フラグを追加] をクリックします。
- [新しいデータベース フラグ] リストからフラグを選択します。
- フラグの値を指定します。
- [完了] をクリックします。
[読み取りプールを追加] をクリックします。
セカンダリ クラスタを昇格させる
セカンダリ クラスタを昇格させる前に、次の手順で、セカンダリ クラスタがプライマリ クラスタから受け取ったすべてのトランザクションを適用していることを確認します。
- プライマリ クラスタへの書き込みをすべて停止します。
次の手順で、セカンダリ クラスタのレプリケーション ステータスを確認します。
Google Cloud コンソールで、[クラスタ] ページに移動します。
クラスタのリストで、昇格するセカンダリ クラスタの名前をクリックします。
クラスタの詳細ページで、[モニタリング] をクリックします。
[Monitoring] リストで、セカンダリ インスタンスを選択します。リストには [Secondary: INSTANCE_NAME] と表示されます。
指標のリストで、[プライマリ インスタンスからのレプリケーション ラグ] グラフを見つけます。
グラフに遅延が最小限に抑えられていることをご確認ください。
ラグ値は
0
が理想的です。遅延が0
を超える場合でも、セカンダリ クラスタを昇格できますが、プライマリ クラスタですでに commit されている最近のトランザクションが失われるリスクがあります。指標のリストで、[レプリケーション ステータス] グラフを見つけます。
グラフに表示されるすべてのノードの値が
streaming
であることを確認します。
セカンダリ クラスタをプライマリ クラスタに昇格させる手順は次のとおりです。
コンソール
Google Cloud コンソールで、[クラスタ] ページに移動します。
[リソース名] 列で、プライマリ クラスタとして昇格するセカンダリ クラスタをクリックします。
[概要] ページで、[クラスタを昇格] をクリックします。
表示されたダイアログで、セカンダリ クラスタ ID を入力して、クラスタを昇格することを確認します。
[プロモート] をクリックします。
クラスタが昇格すると、[概要] ページの [タイプ: セカンダリ クラスタ(高可用性)] フィールドが [タイプ: 高可用性(読み取りプールあり)] に更新されます。
gcloud
gcloud alloydb clusters promote
コマンドを使用します。
gcloud alloydb clusters promote SECONDARY_CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_ID \
次のように置き換えます。
SECONDARY_CLUSTER_ID
: 昇格させるセカンダリ クラスタの ID。REGION_ID
: セカンダリ クラスタのリージョンの ID(us-central1
など)。PROJECT_ID
: セカンダリ クラスタのプロジェクトの ID。
切り替えを行う
スイッチオーバーを実行する前に、プライマリ インスタンスとセカンダリ インスタンスが属する両方のリージョンがオンラインであり、インスタンスが正常な状態であることを確認します。詳細については、AlloyDB システム分析情報ダッシュボードを使用してインスタンスをモニタリングするをご覧ください。
gcloud alloydb clusters
switchover
コマンドを使用します。
gcloud alloydb clusters switchover SECONDARY_CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_ID \
次のように置き換えます。
SECONDARY_CLUSTER_ID
: 昇格させるセカンダリ クラスタの ID。REGION_ID
: セカンダリ クラスタのリージョンの ID(例:us-central1
)。PROJECT_ID
: セカンダリ クラスタのプロジェクトの ID。