10.2. 手順
10.2.1. Data Grid クラスター
この章の文脈では、Site-A
がプライマリーサイト、Site-A
がセカンダリーサイトとなります。
サイトをオフラインにする準備ができたら、そのサイトへのレプリケーションを無効にすることを推奨します。この操作により、プライマリーサイトとセカンダリーサイトの間でチャネルが切断されたときのエラーや遅延が防止されます。
10.2.1.1. 状態をセカンダリーサイトからプライマリーサイトに転送する手順
- セカンダリーサイトにログインします。
Data Grid CLI ツールを使用して Data Grid クラスターに接続します。
コマンド:
oc -n keycloak exec -it pods/infinispan-0 -- ./bin/cli.sh --trustall --connect https://127.0.0.1:11222
Data Grid クラスターのユーザー名とパスワードが要求されます。これらの認証情報は、Data Grid Operator を使用した HA 用の Data Grid のデプロイ の章にある認証情報の設定セクションで設定したものです。
出力:
Username: developer Password: [infinispan-0-29897@ISPN//containers/default]>
注記Pod 名は、Data Grid CR で定義したクラスター名によって異なります。接続は、Data Grid クラスター内の任意の Pod で行うことができます。
次のコマンドを実行して、プライマリーサイトへのレプリケーションを無効にします。
コマンド:
site take-offline --all-caches --site=site-a
出力:
{ "offlineClientSessions" : "ok", "authenticationSessions" : "ok", "sessions" : "ok", "clientSessions" : "ok", "work" : "ok", "offlineSessions" : "ok", "loginFailures" : "ok", "actionTokens" : "ok" }
レプリケーションのステータスが
offline
であることを確認します。コマンド:
site status --all-caches --site=site-a
出力:
{ "status" : "offline" }
ステータスが
offline
でない場合は、前のステップを繰り返します。
セカンダリーサイトの Data Grid クラスターが、プライマリーサイトへのレプリケーションを試行せずにリクエストを処理できるようになります。
10.2.2. AWS Aurora データベース
リージョン内のマルチ AZ Aurora デプロイメントの場合、アベイラビリティーゾーン間の遅延と通信を回避するために、現在のライターインスタンスが、アクティブな Red Hat build of Keycloak クラスターと同じリージョン内にあるはずです。
Aurora のライターインスタンスを切り替えると、短いダウンタイムが発生します。他のサイトのライターインスタンスは、遅延が若干長くても、デプロイメントによっては許容可能な場合があります。したがって、このような状況は、デプロイメントの環境によっては、メンテナンス期間まで保留されるか、無視されることがあります。
ライターインスタンスを変更するには、フェイルオーバーを実行します。この変更により、データベースが短期間利用できなくなります。Red Hat build of Keycloak は、データベース接続を再確立する必要があります。
ライターインスタンスを他の AZ にフェイルオーバーするには、次のコマンドを発行します。
aws rds failover-db-cluster --db-cluster-identifier ...
10.2.3. Red Hat build of Keycloak クラスター
アクションは不要です。
10.2.4. Route53
Route53 にプライマリーサイトを利用不可とマークさせるために、存在しないルート (health/down
) を参照するように AWS のヘルスチェックを編集します。数分後、クライアントが変更を認識し、トラフィックが徐々にセカンダリーサイトに移動します。