Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS...

32
Christoph Schmitter [email protected] Amazon Search Services

Transcript of Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS...

Page 1: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

Christoph [email protected]

Amazon Search Services

Page 2: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

What we'll cover

• Overview of Amazon Search Services• Understand the difference between

Cloudsearch and Amazon ElasticSearchService

• Q&A

Page 3: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

Amazon Search Services

Amazon CloudSearch

Amazon Elasticsearch

Service

Page 4: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

Scenario: Full-text search

• Traditional search

• Your application or website provides search capabilities over diverse documents

• You are tasked with making this knowledge base searchable and accessible

• You need key search features including text matching, faceting, filtering, fuzzy search, auto complete, and highlighting

Page 5: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

Scenario: Log data analytics

• Application monitoring and event diagnosis

• You need to monitor the performance of your application, web servers, and hardware

• You need easy to use, yet powerful data visualization tools to detect issues in near real-time

• You want the ability to dig into your logs in an intuitive, fine-grained way

Page 6: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

Scenario: Batch data analytics

• Usage Monitoring

• You are a mobile app developer• You have to monitor/manage users

across multiple app versions• You want to analyze and report on

usage and migration between app versions

Page 7: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

Search is like a database

SearchValueField

DocumentIndex

Cluster

Queries

DatabaseValueColumnRowTableDatabase

SQL

Page 8: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

Search is not like a database

Search• No relational information• No transactions• Eventual consistency• Queries bring the best

matches• Sorting based on relevance• Read-heavy, highly

distributed

Database• Relational information• Transactions• Strong consistency model• Queries bring all matches• Sorting based on field

values

Page 9: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

Amazon CloudSearch is a fully managed search service in the cloud for your website or application

Page 10: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and
Page 11: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and
Page 12: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

Rich search feature set

Source:IDC,Nielsen, Twitterblog

Faceting Highlighting Autocompletesuggestions

Geospatial search

Page 13: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

Ease of operation

Auto-scaling

Highavailability

Self-healingclusters

Datadurability

Page 14: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

Easy administration

Security built-in integration with

AWS IAM

Monitoringbuilt-in integration withAmazon CloudWatch

Auditingbuilt-in integration with

AWS CloudTrail

Page 15: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

Flexible options to build, automate, and experiment

AWS SDK

AWS CLI

AWS Console

Build on your preferred

language: Java, Ruby, Python,

and many more

Automate admin tasks by

scripting via the command-line

interface

Experiment with easy-to-use, interactive console gui

Page 16: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

Pay only for the resources you use

Instance hours Index buildsBatch uploads

Page 17: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

Amazon CloudSearch is great if…

ü Your application is high-read / low-write, requires fast query performance, but moderate document updates

- Example use cases: website search, e-Commerce search

ü You are looking for a hands-free search platform that takes care of scaling, high availability, data durability, and other administrative tasks

ü You want to focus on your business as opposed to building search expertise

Page 18: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

Amazon Elasticsearch Service

Page 19: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

The ELK stack for visualization

• Combined with Logstash and Kibana, the ELK stack provides a tool for real-time analytics and data visualization

Page 20: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

Scenario: Full-text search

• Traditional search

• Your application or website provides search capabilities over diverse documents

• You are tasked with making this knowledge base searchable and accessible

• You need key search features including text matching, faceting, filtering, fuzzy search, auto complete, and highlighting

Page 21: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

Ease of operation

Highavailability

Self-healingclusters

Datadurability

Easy cluster creation and configuration management

Page 22: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

Easy administration

Security built-in integration with

AWS IAM

Monitoringbuilt-in integration withAmazon CloudWatch

Auditingbuilt-in integration with

AWS CloudTrail

Page 23: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

Logstash

REST

CWL Agent

EC2 Instances

Amazon Kinesis

AmazonRDS

AmazonDynamoDB

AmazonSQS

Queue

LogstashCluster

Amazon Elasticsearch

Service

Amazon CloudWatch

AWSLambda

AWSCloudTrail

Access Logs

Amazon VPC Flow

Logs

Amazon S3 bucket

AWS IoT

Amazon Kinesis Firehose

Integration with the AWS ecosystem

Page 24: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

Pay for compute and storage you use

• With Amazon Elasticsearch Service, you pay only for the compute and storage resources you use. AWS Free Tier for qualifying customers.

Page 25: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

Amazon Elasticsearch Service• Elk – +Kibana• High volume updates• More storage at lower cost• Multi-tenant workloads• Nested documents• Aggregations

Two Search Technologies? Strengths of each

Amazon CloudSearch• Hands-off operation• Simple API for search• Simple schema changes• Relevance tuning

Page 26: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

Q&A

• Christoph Schmitter: [email protected] Architect

• https://run.qwiklab.com/searches/elasticsearch• Building Search into your Applications with

Amazon CloudSearch•

Page 27: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and

Demo Optional

Kibana

Page 28: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and
Page 29: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and
Page 30: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and
Page 31: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and
Page 32: Amazon Search Services - Amazon Web Servicesaws-de-media.s3.amazonaws.com/...Search_Intro... · AWS SDK AWS CLI AWS Console Build on your preferred language: Java, Ruby, Python, and