データベース クラスタを作成する

このページでは、Database Service を使用して、Google Distributed Cloud(GDC)のエアギャップでデータベースを作成して管理する方法について説明します。

認可とロール

ユーザーは、データベース サービスにアクセスする権限を持っている必要があります。GDC コンソールと Distributed Cloud CLI の両方で Database Service にアクセスするには、認可が必要です。

次のロールは、ユーザーに権限を付与します。

プロジェクト閲覧者(project-viewer
このロールを持つユーザーは GDC コンソールにアクセスできます。
プロジェクト DB 閲覧者(project-db-viewer
このロールを持つユーザーは、データベース クラスタを表示できます。
プロジェクト DB 編集者(project-db-editor
このロールを持つユーザーは、project-db-viewer によって付与された機能を使用でき、データベース クラスタを編集することもできます。
プロジェクト データベース管理者(project-db-admin
このロールを持つユーザーは、project-db-editor によって付与された権限を持ち、データベース クラスタの作成と削除もできます。
プロジェクト バケット オブジェクト閲覧者(project-bucket-object-viewer
このロールを持つユーザーは、GDC コンソールの Database Service インターフェースでストレージ ブラウザを使用できます。このインターフェースは、データベースのインポート用のファイルを指定したり、データベースのエクスポートで生成されたファイルの宛先を指定したりするために使用されます。
プロジェクト モニタリング閲覧者(project-monitoring-viewer
このロールを持つユーザーは、モニタリング インスタンスにアクセスできます。Database Service の指標のモニタリングの詳細については、指標をモニタリングするをご覧ください。このロールは、モニタリング インスタンスにアクセスする必要があるユーザーにのみ付与してください。
プロジェクト メンテナンス ポリシー管理者(project-mp-admin
このロールを持つユーザーは、project_mp_editor ロールと project_mpb_editor ロールの両方で付与される権限を持つため、メンテナンス ポリシーとメンテナンス ポリシー バインディングの両方を作成、編集、削除できます。
プロジェクト メンテナンス ポリシー閲覧者(project-mp-viewer
このロールを持つユーザーはメンテナンス ポリシーを表示できます。
プロジェクト メンテナンス ポリシー編集者(project-mp-editor
このロールを持つユーザーは、project_mp_viewer ロールによって付与される機能を使用でき、メンテナンス ポリシーの作成、編集、削除も行うことができます。
プロジェクト メンテナンス ポリシー バインディング閲覧者(project-mpb-viewer
このロールを持つユーザーは、メンテナンス ポリシーのバインディングを表示できます。
プロジェクト メンテナンス ポリシー バインディング編集者(project-mpb-editor
このロールを持つユーザーは、project_mpb_viewer ロールによって付与される機能に加えて、メンテナンス ポリシー バインディングの作成、編集、削除を行うことができます。

利用可能なデータベース エンジン

GDC 環境で使用できるデータベース エンジンは次のとおりです。

データベース バージョン
AlloyDB Omni 15
Oracle 19
PostgreSQL 13、14、15

データベース エンジン タイプを選択してデータベース クラスタを作成する

データベース クラスタのバックアップを有効にする場合は、まず Distributed Cloud ストレージ バケットまたは S3 互換のエンドポイントでアクセス可能なバケットを作成し、dbs-backup-repository という名前のバックアップ リポジトリを作成します。Distributed Cloud の外部にあるストレージ バケットを使用する場合は、バケットが適切に暗号化されていることを確認する必要があります。

次に、Database Service バックアップ用に作成された BackupRepository カスタム リソースの例を示します。

apiVersion: backup.gdc.goog/v1
kind: BackupRepository
metadata:
  name: dbs-backup-repository
spec:
  secretReference:
    namespace: "object-storage-secret-ns"
    name: "object-storage-secret"
  endpoint: "https://objectstorage.google.gdch.test"
  type: S3
  s3Options:
    bucket: "fully-qualified-bucket-name"
    region: "us-east-1"
    forcePathStyle: true
  importPolicy: ReadWrite

プロジェクト DB 管理者のロールを持つユーザーは、次の手順を実行する必要があります。GDC コンソールまたは Distributed Cloud CLI のいずれかを使用して、データベース クラスタを作成します。

コンソール

  1. メインメニューから [データベース サービス] を選択します。
  2. [データベース クラスタを作成] をクリックします。
  3. [データベース エンジンを選択] ダイアログで、データベース エンジンを選択します。

  4. [クラスタを構成する] ダイアログで、クラスタ ID、パスワード、データベース バージョンを指定します。バックアップを有効にして、バックアップの保持期間を構成できます。

  5. PostgreSQL データベース エンジンを選択した場合は、データベース クラスタの高可用性を有効にできます。有効にすると、Database Service は障害から保護するために、プライマリ インスタンスと同じゾーンにスタンバイ インスタンスをプロビジョニングします。詳細については、高可用性をご覧ください。

  6. [プライマリ インスタンスの構成] ダイアログで、データベース クラスタのプライマリ インスタンスの CPU、メモリ、ストレージ容量を指定します。最大のテーブルを保持するのに十分なメモリを選択することをおすすめします。

  7. [作成] をクリックします。データベース クラスタの作成には数分かかることがあります。[クラスタの概要] ページでクラスタのステータスを確認します。クラスタの準備が完了すると、ステータスが [作成中] から [準備完了] に変わります。

gdcloud

  1. Distributed Cloud CLI を使用する前に、インストールして初期化します。次に、組織で認証します。

  2. 次のコマンドを実行して、データベース クラスタを作成します。

    gdcloud database clusters create CLUSTER_NAME \
        --database-version DB_VERSION \
        --admin-password ADMIN_PASSWORD
    

    次の変数を置き換えます。

    • CLUSTER_NAME は、新しいクラスタの名前に置き換えます。
    • DB_VERSION は、新しいクラスタのバージョン文字列に置き換えます。たとえば、POSTGRESQL_13ORACLE_19_ENTERPRISEALLOYDBOMNI_15 などです。
    • ADMIN_PASSWORD は、新しいクラスタの管理者パスワードに置き換えます。
  3. データベース クラスタの CPU、メモリ、ストレージ リソースの構成、バックアップの構成、高可用性の有効化、その他の使用可能なオプションの詳細については、次のコマンドを実行します。

    gdcloud database clusters create --help
    

API

AlloyDB または PostgreSQL データベースの場合:

apiVersion: v1
kind: Secret
metadata:
  name: db-pw-DBCLUSTER_NAME
  namespace: USER_PROJECT
type: Opaque
data:
  DBCLUSTER_NAME: "BASE64_PASSWORD"
---
apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
kind: DBCluster
metadata:
  name: DBCLUSTER_NAME
  namespace: USER_PROJECT
spec:
  primarySpec:
    adminUser:
      passwordRef:
        name: db-pw-DBCLUSTER_NAME
    version: "DB_VERSION"
    resources:
      memory: DB_MEMORY
      cpu: DB_CPU
      disks:
      - name: DataDisk
        size: DB_DATA_DISK

Oracle データベースの場合:

apiVersion: v1
kind: Secret
metadata:
  name: db-pw-DBCLUSTER_NAME
  namespace: USER_PROJECT
type: Opaque
data:
  DBCLUSTER_NAME: "BASE64_PASSWORD"
---
apiVersion: oracle.dbadmin.gdc.goog/v1
kind: DBCluster
metadata:
  name: DBCLUSTER_NAME
  namespace: USER_PROJECT
spec:
  primarySpec:
    adminUser:
      passwordRef:
        name: db-pw-DBCLUSTER_NAME
    version: "DB_VERSION"
    cdbName: GCLOUD
    resources:
      memory: DB_MEMORY
      cpu: DB_CPU
      disks:
      - name: DataDisk
        size: DB_DATA_DISK
      - name: LogDisk
        size: DB_LOG_DISK

次の変数を置き換えます。

  • DBCLUSTER_NAME: データベース クラスタの名前。
  • USER_PROJECT: データベース クラスタが作成されるユーザー プロジェクトの名前。
  • BASE64_PASSWORD: データベースの管理者パスワード(base64 エンコード)。
  • DBENGINE_NAME: データベース エンジンの名前。alloydbomni または postgresql のいずれかです。
  • DB_VERSION。データベース エンジンのバージョン。
  • DB_MEMORY: DB クラスタに割り当てられるメモリ量。例: 5Gi
  • DB_CPU: DB クラスタに割り当てられる CPU の量。例: 2
  • DB_DATA_DISK: DB クラスタに割り当てられるスペースの量。例: 10 Gi
  • DB_LOG_DISK: Oracle データベースのログディスクに割り当てられた容量(Oracle のみ)。