IBM Cloudant の災害復旧とバックアップ
データは重要であり貴重です。 お客様はデータを保護して、 データの安全性、可用性、 および保全性の維持の 確保に役立てたいと考えます。 IBM® Cloudant® for IBM Cloud® には、お客様のデータを保護し、アプリケーションを稼働させ続けるうえで役立ついくつかの方法が用意されています。
これらの保護機能のいくつかは自動機能です。 その他の保護形式の場合は、 IBM Cloudant には、独自の高可用性および災害復旧機能を作成するのに役立つサポート対象ツールが用意されています。
IBM Cloud® サービスでは、災害発生時に数時間以内に Cloud のサービスを回復するための事業継続計画が規定されています。 お客様は、データのバックアップ、およびそれに関連したコンテンツのリカバリーを行う必要があります。
本書では、IBM Cloudant で提供されている自動機能とサポート対象ツールの概要を提供します。
保護のタイプとレベル
必要な保護のタイプは、解決しようとしている問題によって決まります。
例えば、システム内の限られた量のハードウェアで障害が発生してもデータにアクセスできるように、ハイレベルのデータ可用性を持ちたい場合があります。 この要件は、「高可用性」 (HA) に必要です。 つまり、ハードウェア障害の発生後、考えられる最良の継続的データ可用性を提供することです。 HA の手法が異なれば、操作に影響が及ぶことなく許容できる障害のレベルも異なります。
データのバックアップとリストアを素早く簡単に行いたい場合があります。 例えば、重大または広範囲に及ぶハードウェア障害の後には、できるだけ迅速に代替システムですべてのデータを使用可能にしたいと考えます。 この要件は、「災害復旧」 (DR) に必要です。 災害とは一般的に、データベースが 1 つ以上の場所でもはや使用できないことを意味します。 例えば、電源異常により、データベース・クラスター内の全システムで障害が発生する場合があります。 あるいは、大規模なネットワーク障害が発生して、クラスター内のシステムは正常に機能し続けているのに、システムに接続できないこともあります。
HA 要件または DR 要件の対処は、多くの場合、もっと一般的な要件に問題を単純化することから開始します。 要件を特定したら、一般的なニーズの解決に役立つツールと機能を適用することができます。 これらのツールと機能で、お客様の HA または DR の要件に対応できます。
ツールおよび機能が異なれば、提供される保護のレベルも異なります。 さまざまな機能は、ユーザーの特定の HA 要件または DR 要件に多かれ少なかれ適している可能性があります。
IBM Cloudant には、以下のように一般的な要件に対処する数多くのツールおよび機能が用意されています。
- 単一リージョン内でのデータの冗長性。リージョン内自動データ冗長性とも呼ばれます。
- クロスリージョンのデータの冗長性およびフェイルオーバー。災害復旧のためのクロスリージョン冗長性とも呼ばれます。
- 「従来の」 データベースのバックアップとリカバリーを使用するポイント・イン・タイム・リストアのためのポイント・イン・タイム・バックアップ。
リージョン内自動データ冗長性
単一の IBM Cloudant アカウント内で、データは内部プロセスと自動プロセスを使用して三重に保管されます。 ユーザーは、この内部データ複製を使用可能にするために何もする必要はありません。
リージョン内データ冗長性は、高可用性保護を有効にします。 具体的には、リージョン内データ冗長性は、リージョン内でのハードウェア障害に対するデータの保護を提供します。 リージョン内のハードウェア装置で障害が発生すると、その装置に保管されているデータのコピーだけが使用不可になります。 IBM Cloudant が、リージョン内の他のハードウェア装置でまだ使用可能なデータのコピーに要求を自動的に経路指定するため、アプリケーションは使用可能なままになります。 その一方で、システムの自動モニタリングがハードウェア装置の障害を検出し、完全冗長性のアクションおよびその後の修復を要求します。
IBM Cloudant アカウントは単一のリージョン内に配置されます。 つまり、アカウント内に保管するデータは別個の複数サーバーにまたがって保管され、各サーバーはその単一リージョン内でホストされます。
リージョン内の自動データ冗長性は、以下の機能に限定されます。
- 単一リージョン内のみで保護を提供する。
- 現行データを維持する。
アカウントに関連付けられている単一リージョンを超えて保護を提供するには、 災害復旧のためのクロスリージョン冗長性を使用します。 データの「履歴」を保護するには、 データベースのバックアップとリカバリーのツールによって作成されるデータ・スナップショットを使用します。 例えば、アプリケーションがデータに対して行った変更の監査を有効にすることができます。
リージョン内データ冗長性は、リージョン内の単一システムに影響を与える障害に対する許容度を提供する高可用性機能を使用可能にします。
災害復旧のためのクロスリージョン冗長性
IBM Cloudant の複製機能は、柔軟な災害復旧機能をアプリケーションに組み込むのに役立ちます。 災害復旧を使用可能にするための主な方法は、IBM Cloudant 複製を使用して、複数のリージョンにわたる冗長性を作成するというものです。 この結果として、アプリケーションは、1 つ以上のリージョンが使用不可になるというシチュエーションを容認することができます。
クロスリージョン冗長性を作成するための基本ステップは、以下のリストに含まれています。
- 2 つ以上のリージョンに IBM Cloudant アカウントを作成する。
- 必要に応じて各リージョンにデータベースを作成する。
- クロスリージョン冗長性を使用して保管する必要があるデータベースについては、各アカウント内の対応するデータベース間の継続的双方向複製をセットアップする。
- ユーザーの環境が「アクティブ - パッシブ」構成か、または「アクティブ - アクティブ」構成かに応じてデータが経路指定されるように、アプリケーションを設計および実装する。 クロスリージョン冗長性のセットアップについて詳しくは、 クロスリージョン災害復旧のための IBM Cloudant の構成を参照してください。
複数のリージョンにわたるデータを処理するようアプリケーションを設計する場合は、以下の点を考慮してください。
- アプリケーションは、それらの物理的位置に最も近い場所でホストされているデータベースに要求を送信することができます。 この隣接性の使用により、ネットワーク待ち時間を削減し、応答時間を改善できます。 この構成は、「アクティブ - アクティブ」方式と呼ばれます。 「アクティブ - アクティブ」方式には、データの複数のコピーを同時に使用するという特徴があります。 「アクティブ - アクティブ」構成内で機能するアプリケーションは、複数のデータ・コピーに関する問題を回避するために、 競合を処理するための戦略を持つ必要があります。
- デフォルトで、アプリケーションは単一リージョンからデータを要求できます。 そのリージョンが使用可能でない場合、 アプリケーションは別のリージョンからデータを要求するよう切り替えることができます。 この構成は、「アクティブ - パッシブ」方式と呼ばれます。 「アクティブ - パッシブ」方式には、一度に片方のデータ・セットだけをアクティブに使用するという特徴があります。
- アプリケーションはハイブリッド構成を使用する場合があります。ハイブリッド構成では、すべてのデータ書き込み要求には単一のアカウントが使用され、他の場所は読み取り専用の要求のみに使用されます。 この構成は、読み取りについて「アクティブ - アクティブ」と見なされます。
- 災害シナリオでは、まだ接続されているリージョン内でホストされているアカウントにアクセスするために、アプリケーションはデータ要求を再経路指定する必要があります。 この要件は、アプリケーションがリージョンの消失を検出し、次にデータ要求を再経路指定する必要があることを意味します。
要約すると、クロスリージョン冗長性は、高可用性機能に似ていますが、リージョン全体に影響を与える障害に適用されます。 クロスリージョン冗長性の構成で正常に機能するようにアプリケーションを構成することで、災害復旧を実現する真の能力を備えることができます。 そのため、あるリージョンのデータが一定期間使用できなくても、アプリケーションは機能し続けることができます。 IBM Cloudant 複製は、リージョン間のデータ同期化を確保するために役立ちます。 アプリケーションは、他のリージョンに保管されているデータ・コピーに「フェイルオーバー」する必要があります。
データベースのバックアップとリカバリー
リージョン内自動データ冗長性は、データへの高可用性アクセスをアプリケーションに提供します。 災害復旧のためにクロスリージョン冗長性は、災害からの復旧手段をアプリケーションに提供します。 しかし、これらの機能は両方とも、データの 現行コピーのみへのアクセスの維持に焦点を当てています。
人間およびアプリケーションは、間違いをすることがあり、意図しない方法でデータを変更してしまう可能性があります。 アプリケーション自体は何らかの保護を実装できますが、時折、望ましくない変更が行われてしまうことがあります。 前のポイント・イン・タイムからデータを復元できると有用です。 データベースのバックアップは、この要件をサポートします。
高可用性機能と災害復旧機能によってデータを保護することに加え、一定間隔で周期的にデータベース・データを別の場所にダンプすることを検討してください。 バックアップが完全であり正常であるということの信頼性のために、必ずバックアップを検査およびテストするようにしてください。
IBM Cloudant は、データベース内の JSON 内容をファイルにダンプし、後でそれらのファイルからデータベースを リストアするのに役立つツールをサポートしています。
具体的には、 IBM Cloudant は、以下のタスクの実行に役立つツールをサポートしています。
- 完全なデータベースを、さらなる処理および オフサイト・ストレージに適したファイルにバックアップする。
- バックアップ・ファイルに含まれている前の状態から完全なデータベースをリストアする。
IBM Cloudant でサポートされているツールには以下の制限があります。
_security
の設定は、ツールによってバックアップされません。- 添付ファイルは、ツールによってバックアップされません。
- バックアップは、正確な「ポイント・イン・タイム」のスナップショットではありません。 これは、データベース内の文書がバッチで取得され、同じときに他のアプリケーションが文書を更新している可能性があるためです。 したがって、データベース内のデータは、最初のバッチが読み取られたときと最後のバッチが読み取られたときで異なる可能性があります。
- 索引定義が保持する設計文書はバックアップされるが、データがリストアされる時、索引は再作成しなければならない。 リストアされるデータの量に応じて、この再作成にはかなりの時間がかかる可能性があります。
データ保護戦略の次のステップ
基本的な IBM Cloudant 機能およびサポート対象ツールで構築されるアプリケーションを開発して、もっと複雑なデータ保護戦略を可能にすることができます。 シナリオの例を以下のリストに示します。
- 前の状態から単一文書をリストアする。
- 以前の文書状態を複数保管して、古いバックアップからのリストアを可能にする。
- 保存のコスト効率を上げるために、古いデータを安価なストレージにマイグレーションする。
バックアップ・ツールは、オープン・ソースの node.js コマンド・ライン・アプリケーションとライブラリーで構成されています。 これは NPMで使用可能です。
データ保護戦略へのツールの組み込み方法を示すアイデアと例については、 IBM Cloudantバックアップおよびリカバリー・ガイドを参照してください。