Cloud Storage でのバックアップのスケジュール設定

このページでは、Cloud Storage で Cassandra のバックアップをスケジュールする方法について説明します。この方法では、バックアップは指定した Cloud Storage バケットに保存されます。

Cassandra のバックアップをスケジュールするには、次の手順を行います。

  1. 次の create-service-account コマンドを実行して、標準の roles/storage.objectAdmin ロールを持つ Google Cloud サービス アカウント(SA)を作成します。この SA ロールを使用すると、バックアップ データを Cloud Storage に書き込むことができます。hybrid-base-directory/hybrid-files ディレクトリで次のコマンドを実行します。
    ./tools/create-service-account --env non-prod --dir ./service-accounts
    このコマンドにより、非本番環境で使用する apigee-non-prod という名前の 1 つのサービス アカウントが作成され、ダウンロードした鍵ファイルが ./service-accounts ディレクトリに配置されます。Google Cloud サービス アカウントの詳細については、サービス アカウントの作成と管理をご覧ください。
  2. 上記の create-service-account コマンドにより、サービス アカウントの秘密鍵を含む JSON ファイルが作成され、コマンドを実行したディレクトリに保存されます。以降のステップでこのファイルのパスが必要になります。
  3. Cloud Storage バケットを作成します。バケットに適したデータ保持ポリシーを指定してください。15 日のデータ保持ポリシーを使用することをおすすめします。
  4. overrides.yaml ファイルを開きます。
  5. 次の cassandra.backup プロパティを追加してバックアップを有効にします。すでに構成されているプロパティは削除しないでください。

    パラメータ

    cassandra:
      ...
    
      backup:
        enabled: true
        serviceAccountPath: SA_JSON_FILE_PATH
        dbStorageBucket: CLOUD_STORAGE_BUCKET_PATH
        schedule: BACKUP_SCHEDULE_CODE
        cloudProvider: "GCP"  # For remote server backup set this to HYBRID (all caps)
    
      ...
      

    ...
    
    cassandra:
      storage:
        type: gcepd
        capacity: 50Gi
        gcepd:
          replicationType: regional-pd
      auth:
        default:
          password: "abc123"
        admin:
          password: "abc234"
        ddl:
          password: "abc345"
        dml:
          password: "abc456"
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-data
      backup:
        enabled: true
        serviceAccountPath: "/Users/myhome/.ssh/my-cassandra-backup-sa.json"
        dbStorageBucket: "gs://myname-cassandra-backup"
        schedule: "45 23 * * 6"
        cloudProvider: "GCP"
        
    
      ... 
  6. ここで
    プロパティ 説明
    backup:enabled バックアップはデフォルトでは無効になっています。このプロパティを true に設定する必要があります。
    backup:serviceAccountPath

    SA_JSON_FILE_PATH

    ./tools/create-service-account コマンドを実行したときにダウンロードされたサービス アカウント JSON ファイルへのファイルシステム上のパス。

    相対ファイルパスを指定することもできます。このパスは、hybrid-base-directory/hybrid-files ディレクトリからの相対パスです。

    backup:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    Cloud Storage バケットのパス。形式は gs://BUCKET_NAME です。必ず gs:// を付ける必要があります。

    backup:cloudProvider

    GCP/HYBRID

    Cloud Storage バックアップの場合は、プロパティを GCP に設定します。たとえば、cloudProvider: "GCP" です。

    リモート サーバーのバックアップの場合は、プロパティを HYBRID に設定します。たとえば、cloudProvider: "HYBRID" です。

    backup:schedule

    BACKUP_SCHEDULE_CODE

    バックアップの開始時刻。標準の crontab 構文で指定します。デフォルト: 0 2 * * *

  7. 構成の変更を新しいクラスタに適用します。次に例を示します。
    $APIGEECTL_HOME/apigeectl apply --datastore -f YOUR_OVERRIDES_FILE

    ここで、YOUR_OVERRIDES_FILE は、編集したオーバーライド ファイルのパスです。

  8. バックアップ ジョブを確認します。次に例を示します。
    kubectl get cronjob -n apigee
    NAME                      SCHEDULE     SUSPEND   ACTIVE   LAST SCHEDULE   AGE
    apigee-cassandra-backup   33 * * * *   False     0        <none>          94s