跳转至

从自建 Elasticsearch 迁移到 Amazon OpenSearch Service 实践(一):数据迁移与同步

Ch11.284 从自建 Elasticsearch 迁移到 Amazon OpenSearch Service 实践(一):数据迁移与同步

📊 Level ⭐⭐ | 3.8KB | entities/elasticsearch-migration-amazon-opensearch-service-1.md

从自建 Elasticsearch 迁移到 Amazon OpenSearch Service 实践(一):数据迁移与同步

Background:本文基于 AWS China Blog 发布的 POC 实践总结,完整介绍从自建 Elasticsearch 8.17 迁移到 Amazon OpenSearch Service 的数据迁移方案选型、全量与增量同步策略,以及数据一致性验证。

背景与迁移目标

自建 Elasticsearch 集群面临版本升级困难、跨云迁移复杂、向量搜索能力受限等挑战。典型案例场景:云上使用 ES 8.17 承载核心搜索业务,数据规模约 1TB,包含 k-NN 向量搜索(1024 维 Embedding),目标是将搜索服务迁移到 Amazon OpenSearch Service,同时将 Embedding 模型切换到 Amazon Bedrock Titan Text Embeddings V2。

迁移面临三个核心挑战:数据同步(ES 8.x snapshot 不能通过 OpenSearch 原生 API 直接恢复)、查询兼容性(k-NN 向量搜索查询语法存在结构性差异)、Embedding 模型切换(向量空间不同,需分阶段切换)。

迁移方案选型

针对 ES 8.x 到 AOS 的数据迁移,对比三种方案:

方案 适用场景 优势
Migration Assistant (RFS + Traffic Replayer) TB 级、零停机 高吞吐、支持流量回放、官方推荐
Logstash + opensearch output 中小数据量、增量同步 配置简单、灵活过滤
Reindex-from-Remote 小数据量、网络直连 无需额外组件

Migration Assistant for Amazon OpenSearch Service 是 AWS 官方推荐方案,核心组件 RFS 能够直接从 ES 8.x snapshot 解析 Lucene 文件提取文档并重新索引。官方测试:5 TiB 数据在 15 节点集群上约 35 分钟完成。

向量索引迁移

向量索引迁移需根据 Embedding 模型策略选择两条路线:

  • 路线 A:保留原 Embedding 模型 — 预建 knn_vector mapping,向量数据原样搬运
  • 路线 B:迁移时更换 Embedding 模型(如切换到 Bedrock Titan V2) — 普通索引照搬,向量索引全量重建

架构与验证

Migration Assistant 部署在 Amazon EKS 上,通过 Argo Workflows 编排迁移流程。核心组件:Capture Proxy(流量捕获)、Kafka(流量缓存)、RFS Workers(全量回填)、Traffic Replayer(增量重放)。

零停机迁移验证结果:存量数据(500 条)与增量数据(1254 条)均在目标端完全对齐,源端服务全程无中断。1.2 TB 数据 RFS 导入约 73 分钟(replica=0)。

相关实体

原文存档