第8章 バックアップおよび障害復旧
本セクションでは、CodeReady Workspaces のバックアップおよび障害復旧機能の複数の側面について説明します。
8.1. 外部データベースの設定
PostgreSQL データベースは、CodeReady Workspaces の状態に関するデータを永続化させるために、CodeReady Workspaces サーバーによって使用されます。これには、ユーザーアカウント、ワークスペース、設定についての情報、およびその他の詳細情報が含まれます。
デフォルトで、CodeReady Workspaces Operator はデータベースデプロイメントを作成し、管理します。
ただし、CodeReady Workspaces Operator はバックアップやリカバリーなどの完全なライフサイクル機能をサポートしません。
ビジネスに不可欠な環境では、以下の推奨される障害復旧オプションを使用して外部データベースを設定します。
- 高可用性 (HA)
- PITR (Point In Time Recovery)
オンプレミスの外部 PostgreSQL インスタンスを設定するか、または Amazon Relational Database Service (Amazon RDS) などのクラウドサービスを使用します。Amazon RDS を使用すると、通常の、およびオンデマンドのスナップショットを使用して、回復性のある障害復旧ストラテジーの Multi-Availability Zone 設定で実稼働データベースをデプロイできます。
データベースサンプルの設定例は以下のようになります。
パラメーター | 値 |
---|---|
インスタンスクラス | db.t2.small |
vCPU | 1 |
RAM | 2 GB |
Multi-az | true、2 つのレプリカ |
エンジンのバージョン | 9.6.11 |
TLS | enabled |
自動化されたバックアップ | 有効 (30 日) |
8.1.1. 外部 PostgreSQL の設定
手順
以下の SQL スクリプトを使用して、CodeReady Workspaces サーバーのユーザーおよびデータベースを作成し、ワークスペースのメタデータなどを永続化させます。
CREATE USER <database-user> WITH PASSWORD '<database-password>' 1 2 CREATE DATABASE <database> 3 GRANT ALL PRIVILEGES ON DATABASE <database> TO <database-user> ALTER USER <database-user> WITH SUPERUSER
以下の SQL スクリプトを使用して、RH-SSO バックエンドのデータベースを作成して、ユーザー情報を永続化させます。
CREATE USER <identity-database-user> WITH PASSWORD '<identity-database-password>' 1 2 CREATE DATABASE <identity-database> 3 GRANT ALL PRIVILEGES ON DATABASE <identity-database> TO <identity-database-user>
8.1.2. 外部 PostgreSQL と連携するように CodeReady Workspaces を設定する
前提条件
-
oc
ツールが利用できる。
手順
CodeReady Workspaces のプロジェクトを事前に作成します。
$ oc create namespace workspaces
CodeReady Workspaces サーバーデータベースの認証情報を保存するためにシークレットを作成します。
$ oc create secret generic <server-database-credentials> \ 1 --from-literal=user=<database-user> \ 2 --from-literal=password=<database-password> \ 3 -n workspaces
RH-SSO データベース認証情報を保存するためのシークレットを作成します。
$ oc create secret generic <identity-database-credentials> \ 1 --from-literal=user=<identity-database-user> \ 2 --from-literal=password=<identity-database-password> \ 3 -n workspaces
Operator がデータベースのデプロイを省略し、既存のデータベースの接続詳細を CodeReady Workspaces サーバーに渡すには、カスタムリソースに以下の値を設定します。
spec: database: externalDb: true chePostgresHostName: <hostname> 1 chePostgresPort: <port> 2 chePostgresSecret: <server-database-credentials> 3 chePostgresDb: <database> 4 spec: auth: identityProviderPostgresSecret: <identity-database-credentials> 5
関連資料