AWS - ElasticSearch服务入门
Amazon Elasticsearch Service (Amazon ES) 是一种托管服务,可以让您轻松在AWS云中部署、操作和扩展 Elasticsearch 集群。Elasticsearch 是一款流行的开源搜索和分析引擎,适用于日志分析、实时应用程序监控、点击流分析等使用案例。借助 Amazon ES,您可以直接访问 Elasticsearch API,让现有代码和应用程序与服务无缝协作。Amazon ES 为您的 Elasticsearch 集群预置所有资源并启动集群。它还自动检测和替换失败的 Elasticsearch 节点,减少与自管理基础设施相关的开销。您只需调用一次 API 或在控制台中单击几下就可扩展集群。
一.Amazon ES域入门
1.创建Amazon ES域
详细配置请参见文档创建和配置ElasticSearch
1.1 使用Console创建Amazon ES域
- 进入ElasticSearch服务并选择
Create Elasticsearch domain
- Step1: Choose deployment type 选择后点击Next
- Deployment type: Development and testing [根据情况选择即可]
- Version: 6.7 [选最新的即可]
- Step 2: Configure cluster 选择后点击Next
- Elasticsearch domain name:test-domain [编写自定义ElasticSearch域名即可]
- Instance type实例类型: 选择t2.small.elasticsearch用于测试即可
- Number of instances实例数:选择1 [根据情况选择]
- Dedicated master instances 用于提高域的稳定性,不必选择
- Storage存储[为数据节点选择存储类型。如果选择EBS存储类型,请将每个节点的EBS存储大小乘以群集中的数据节点数,以计算群集可用的总存储量。存储设置不适用于群集中的任何专用主节点]
- EBS volume type (EBS 卷类型):General Purpose (SSD) (通用型 (SSD))
- EBS volume size (EBS 卷大小):为每个数据节点键入外部存储的大小 (GiB),选择默认10
- Enable encryption at rest可以不选择加密
- Automated snapshot start hour(自动快照开始时间) 选择默认即可
- Step 3: Set up access设置访问权限
- 为简单起见,建议使用基于 IP 的访问策略。在Set up access (设置访问权限)页面上的Network configuration (网络配置)部分中,选择Public access (公有访问权限)。
- 目前可以忽略Kibana authentication(Kibana 身份验证)
- Set the domain access policy to (将域访问策略设置为),选择Allow access to the domain from specific IP(s) (允许从特定 IP 访问域),然后输入公有 IP 地址
- Step 4: Review 检查一下所有的配置,没问题点击Confirm
- 注意:初始化新域大约需要十分钟时间。初始化您的域后,您可以上传数据和更改域。
1.2 使用AWS CLI创建Amazon ES域
aws es create-elasticsearch-domain --domain-name movies --elasticsearch-version 6.0 --elasticsearch-cluster-config InstanceType=t2.small.elasticsearch,InstanceCount=1 --ebs-options EBSEnabled=true,VolumeType=standard,VolumeSize=10 --access-policies '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"*"},"Action":["es:*"],"Condition":{"IpAddress":{"aws:SourceIp":["your_ip_address"]}}}]}'
上述命令使用 Elasticsearch 版本 6.0 创建一个名为movies的域。它指定一个t2.small.elasticsearch实例类型的实例。此实例类型需要 EBS 存储,因此它指定了一个 10GiB 的卷。最后,此命令应用基于 IP 的访问策略来将对域的访问限制为单个 IP 地址。
并可以使用下述命令查询新域
aws es describe-elasticsearch-domain --domain movies
1.2 将数据上传到Amazon ES域以便编制索引
- 可以通过命令行使用 Elasticsearch 索引和批量处理 API 将数据上传到 Amazon Elasticsearch Service 域以便编制索引
- 使用索引 API 添加或更新单个 Elasticsearch 文档
- 使用批量 API 添加或更新同一 JSON 文件中所述的多个 Elasticsearch 文档
- 编制索引流程
- 上传单个文档到 Amazon ES 域【运行以下命令将单个文档添加到movies域】
curl -XPUT es_endpoint/domain_name/_doc/1 -d '{"director": "Burton, Tim", "genre": ["Comedy","Sci-Fi"], "year": 1996, "actor": ["Jack Nicholson","Pierce Brosnan","Sarah Jessica Parker"], "title": "Mars Attacks!"}' -H 'Content-Type: application/json'
- 上传包含多个文档的 JSON 文件到 Amazon ES 域
- 创建名为bulk_movies.json的文件。将以下内容复制并粘贴到其中,并添加一个尾部换行
{ "index" : { "_index": "domain_name", "_type" : "_doc", "_id" : "2" } } {"director": "Frankenheimer, John", "genre": ["Drama", "Mystery", "Thriller"], "year": 1962, "actor": ["Lansbury, Angela", "Sinatra, Frank", "Leigh, Janet", "Harvey, Laurence", "Silva, Henry", "Frees, Paul", "Gregory, James", "Bissell, Whit", "McGiver, John", "Parrish, Leslie", "Edwards, James", "Flowers, Bess", "Dhiegh, Khigh", "Payne, Julie", "Kleeb, Helen", "Gray, Joe", "Nalder, Reggie", "Stevens, Bert", "Masters, Michael", "Lowell, Tom"], "title": "The Manchurian Candidate"} { "index" : { "_index": "domain_name", "_type" : "_doc", "_id" : "3" } } {"director": "Baird, Stuart", "genre": ["Action", "Crime", "Thriller"], "year": 1998, "actor": ["Downey Jr., Robert", "Jones, Tommy Lee", "Snipes, Wesley", "Pantoliano, Joe", "Jacob, Irène", "Nelligan, Kate", "Roebuck, Daniel", "Malahide, Patrick", "Richardson, LaTanya", "Wood, Tom", "Kosik, Thomas", "Stellate, Nick", "Minkoff, Robert", "Brown, Spitfire", "Foster, Reese", "Spielbauer, Bruce", "Mukherji, Kevin", "Cray, Ed", "Fordham, David", "Jett, Charlie"], "title": "U.S. Marshals"} { "index" : { "_index": "domain_name", "_type" : "_doc", "_id" : "4" } } {"director": "Ray, Nicholas", "genre": ["Drama", "Romance"], "year": 1955, "actor": ["Hopper, Dennis", "Wood, Natalie", "Dean, James", "Mineo, Sal", "Backus, Jim", "Platt, Edward", "Ray, Nicholas", "Hopper, William", "Allen, Corey", "Birch, Paul", "Hudson, Rochelle", "Doran, Ann", "Hicks, Chuck", "Leigh, Nelson", "Williams, Robert", "Wessel, Dick", "Bryar, Paul", "Sessions, Almira", "McMahon, David", "Peters Jr., House"], "title": "Rebel Without a Cause"}
- 运行以下命令以将该文件上传到movies域
curl -XPOST es_endpoint/_bulk --data-binary @bulk_movies.json -H 'Content-Type: application/json'
- 创建名为bulk_movies.json的文件。将以下内容复制并粘贴到其中,并添加一个尾部换行
- 上传单个文档到 Amazon ES 域【运行以下命令将单个文档添加到movies域】
1.3 在 Amazon ES 域中搜索文档
要在 Amazon Elasticsearch Service 域中搜索文档,请使用 Elasticsearch 搜索 API。也可以使用Kibana在域中搜索文档。
- 从命令行搜索文档
- 运行以下命令在movies域中搜索单词mars:
curl -XGET 'elasticsearch_domain_endpoint/movies/_search?q=mars'
- 返回的内容如下
{"took":8,"timed_out":false,"_shards":{"total":5,"successful":5,"skipped":0,"failed":0},"hits":{"total":1,"max_score":0.2876821,"hits":[{"_index":"dhrm-expensereport","_type":"_doc","_id":"1","_score":0.2876821,"_source":{"director": "Burton, Tim", "genre": ["Comedy","Sci-Fi"], "year": 1996, "actor": ["Jack Nicholson","Pierce Brosnan","Sarah Jessica Parker"], "title": "Mars Attacks!"}}]}}%
- 从结果可以看出返回的是包含mars的document
- 运行以下命令在movies域中搜索单词mars:
1.4 删除 Amazon ES 域
- 在console中选择
Delete domain (删除域)
选项 - 或使用Cli删除
aws es delete-elasticsearch-domain --domain-name movies
二.Amazon Elasticsearch Service 访问控制
Amazon Elasticsearch Service 提供了多种方式来控制对您的域的访问。本部分介绍了各种策略类型,其彼此交互的方式,以及如何创建您自己的自定义策略。
1.基于资源的策略
将基于资源的策略附加到域。这些策略指定委托人可以对域的子资源执行哪些操作。子资源包括 Elasticsearch 索引和 API。
Principal元素指定账户、用户或允许访问的角色。Resource元素指定这些委托人可以访问哪些子资源。以下基于资源的策略将授予test-user对es:*资源的完全访问权限 (test-domain)。
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Principal”: {
“AWS”: [
“arn:aws:iam::123456789012:user/test-user”
]
},
“Action”: [
“es:"
],
“Resource”: "arn:awsAWS - ElasticSearch服务入门相关推荐
- AWS Elasticsearch后模式
因此,碰巧我们在SaaS版本的LogSentinel上遇到了生产问题–我们的Elasticsearch停止了对新数据编制索引. 由于Elasticsearch只是辅助存储,因此没有数据丢失,但这给我们 ...
- 通俗解释AWS云服务每个组件的作用
你有听说过ContainerCache,ElastiCast和QR72这些AWS的新服务吗? 没有就对了,这些都是我编的:) 不过,AWS有50多个服务,从名称也不能看出这些服务是做什么的.下面我将为 ...
- Elasticsearch 基础入门
原文地址:Elasticsearch 基础入门 博客地址:http://www.extlight.com 一.什么是 ElasticSearch ElasticSearch是一个基于 Lucene 的 ...
- 容器编排技术 -- AWS EC2快速入门
容器编排技术 -- AWS EC2快速入门 前提条件 1.您需要一个AWS账户,访问http://aws.amazon.com获得. 2.安装并配置AWS命令行界面. 3.你需要一个拥有EC2全部权限 ...
- aws python库_适用于Alexa的新AWS Python SDK入门指南
aws python库 by Ralu Bolovan 由Ralu Bolovan 适用于Alexa的新AWS Python SDK入门指南 (A Beginner's guide to the ne ...
- 【Elasticsearch】在 Elastic Cloud 上的 Elasticsearch 服务中,如何针对日志和指标用例确定热温架构的规模
1.概述 转载:在 Elastic Cloud 上的 Elasticsearch 服务中,如何针对日志和指标用例确定热温架构的规模 主要是需要翻墙,比较麻烦. 希望深入了解 Amazon Elasti ...
- aws云服务器会自动扣费吗,AWS云服务免费套餐竟然扣钱了?可能是因为你的region没管好...
原标题:AWS云服务免费套餐竟然扣钱了?可能是因为你的region没管好 前面几篇文章我们已经介绍了,个人如何开通AWS海外账号,使用一年的AWS免费套餐. 并简单介绍了开通账号后,如何创建你的第一个 ...
- ElasticSearch第一讲:ElasticSearch从入门到精通
ElasticSearch第一讲:ElasticSearch从入门到精通 业内目前来说事实上的一个标准,就是分布式搜索引擎一般大家都用elasticsearch.本文是ElasticSearch第一讲 ...
- ElasticSearch从入门到精通--第七话(自动补全、拼音分词器、自定义分词、数据同步方案)
ElasticSearch从入门到精通–第七话(自动补全.拼音分词器.自定义分词.数据同步方案) 使用拼音分词 可以引入elasticsearch的拼音分词插件,地址:https://github.c ...
最新文章
- vb 6.0服务器组件选哪个,VB 6.0包括几种版本?分别是什么?
- OSI模型和TCP/IP模型
- LiveVideoStackCon讲师热身分享 ( 十一 ) —— 短视频APP的架构设计
- c#中获取控件窗体句柄,获取窗体等的一些操作
- 使用Apache JMeter负载测试Web应用程序
- Redis你不得不探索的11个问题
- Guava RateLimiter限流原理解析
- CSS-滤镜 -webkit-filter
- 爬虫原理与数据抓取----- Requests模块
- Windows Terminal美化教程
- PMcaff-干货| 哪些 iOS 应用让你很满意并能提高生活质量?
- 腾讯视频下载的qlv格式知否怎么转换成MP4
- 微信屏蔽跳去App Store链接的解决方法
- UVA1723 Intervals
- 构建北京市政百姓信件分析实战案例
- 京东2018校园招聘一面、二面
- 关于timer.schedule只执行一次
- 技术干货 | AlphaFold/ RoseTTAFold开源复现(1)—推理复现
- Linux以太网卡架构解析-MAC层和PHY层
- java面向对象模拟电梯_面向对象的程序设计-电梯调度系统的设计、优化与测试...
热门文章
- AWS Elasticsearch后模式