如何在Elastic cloud上选择合适的Elasticsearch service
文章目录
- Elastic cloud简介
- Elasticsearch service配置选择
- 服务提供商
- 数据中心
- 集群配置
- 选择服务的例子(Hot-Warm Architecture)
- 总结
Elastic cloud简介
Elastic Cloud是Elastic不断增长的SaaS产品系列,它使我们能够轻松地在云中部署、操作和扩展elastic的产品和解决方案。从易于使用的托管和管理的Elasticsearch体验到功能强大的开箱即用搜索解决方案,Elastic Cloud是您无缝地将Elastic应用于您的工作的跳板。
目前,Elastic Cloud主要提供以下三种服务:
- Elasticsearch service
- Elastic App Search Service
- Elastic Site Search Service
这篇文章主要介绍的是Elasticsearch service
Elasticsearch service配置选择
服务提供商
在Elastic cloud上选择Elasticsearch service,主要是使用官网上的报价页面进行查询。
目前,Elastic cloud已经在各大云厂商上提供了Elasticsearch service服务 。包括:
- AWS
- GCP
- Azure
(阿里云和腾讯云目前是自己提供Elasticsearch service服务,但阿里云和腾讯云也是elastic的合作伙伴,提供的也是完全版的Elasticsearch service服务)
选择哪个基础服务提供商其实没什么好说的,你的数据在哪就选哪个,其他都差不多。
数据中心
AWS:
GCP:
Azure:
也没什么好说的,你的数据在哪就选哪个,但很明显,AWS的数据中心最多。如果你还在考虑应用部署在哪,同时又打算使用Elasticsearch service,考虑数据中心多的。
集群配置
Elastic cloud根据不同的使用场景,提供了不同的集群配置选择方案:
- I/O Optimized,I/O优化型。适用于大多数场景,是一个平衡考虑了计算,内存和存储的集群配置组合。当数据量不大,不是特殊用途的Elastic场景,建议使用该配置
- Compute Optimized,计算优化型。举个例子,ES+Hbase的架构。当你使用ES来索引大量文档和提供全文检索,而不存储,而使用Hbase作为数据存储的时候,你可以使用这个配置
- Memory Optimized,内存优化型。平时的使用场景中,常用ES去分析数据,聚合运算的推荐使用。
- Hot-Warm Architecture,冷热部署的架构。适用于时序型数据的场景,比如日志,交易记录等,数据会因为新旧而有使用频率的区别。
- Cross Cluster Search,跨集群查询的集群。不存储任何数据,只是作为一个Gateway的集群。
选择服务的例子(Hot-Warm Architecture)
假设你现在有4个T的交易数据准备放到ES当中,由ES提供查询和全文检索的服务。你需要考虑以下几件事情:
- 你的数据在哪?比如说,你的应用服务器都部署在AWS上,数据由应用产生,那么,你应该选择以AWS作为Elastic cloud elasticsearch service的平台
- 你的用户在哪?如果你的用户主要集中在中国,你可以选择新加坡或者东京的数据中心
- 数据的冷热结构。需要搞清楚,用户在查询或者检索数据的时候,最常检索的是哪部分数据,一般来说,最近的数据查询和检索的频率最高,越旧的数据被查询和检索的可能性越低。如果能够对客户的query数据进行一个采样,则可以进一步制定合理的数据存储策略:
- 正在被写入和查询频率最高的数据,使用最好I/O性能的存储,比如SSD
- 区分读写和只读的索引,对于不会再被更新的索引设为只读,并且可以放到成本更低的机械硬盘存储
- 对于访问频率最低的索引,冷冻之(freeze),甚至考虑close
- 并发的量有多大。因为索引的replica可以动态调整,可以先用1副本的方式进行压测,如果调优无果,再考虑增加副本来应对并发。
- 数据容灾的需求。是否需要跨数据中的备份
以4个T的交易数据为例,选择了AWS的平台和法兰克福的region。因为交易数据是时序性数据,天然适合Hot-Warm架构,选择了Hot-Warm Architecture
可以看到该架构下,数据节点分为高I/O节点和高存储节点两种:
- 高I/O节点下,4G内存/120G的存储 (亚马逊i3:Amazon EC2 I3 实例具备基于非易失性存储器标准 (NVMe) SSD 的实例存储,经过优化可实现低延迟、极高的随机 I/O 性能、高速连续读取吞吐量,并能以较低的成本提供高 IOPS。I3 实例可提供高达 25Gbps 的网络带宽和高达 14Gbps 的专用 Amazon Elastic Block Store (Amazon EBS) 带宽。)
- 高存储节点下,4G内存/400G的存储 (亚马逊d2:D2 实例拥有高达 48TB 的 HDD 本地存储,具备高磁盘吞吐量,并在 Amazon EC2 上提供了最低的磁盘吞吐量性能单位价格。)
master和machine learning可选,默认不选;APM可以Disable。
4个T的交易数据,假设是1年的时间,在没有用户采样的情况下,可以先做以下假设:
- 假如交易均匀,则每天大概11.2G的数据,考虑倒排索引和存储效率,假设11.2G的RMDB数据存储到ES中有大概15G,在考虑1副本的情况下,一天的数据大概在30G;
- 一周内的数据查询频率最高,使用SSD,则30 * 7 = 210G,则高I/O节点的需求为: 210G / 120G = 2。即: 8G内存/240G
- 剩余的数据都存储在HDD本地存储上,则 30 * 358 = 10740G,则高存储节点的需求为 10740G/400G = 27。即:108G内存/10800G
- 不做跨数据中的备份
- 不使用APM
则选择的配置为:
每小时~7美元,61320刀/年
TIPS: 实际上,Enable APM 之后,报价没有发生变化,所以建议是不要Disable APM
总结
Elastic cloud的Elasticsearch service提供了自动托管和完整的X-pack功能,对于商用业务和ES服务的整合是一个完美的选择。但在控制成本的前提下,建议先使用最小满足配置,使用动态扩容的弹性,配合Elastic stack本身完备的日志分析和监控功能,监控ES服务本身的吞吐和性能,在发现跟不上需求时再去做合理的扩容。
如何在Elastic cloud上选择合适的Elasticsearch service相关推荐
- 【Elasticsearch】在 Elastic Cloud 上的 Elasticsearch 服务中,如何针对日志和指标用例确定热温架构的规模
1.概述 转载:在 Elastic Cloud 上的 Elasticsearch 服务中,如何针对日志和指标用例确定热温架构的规模 主要是需要翻墙,比较麻烦. 希望深入了解 Amazon Elasti ...
- 如何在 TiDB Cloud 上使用 Databricks 进行数据分析 | TiDB Cloud 使用指南
作者丨吴强(PingCAP TiDB Cloud 团队工程师) 编辑丨Calvin Weng.Tom Dewan [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nXps ...
- aws v2.2.exe_如何在AWS Elastic Beanstalk上部署Rails 5.2 PostgreSQL应用
aws v2.2.exe by Evrim Persembe 通过埃夫里姆·佩塞姆贝 如何在AWS Elastic Beanstalk上部署Rails 5.2 PostgreSQL应用 (How to ...
- 深度强化学习:如何在AI工程实践中选择合适的算法?
关注公众号,发现CV技术之美 在使用深度强化学习(Deep Reinforcement Learning,DRL)算法解决实际问题的过程中,明确任务需求并初步完成问题定义后,就可以为相关任务选择合适的 ...
- centos7 安装git_如何在 CentOS 7 上挂载 Amazon EFS 文件系统?
如何为数千个 Amazon EC2 实例提供大规模并行共享访问模式? 在本周,为大家做的分享是关于如何在 CentOS 7 上挂载 Amazon EFS 文件系统.Amazon EFS 可以让您的应用 ...
- centos7使用基础教程_如何在CentOS 7上使用Metricbeat收集基础结构指标
centos7使用基础教程 The author selected the Computer History Museum to receive a donation as part of the W ...
- linux kvm百度云,如何在 Ubuntu Linux 上使用 KVM 云镜像
如何下载并使用运行在 Ubuntu Linux 服务器上的 KVM 云镜像?如何在 Ubuntu Linux 16.04 LTS 服务器上无需完整安装即可创建虚拟机?如何在 Ubuntu Linux ...
- 如何在Android手机上进行Google Map的开发。
1.题记 提起谷歌Map相信大家都不会陌生,那进入我们今天的话题,如何在Android手机上进行Google Map的开发. 2.Map应用程序的开发 2.1 准备工作 2.1.1 申请Android ...
- 如何在ORACLE CLOUD中创建和访问容器集群丨内附官方文档链接
墨墨导读:本文描述如何在Oracle Cloud中创建并访问容器服务.为了简单,所有的操作都是针对root隔离区. 创建允许容器运行的政策官方文档链接 这一步是必须的,否则可以增加容器容器. 官方文档 ...
- jax-rs/jersey_在Oracle Cloud上的Prime-UI,JAX-RS和Jersey和Gson
jax-rs/jersey 如今,Oracle云无处不在. 最初,拉里(Larry)否认在很长一段时间内都需要云,并且在去年的开放世界(Open World)之后就发布了一些非常早的公告,而且可用性很 ...
最新文章
- ByteBuffer支持类型化的put和get。
- iOS音频播放(一):概述
- 消息中间件系列(七):如何从0到1设计一个消息队列中间件
- 学习 | 雷军 1994 年写的代码,不服不行
- c语言socket面试题,【C++工程师面试宝典】学习说明_互联网校招面试真题面经汇总_牛客网...
- 小鹏汽车首款量产车开售:搭载自动驾驶应用,补贴前售价20万起
- ccf会议等级划分_Python计算山东新高考选考科目卷面原始成绩为等级成绩
- cesium版本之间如何兼容_【JS】cesium与three.js 结合的栗子,结合了一下网友们的栗子,解决了three.js 高版本模型出不来的问题...
- keepalived基本应用解析
- EXCEL数据比对常用函数
- 创建Oracle定时任务及其各项操作
- 如何无损把mp4视频格式转换成mp3音频格式
- keil编译出现多重定义的问题
- Unity3D 太空射击游戏学习笔记
- ONLYOFFICE权限开发之二
- 关于图计算图学习的基础知识概览:前置知识点学习(PGL)[系列一]
- Python新手基础入门教程:如何像面试官展示你的coding能力
- 输入一个字符串,判断其是否为回文串。
- LED驱动器满足功率、空间和成本挑战
- 弘辽科技:拼多多店铺可以改名字吗?店铺名字怎么取?
热门文章
- nat123内网穿透
- Kali Linux渗透测试——WEB渗透(二)
- 基于jsp,javaweb的毕业设计管理系统
- 基于SSM框架的毕业设计管理系统的设计与实现(附资源下载)
- charts漏斗图表_用echarts写的转换率图表(漏斗图 + 象形柱图)
- python turtle库下载_python3中安装turtle库
- LODOP打印控件简单示例
- Python衍射初步
- linux spyder 安装,Python开发环境Spyder安装方法(示例代码)
- c语言love字符怎么打,怎样利用几行简单的c语言代码表白?