Apigee ハイブリッドのバックアップと復元機能を使用すると、ハイブリッド データのバックアップを作成できます。また、障害が発生した場合は、以前の作業スナップショットにデータを復元できます。バックアップの可用性と保持は、ユーザーが指定するバックアップ インフラストラクチャに基づきます。
Apigee ハイブリッドの一般的なインストールは、次のコンポーネントで構成されています。
- MART(管理サービス)
- コントローラと Watcher(Kubernetes オブジェクトを管理)
- Istio(Ingress を管理)
- ランタイム、同期、UDCA(環境ごとに 1 つ)
- テレメトリー(モニタリングとロギング)
- 証明書マネージャー(証明書を管理)
- データストア(Cassandra データベースと Redis データベース)
Cassandra を除くすべてのコンポーネントはステートレスであり、データは保持されません。これらのコンポーネントには、バックアップと復元は必要ありません。復元中は、既存のオーバーライドを使用してこれらのコンポーネントを再インストールするだけで十分です。
Cassandra のバックアップを取る理由
バックアップは、障害シナリオから保護するための重要な手段です。各バックアップは、バックアップ作成時点に存在する Cassandra データの整合性スナップショットとして機能します。このスナップショットには、Cassandra データに加えて、Cassandra クラスタ内のスキーマとメタデータが含まれています。障害が発生した場合は、バックアップを使用してハイブリッド インスタンスを以前の運用状態に復元できます。ハイブリッド インスタンスのサイズに応じて、1 つのバックアップ セットに 1 つ以上のバックアップ ファイルが含まれます。
Cassandra のバックアップについて知っておくべきこと
Cassandra はレプリケートされるデータベースであり、各リージョンまたはデータセンターに 3 つ以上のデータのコピーが存在するように構成されています。Cassandra はストリーミング レプリケーションと読み取り修復を使用して、各リージョンまたはデータセンターに任意の時点のデータレプリカを保持します。
ハイブリッドでは、Cassandra のバックアップはデフォルトで無効になっています。致命的な障害でデータが失われた場合に備えて、Cassandra のバックアップを有効にしておくことをおすすめします。Cassandra のバックアップは障害復旧の場合に使用するためのものであり、誤って削除したことによるデータ損失を復元するためのものではありません。
バックアップは、overrides.yaml
ファイルに設定されているスケジュールに従って作成されます。バックアップ スケジュールをハイブリッド クラスタに適用すると、そのスケジュールに従って Kubernetes バックアップ ジョブが実行されます。このジョブはハイブリッド クラスタ内の各 Cassandra ノードでバックアップ スクリプトをトリガーし、ノード上のすべてのデータを収集し、データのアーカイブ ファイルを作成して Cloud Storage またはリモート サーバー上のディレクトリに送信します。
バックアップの対象
ハイブリッドのスケジュール バックアップでは、バックアップ時に Apigee の Cassandra に保存されている永続的なランタイム データの完全なバックアップを取ります。バックアップ時刻より後のデータ変更は、バックアップでは復元できません。スケジュール バックアップは、次のエンティティで構成されます。
- ユーザー スキーマを含む Cassandra スキーマ(Apigee キースペースの定義)
- クラスタ内の Cassandra ノードあたりの Cassandra パーティション トークン情報。
- Cassandra データのスナップショット。
バックアップ データの保存場所
バックアップ データの保存場所は、バックアップ方法によって異なります。Apigee ハイブリッドでは、次のバックアップ方法がサポートされています。
- Cloud Storage へのバックアップ: Google Cloud プロジェクト内の構成済みの Cloud Storage バケットにバックアップが保存されます。
- リモート サーバーへのバックアップ: ユーザーが指定したリモート サーバー上のディレクトリにバックアップが保存されます。
データの保護方法
バックアップに Cloud Storage を使用する場合、バックアップ データはデフォルトで暗号化されます。Cloud Storage にバックアップしない場合、バックアップ データはリモート サーバーへの転送中に暗号化されます。ただし、転送後に、バックアップ データがリモート サーバーで暗号化されていることを確認する必要があります。
バックアップを取る方法
バックアップは cron
ジョブとしてスケジュールする必要があります。cron ジョブは、ユーザーが構成した overrides.yaml
ファイルから構成を読み取ります。Apigee では、復元プロセス中に再利用できるように overrides.yaml
ファイルのコピーを作成することをおすすめします。
以降のセクションでは、Cloud Storage とリモート サーバーへのバックアップのスケジュールを設定する方法について詳しく説明します。