独自の ES クラスターをクラウドに移行するための完全なガイド

独自の ES クラスターをクラウドに移行するための完全なガイド

サービスをクラウドに移行する過程では、企業内で自社構築したミドルウェアなどのサービスの移行も必然的に必要になります。この記事では、自社構築の ES サービスをクラウドに移行するための移行ソリューションと、ビジネス シナリオに基づいて適切な移行ソリューションを選択する方法について説明します。

移行計画

1. OSSスナップショット

原則: OSS をトランジット ストレージ メディアとして使用し、elasticsearch-repository-oss プラグインを使用して 2 つのクラスターをリンクします。ソース クラスターはデータをバックアップし、ターゲット クラスターはデータを復元します (クラウド ベンダーの管理対象 ES クラスターは、デフォルトで oss プラグインとともにインストールされます)。スナップショットモードなので、データの一貫性が保証され、データの復旧速度が速くなります。

OSS 移行の原則

移行手順の詳細

ソースクラスター

  • OSS バケットを作成し、ak、sk などの情報を設定します
  • 自分で構築したクラスターに elasticsearch-repository-oss プラグインをインストールします。プラグインのバージョンがクラスターのバージョンと一致していることを確認します。
  • 移行する必要があるインデックスのスナップショットを作成し、作成したウェアハウスにスナップショットをバックアップします。

ターゲットクラスター

  • スナップショットAPIを使用して、自分で構築したElasticsearchクラスターと同じスナップショットバックアップウェアハウスを作成します。
  • ウェアハウス内のバックアップされたスナップショットをターゲットクラスタに復元して、データ移行を完了します。
  • スナップショットが復元されたら、復元されたインデックスとインデックスデータを表示します。

予防

  • このソリューションでは、元のクラスターに同期プラグインをインストールする必要があります。プラグインにはバージョン互換性に関する大きな問題があります。バージョンの互換性については、プラグインのドキュメントを参照してください。
  • 元のクラスターのバックアップは増分バックアップをサポートしており、比較的高速です。ターゲット クラスターは完全に復元されており、増分バックアップはサポートされていません。つまり、ターゲット クラスターが復元されるたびに、最初にインデックスが作成され、次にデータが復元されます (ターゲット クラスターに同じ名前のインデックスが存在することはできません。存在する場合、回復タスクは失敗します)。
  • OSS はプライマリ パーティションのデータをバックアップし、リカバリ プロセスでもプライマリ パーティションのデータがバックアップされます。レプリカ シャードのデータ復旧は、クラスターの内部復旧ロジックです。つまり、リカバリタスクが完了すると、コピーデータのリカバリ時間は含まれません。インデックスが書き込み一貫性を持つように構成されている場合は、正常に書き込みを行う前にレプリカが復元されるまで待機する必要があります。

2. ログスタッシュ

原則: Logstash は、両端で異なるデータ ソースを接続する単純なパイプラインです。その動作原理は、ソース データ (入力) を読み取り、それを処理 (フィルター) し、ターゲット エンド (出力) に送信することです。この機能を使用すると、2 つのクラスターを接続してデータを移行できます。

Logstashの仕組み

移行手順の詳細

  • logstashをインストールして展開する
  • logstash パイプラインを設定して実行します。コア構成は以下のとおりです
