ソリューションの選択肢
Elasticsearch (ES) は、以下のリモートディザスタリカバリソリューションを提供しています。
OSS スナップショットのバックアップと復元:インデックスデータを Object Storage Service (OSS) にバックアップして永続ストレージに保存します。最初のスナップショットは完全バックアップで、それ以降のスナップショットは増分バックアップです。クラスター間 OSS リポジトリを使用して、スナップショットデータをターゲット ES インスタンスに復元できます。詳細については、「クラスター間 OSS リポジトリを使用したデータのバックアップと復元」をご参照ください。
Logstash:パイプラインを設定してソースクラスターからデータを読み取り、処理してからターゲットクラスターに書き込むことができます。この方法は、メジャーバージョン間でデータを移行する場合や、データのフィルタリングと変換が必要な場合に最適です。詳細については、「クイックスタート」をご参照ください。
Reindex:ES の組み込み Reindex API を使用すると、あるインデックスから別のインデックスへ、クラスター間を含めて、データのすべてまたは一部をコピーできます。これは、小規模なデータセットの 1 回限りの移行に最適です。詳細については、「Reindex API を使用したデータ移行」をご参照ください。
Cross-Cluster Replication (CCR):CCR は、書き込み可能なインデックスをリーダークラスターから 1 つ以上のフォロワークラスターへ、非同期かつ増分的に自動でレプリケートします。ほぼリアルタイムの同期をサポートしており、厳しい RPO と RTO の要件があるディザスタリカバリシナリオに適しています。詳細については、「CCR を使用したクラスター間のデータレプリケーション」をご参照ください。
ソリューションの比較
ソリューション | ユースケース | RPO | RTO | 制限事項 |
OSS スナップショット | 大規模データ (ギガバイトからペタバイト) の定期的なバックアップと復元。 | 数時間から数日(スナップショット間隔に依存)。 | 数時間(データ量とシャードの復旧時間に依存)。 | 継続的な同期はサポートしていません。復旧中にサービスを停止する必要がある場合があります。 |
Logstash | リアルタイム要件が低いデータ移行、フィルタリングと変換が必要なデータ、またはメジャーバージョン間の移行。 | 数秒から数分(同期の頻度に依存)。 | 数時間(データ量とインスタンスのパフォーマンスに依存)。 | バッチ同期のみで、リアルタイムではありません。削除操作の同期はサポートしていません。 |
Reindex | 小規模データセットの 1 回限りのインデックス移行。 | 適用外(1 回限りの操作)。 | 数分から数時間(データ量に依存)。 | 継続的な同期はサポートしていません。大規模なデータ移行には非効率です。 |
CCR | リモートディザスタリカバリ、読み書き分離、地理的に近い場所からのアクセス。 | ほぼゼロ(秒単位)。 | 数秒から数分。 | フォロワーインデックスは読み取り専用です。マッピングとシャード数が同一である必要があります。 |
厳しい RPO とリアルタイム要件が求められるリモートディザスタリカバリシナリオでは、以下の理由から CCR が最適な選択肢です。
CCR は数秒以内にデータを同期するため、データ損失を最小限に抑えることができます。
リーダークラスターに障害が発生した場合でも、スナップショットの復元による遅延なしにフォロワークラスターにフェイルオーバーしてサービスを復旧できます。
初期デプロイコストは高くなりますが、CCR はデータ損失によるビジネス上の損失を防ぐことで、長期的にはよりコスト効率が高くなります。