首页 > 解决方案 > 如何在 AWS 中将持久存储用于弹性搜索?

问题描述

我正在将我的容器部署到运行 elasticsearch 的 AWS EKS。我需要使用存储服务来存储所有数据。我搜索了几篇文章,有人提到了 EBS。这是一个很好的数据源存储elasticsearch吗?有没有更好的解决方案?

我知道 AWS 提供托管elasticsearch解决方案,但我不想坚持使用 AWS。通过使用 EKS,我以后可以轻松迁移到其他云。

标签: amazon-web-serviceselasticsearchamazon-eks

解决方案


AWS 提供了一个名为Amazon Elasticsearch Service的托管 Elasticsearch 服务,它基于OpenDistro Elasticsearch。这意味着您与 AWS 无关。AWS 只是代表您管理集群。但因为它是 AWS 托管服务,所以它支持Amazon CloudWatchAmazon S3等附加服务。如果您使用 Amazon Elasticsearch 服务,您可以将数据存储在 S3 上。请参阅博文“使用 Amazon S3 存储单个 Amazon Elasticsearch Service 索引”Amazon Elasticsearch 服务通过将数据从EBS移动到 S3,提供了一种新的经济高效的方式来存储大量只读数据。这项新服务被称为 Ultrawarm。更多信息在这里

回答你的问题。

你想存储什么?因为有几个选择。但正如您提到的 EBS(亚马逊弹性块存储)。我假设您想要存储 Elastic Search 数据。在这种情况下,我建议您查看 Amazon Elastic File System (EFS)。

EBS 是绑定到 EC2 实例的块存储。在您的情况下,EC2 实例作为 EKS 节点运行。通常 EBS 只绑定一个 EC2 实例。虽然它也支持使用 Amazon EBS 多重连接的多个EC2 实例。但可以将 EBS 视为硬盘。

另一方面,EFS 是可扩展的网络存储,可以链接到多个容器(EKSECSFargate)、EC2 实例Lambda函数。

以下博客文章介绍了新功能 -适用于 Amazon EKS 的 AWS Fargate 现在支持 EFS。总之,AWS 发布了一个名为 Amazon EFS CSI 驱动程序的驱动程序。文档在这里。您可以使用此驱动程序在容器中挂载和 EFS 卷。因为它是网络存储,所以您可以与其他实例共享该卷。

EKS 研讨会有一节介绍如何将 EFS 链接到 EKS。您可以在此处关注研讨会。

或者,请访问“如何在 Amazon EKS 中使用持久存储”的支持响应


推荐阅读