input { elasticsearch { hosts => ["http://<自建Elasticsearch Master节点的IP地址>:9200"] user => "elastic" index => "*,-.monitoring*,-.security*,-.kibana*" password => "your_password" docinfo => true schedule => "*/30 * * * *" #每30分钟同步一次} } filter { } output { elasticsearch { hosts => ["http:<云资源暴露的endpoint地址>//:9200"] user => "elastic" password => "your_password" index => "%{[@metadata][_index]}" document_type => "%{[@metadata][_type]}" document_id => "%{[@metadata][_id]}" } }

予防

Logstash はインデックスの削除操作を認識できません。つまり、元のクラスター内のドキュメント データが削除されても、ターゲット クラスターはそれに応じて削除されません。更新操作は同期をサポートします。

リアルタイム要件が低いシナリオに適しています。

ヒント:

  • ソース データ ID とターゲット データ ID の増分同期要件を確実に満たすには、logstash でスケジュール タスクを構成できます。
  • インデックス フィールドは正規表現と否定一致をサポートします。この機能を使用して、移行インデックスを制御できます。

3. elasticsearch-ダンプ

原理: これは比較的軽量なインデックス移行ツールです。基本的な原則は、入力と出力を定義し、元のクラスターからターゲット クラスターにクエリ データを書き込むことです。 logstash に似ていますが、データのフィルタリングはサポートされていません。

移行手順の詳細

elasticdump --input 元のクラスター es アドレス/インデックス --output ターゲット クラスター es アドレス/インデックス

# type:指定迁移的类型,支持mapping、、analyzer、data elasticdump \ --input=http://production.es.com:9200/my_index \ --output=http://staging.es.com:9200/my_index \ --type=data

予防

  • データ量が少なく、移行されたインデックスの数が少ないシナリオに適しています。対象クラスターインデックスが存在しない場合は、インデックス属性情報とアナライザー/マッピング/データなどのデータを移行する必要があります。
  • 増分移行はサポートされておらず、移行ごとにダウンタイムが必要になります。また、同期効率が低く、操作手順が煩雑です。

4. クラスター間のオンライン統合

原理自作クラスターとクラウド クラスターを 1 つの大規模クラスターに統合し、ES クラスターのシャード割り当てと移行機能を組み合わせることで、データ移行が完了します

オンラインコンバージェンス移行ソリューション

移行手順の詳細

  • Fusion : まず、Tencent Cloud ES コンソールで、自作 ES クラスターと同じサイズの空のクラスターを申請する必要があります。これは、上の図 2 のターゲット クラスターです。次に、クラウド上のすべてのクラスターを再起動し、独自に構築した ES クラスターに追加して、2 つのクラスターを 1 つの大きなクラスターに統合します。
  • 移行: 統合が完了したら、ES クラスターの cluster/settings の exclude 属性を設定してシャードを移行します。以下の API を実行すると、ES クラスターは、独自に構築したクラスター ノード上のシャードをクラウド上のノードに自動的に段階的に削除します。これにより、シャードの再配置とクラスター データの移行が完了します。
  • オフライン: 自作クラスター ノード上のすべてのシャードが移行された後、自作クラスター ノードはすべてシャットダウンされ、オフラインになり、クラスター全体のクラウドへの移行が完了します。以下の API を使用して、自作ノード上のシャード数が 0 かどうかを確認できます。

予防

  • クラウドベンダーがサポートしているかどうかによって制限されます(Tencent Cloud はサポートしていますが、Alibaba Cloud はサポートしていません)
  • 独自に構築した ES クラスターのバージョンは、ターゲット クラスターのバージョンより大きくすることはできません。主な理由は、クラウド上のバージョンが低いクラスター ノードを、バージョンが高い独自構築のクラスターに追加できないことです。また、バージョン番号については、2 つのクラスターのメジャー バージョン番号が一致していることが最適です。
  • 自作 ES クラスターのプラグインは、クラウド ES クラスターのプラグインと一致している必要があります。同じクラスターに統合されるため、プラグインの互換性を保証する必要があります。
  • 独自に構築された ES クラスターでは、セキュリティ認証を有効にできません。認証により統合が失敗する

5. 再インデックス

原則: reindex は ES によって提供される API インターフェイスであり、あるクラスターから別のクラスターにデータを移行できます。再インデックスの中核は、インデックス間およびクラスター間のデータ移行です。たとえば、インデックス シャードの 1 つが大きすぎる場合は、新しいインデックスを作成し、再インデックス API を使用してデータを移行できます。

移行手順の詳細

ターゲット クラスターは whilelist ホワイトリストを設定します。

 reindex.remote.whitelist: ["10.0.xx.xx:9200","10.15.xx.xx:9200","10.15.xx.xx:9200","10.15.xx.xx:9200"]

ターゲット クラスターは、再インデックス API を呼び出して移行タスクを構成します。

 POST _reindex { "source": { "remote": { "host": "http://xxx1:9200" }, "index": "test1" }, "dest": { "index": "test2" } }

予防

  • 再インデックスでは、ターゲット インデックスの設定は試行されません。ソースインデックスの設定はコピーされません。 _reindex 操作を実行する前に、マッピング、シャード数、レプリカなどの設定を含め、ターゲット インデックスを設定する必要があります。
  • ソースデータのボリュームは小さく、移行速度の要件は高くありません。

6. クラスタ間レプリケーション CCR

仕組み: クロスクラスターレプリケーション (CCR) 機能を使用すると、1 つの ElasticSearch クラスターから 1 つ以上の ElasticSearch クラスターに特定のインデックスを複製できます。 CCR には、データセンター間のレプリケーションに加えて、データのローカリゼーションや、Elasticsearch クラスターから中央レポート クラスターへのデータのレプリケーションなど、他の多くのユースケースがあります。

注: バージョン 6.7 以降でサポートされている CCR は、プラチナ機能 (有料機能) です。

移行プランを選択するには?

上記では、利用可能なクラスター間移行ソリューションを紹介しました。よく言及される他の 2 つの方法があります。数多くのソリューションが存在する中で、ビジネス シナリオに適した移行ソリューションをどのように選択すればよいのでしょうか?これは考える価値のある質問です。参考までに表をまとめました。

ESクラスタ業界で一般的に使用されている移行ソリューション

<<:  Kubernetes ストレージ: CSI プラグインの実装方法についての簡単な説明

>>:  Kubernetes ベースの Nacos 高可用性クラスターを実行する方法

推薦する

Ctrip.comはCtripの略称ドメイン名xc.comを取得するために数千万元を費やしたと報じられている。

ドメイン投資WeChat公式アカウントdomaincom最新ニュース:Ctrip.comは本日、2文...

Hivelocityはどうですか?ロサンゼルスデータセンターのクラウドサーバーの簡単なレビュー

Hivelocityはどうですか?ハイベロシティロサンゼルスはどうですか?世界的に有名なデータセンタ...

VPS格安セール:123systems-256mメモリVPS年間支払い4.5ドル

安価な VPS「Unspeakable」を購入したいですか?お金をかけたくない、安ければ安いほどいい...

ウェブサイトは降格されました。ウェブサイトの日記を保存

まず、スナップショットが 26 日にロールバックされました。他のすべてが正常だったので、あまり気にし...

仮想マシンよりも軽量で、DockerやWSLよりもシンプルなLinux環境

[[381793]]学生の中には、Windows または macOS システムを使用しているものの、...

テンセントクラウドとMongoDBは、世界中のユーザーにMongoDBをサービスとして提供するための戦略的提携を締結しました。

Tencent Cloud が、世界をリードする最新の汎用データベース プラットフォームである Mo...

ユビキタスギガビットが5G屋内の新トレンドをリード - ファーウェイの5G屋内分散型Massive MIMOが最優秀ソリューションケースを受賞

[中国、北京、2021年9月27日] 2021年中国国際情報通信博覧会において、ファーウェイの5G屋...

SEOではキーワードを分析する必要はなく、オーディエンスを分析するだけで十分です。

このタイトルは、多くのいわゆる SEOER を間違いなく冷笑させるでしょう。なぜでしょうか? 多くの...

検索エンジンの介入に文句を言うよりも、ウェブサイトを構築する方が良い

百度はグーグルより賢い百度が批判され、グーグルが賞賛される昨今の環境において、私はその流れに逆らって...

中国の電子商取引B2C市場には、新たな春を生み出すチャンスがまだあるのでしょうか?

中国電子商取引の現在のB2C市場構造について、福清ウェブサイト建設は、全体的な状況は基本的に決定され...

SEO ブログを使用して個人ブランドを構築できますか?

最近はSEOブログが非常に人気になってきており、Baiduで「city + SEO」を検索すると、最...

AIとクラウドコンピューティングの深い統合は何をもたらすのでしょうか?

「AIは多くのリソースを消費し、強力なコンピューティング能力を必要とし、規模の経済性を反映する技術だ...

中国青年報:なぜ代表チームはインターネットが苦手なのか

数億ドルをかけて3年間も運用されてきた国営検索エンジンですが、その市場シェアは1万分の1以下で、利用...

SEO最適化と安定したキーワードランキングに関する私の操作の詳細について話し合います

周知のとおり、ウェブサイト最適化中のウェブサイトキーワードの安定性は、SEO担当者にとって非常に重要...

中国工程院の院士、王恩東氏:今後10年間のクラウドコンピューティングの重要な課題は、実体経済を強化することだ。

先日開催された「第10回中国クラウドコンピューティング会議」で、中国工程院院士の王恩東氏が、過去10...