Cassandra の復元の概要

このページでは、Apigee ハイブリッドでの Cassandra の復元の概要について説明します。

復元を使用する理由

バックアップを使用すると、Apigee ハイブリッド インスタンスで回復不能なデータ損失が発生するなど、重大な障害が発生した場合に Apigee インフラストラクチャをゼロから復元できます。復元プロセスでは、バックアップのロケーションからデータが取得され、同じ数のノードを持つ新しい Cassandra クラスタにデータが復元されます。古い Cassandra クラスタからデータが取得されることはありません。復元プロセスの目標は、スナップショットのバックアップ データを使用して、Apigee ハイブリッド インストールを以前の運用状態に戻すことです。

次の場合、復元のためにバックアップを使用することはおすすめしません。

  • Cassandra ノードの障害。
  • appsdevelopersapi_credentials などのデータの偶発的な削除。
  • マルチリージョン ハイブリッド デプロイでの 1 つ以上のリージョンの停止。

Apigee Cassandra のデプロイと運用アーキテクチャは、単一リージョンの冗長性とフォールト トレランスに対応しています。多くの場合、ハイブリッドのマルチリージョンの本番環境として推奨される実装では、バックアップから復元するのではなく、リージョンのデコミッションと拡張手順を使用して、別のライブ リージョンからリージョンの障害を復元できます。

Cassandra のバックアップからの復元を実装開始する前に、次の点に注意してください。

  • ダウンタイム: 復元中はダウンタイムが発生します。
  • データ損失: 最後の有効なバックアップの時点から復元の完了時点までのデータは失われます。
  • 復元にかかる時間: 復元にかかる時間はデータとクラスタのサイズによって異なります。
  • データの選択: 特定のデータのみを選択して復元することはできません。選択したバックアップ全体が復元されます。

マルチリージョンでの復元

Apigee ハイブリッドを複数のリージョンにインストールした場合は、復元を実行する前に復元するリージョンのオーバーライド ファイルをチェックして、cassandra:hostNetworkfalse に設定されていることを確認する必要があります。詳細については、複数のリージョンでの復元をご覧ください。

前提条件

以下の前提条件がすべて満たされていることを確認してください。復元に進む前に、前提条件となる障害を調査します。

  1. 次のコマンドを使用して、すべての Cassandra Pod が稼働していることを確認します。
    kubectl get pods -n APIGEE_NAMESPACE -l app=apigee-cassandra

    出力は次の例のようになります。

    NAME                         READY   STATUS    RESTARTS   AGE
    apigee-cassandra-default-0   1/1     Running   0          14m
    apigee-cassandra-default-1   1/1     Running   0          13m
    apigee-cassandra-default-2   1/1     Running   0          11m
    exampleuser@example hybrid-files %
          
  2. 次のコマンドを使用して、Cassandra statefulset ですべての Pod が実行されていることを確認します。
    kubectl get sts -n APIGEE_NAMESPACE -l app=apigee-cassandra

    出力は次の例のようになります。

    NAME                       READY   AGE
    apigee-cassandra-default   3/3     15m
        
  3. 次のコマンドを使用して、ApigeeDatastore リソースが実行中の状態であることを確認します。
    kubectl get apigeeds -n APIGEE_NAMESPACE

    出力は次の例のようになります。

    NAME      STATE     AGE
    default   running   16m
        
  4. 次のコマンドを使用して、すべての Cassandra PVC のステータスが Bound であることを確認します。
    kubectl get pvc -n APIGEE_NAMESPACE -l app=apigee-cassandra

    出力は次の例のようになります。

    NAME                                        STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    cassandra-data-apigee-cassandra-default-0   Bound    pvc-a14184e7-8745-4b30-8069-9d50642efe04   10Gi       RWO            standard-rwo   17m
    cassandra-data-apigee-cassandra-default-1   Bound    pvc-ed129dcb-4706-4bad-a692-ac7c78bad64d   10Gi       RWO            standard-rwo   15m
    cassandra-data-apigee-cassandra-default-2   Bound    pvc-faed0ad1-9019-4def-adcd-05e7e8bb8279   10Gi       RWO            standard-rwo   13m
        
  5. 次のコマンドを使用して、すべての Cassandra PV のステータスが Bound であることを確認します。
    kubectl get pv -n APIGEE_NAMESPACE

    出力は次の例のようになります。

    NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                                              STORAGECLASS   REASON   AGE
    pvc-a14184e7-8745-4b30-8069-9d50642efe04   10Gi       RWO            Delete           Bound    apigee/cassandra-data-apigee-cassandra-default-0   standard-rwo            17m
    pvc-ed129dcb-4706-4bad-a692-ac7c78bad64d   10Gi       RWO            Delete           Bound    apigee/cassandra-data-apigee-cassandra-default-1   standard-rwo            16m
    pvc-faed0ad1-9019-4def-adcd-05e7e8bb8279   10Gi       RWO            Delete           Bound    apigee/cassandra-data-apigee-cassandra-default-2   standard-rwo            14m
        
  6. 次のコマンドを使用して、Apigee コントローラ リソースのステータスが実行中であることを確認します。
    kubectl get pods -n APIGEE_NAMESPACE-system -l app=apigee-controller

    出力は次の例のようになります。

    NAME                                         READY   STATUS    RESTARTS   AGE
    apigee-controller-manager-856d9bb7cb-cfvd7   2/2     Running   0          20m
        

復元方法

Cassandra の復元手順は、Apigee ハイブリッドが単一リージョンにデプロイされているか、複数のリージョンにデプロイされているかによって若干異なります。復元手順の詳細については、次のドキュメントをご覧ください。