Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

AWS Search Services

2,610 views

Published on

Amazon CloudSearch, Amazon Elasticsearch Serviceのご紹介

Published in: Technology
  • Be the first to comment

AWS Search Services

  1. 1. AWS  Search  Services Eiji  Shinohara (2014年年にA9のCloudSearchチームが来⽇日した時の飲み会の様⼦子)
  2. 2. ⾃自⼰己紹介 {        "Name"  :  "篠原英治",        "Twitter"  :  "@shinodogg",        "Profile"  :  {                                                "Role"  :  "Solutions  Architect",                                                "Market":  "Startup",                                                "Services"  :  [                                                                                          "Amazon  CloudSearch",                                                                                        "Amazon  Elasticsearch  Service",                                                                                        "Amazon  Simple  Workflow  Service”,                                                                                          "AWS  Elastic  Beanstalk”                                                                                    ]                                        } } New ☺
  3. 3. AWSの検索索サービス •  Amazon  CloudSearch –  https://aws.amazon.com/jp/cloudsearch/   •  Amazon  Elasticsearch  Service –  https://aws.amazon.com/jp/elasticsearch-‐‑‒service/   Amazon  CloudSearch Amazon  Elasticsearch  Service
  4. 4. A9.com •  CloudSearch/Amazon  ES  の開発拠点はパロアルト
  5. 5. •  Amazonの商品検索索もA9で作っています A9.com
  6. 6. Amazon  CloudSearch •  ⾃自動拡張するフルマネージド検索索サービス –  2011  API •  A9が作ったプロプライエタリな検索索エンジン •  Amazon.comで使っているもの •  東京リージョンは対象外 –  2013  API •  on  top  of  Apache  Solr •  多⾔言語対応 –  ⽇日本語の形態素解析、n-‐‑‒gram、カスタム辞書にも対応 •  東京リージョンは2014年年3⽉月からサービス提供中
  7. 7. Amazon  CloudSearch •  Auto  Scaling  /  Auto  Partitining Auto  Partitioning Auto  Scaling
  8. 8. Amazon  CloudSearch •  Amazon  EMRを利利⽤用した⾃自動ノード分割 Index Index  P1 Index  P2Amazon   EMR
  9. 9. Amazon  CloudSearch •  ⽇日本でも様々な公開事例例 –  schoo –  nanapi –  ChatWork –  サイタ –  SnapDish –  SmartInsight –  Lancers –  ごちクル –  SmartNews A9  x  SmartNews  in  Palo  Alto CloudSearch  Meetup  at  Amazon  Meguro  Office
  10. 10. SourceFieldとDynamicField •  SourceField –  例例えば、形態素解析とBi-‐‑‒Gramの2つのフィールドを⽤用意 –  バッチファイルで全く同じものを⼆二つ⽤用意するのは無駄 –  よくあるのは、例例えば住所 Solrで⾔言うところのCopy  Fieldあります
  11. 11. SourceFieldとDynamicField •  DynamicField –  飲み会系、イベント系、、どんどんフィールド増やす?? –  フィールド定義は1つだけ
  12. 12. SourceFieldとDynamicField •  DynamicField –  bar_̲txt *_̲txt  指定の検索索は出来ません ⇒⼊入れた時に指定したフィールド名でのみ検索索
  13. 13. •  形態素解析(Morphological  Analysis) –  辞書のカスタマイズできます Amazon  CloudSearch  -‐‑‒  Japanese  Text  Processing
  14. 14. •  形態素解析(Morphological  Analysis) –  辞書のカスタマイズできます:  AWS  CLI/SDKからも操作可能 {                      "AnalysisSchemeName":  "jascheme",        "AnalysisSchemeLanguage":  "ja",        "AnalysisOptions":  {                "JapaneseTokenizationDictionary":  "[                        [“きゃりーぱみゅぱみゅ”,“きゃりー  ぱみゅぱみゅ”,“キャリー  パミュパミュ","名 詞,固有名詞,⼈人名”] ]"          } } $  aws  cloudsearch  define-‐‑‒analysis-‐‑‒scheme  -‐‑‒-‐‑‒region  us-‐‑‒east-‐‑‒1  -‐‑‒-‐‑‒domain-‐‑‒name  mydomain   -‐‑‒-‐‑‒analysis-‐‑‒scheme  file://jascheme.txt Amazon  CloudSearch  -‐‑‒  Japanese  Text  Processing
  15. 15. •  シノニム・類義語(Synonym  Addition) –  例例えば  Venice •  ベニス •  ベネチア •  ヴェネチア •  ヴェネツィア –  Alias •  Pupilで検索索  =>  Studentもヒット •  Studentで検索索  =>  Pupilはヒットしない –  Group •  1st,  first,  one  =>  どれで検索索しても全てヒット –  上記全て、マネージメントコンソールもしくはCLI/SDKで操作可能 http://ja.wikipedia.org/wiki/ヴェネツィア   Amazon  CloudSearch  -‐‑‒  Japanese  Text  Processing
  16. 16. •  A/Bテスト –  マネージメントコンソール上で⽐比較 Amazon  CloudSearch  -‐‑‒  Japanese  Text  Processing
  17. 17. Amazon  CloudSearch •  CloudSearchにいただいたご要望 –  リアルタイムにデータを取り込んで可視化したい •  CloudSearchは最⼤大で5MBのバッチファイルでの連携 •  細かいデータを⾼高頻度度でストアするのに強いストレージではない –  Amazon  CloudSearchの独⾃自APIを習得するのに時間がかかる •  Solrを使っているがSolrのAPIは利利⽤用できない •  完全マネージドでスケールと低レイテンシを同時に満たすには 様々なSolrの機能をオープンにすることはできない
  18. 18. Elasticsearch •  Google  Trends
  19. 19. ELK  stack •  ELK  is  Elasticsearch,  Logstash,  and  Kibana Elasticsearch  is  a   distributed,  schema-‐‑‒ free  search  and   analytics  engine Logstash  is  a  tool  for   collecting  and   managing  events  and   logs. Kibana  is  a  browser-‐‑‒ based  analytics  and   search  dashboard  for   Elasticsearch.
  20. 20. Kibana •  探索と可視化
  21. 21. http://www.binpress.com/blog/2014/10/21/binpress-‐‑‒podcast-‐‑‒episode-‐‑‒16-‐‑‒shay-‐‑‒banon-‐‑‒elasticsearch/  
  22. 22. Amazon  Elasticsearch  Service
  23. 23. Shayさんと私(篠原)ですw
  24. 24. Amazon  Elasticsearch  Service •  Elasticsearchのマネージドサービス –  AWSクラウド上で  Elasticsearch  を簡単に構築可能 •  Elasticsearchの分散/スケーリング機能はクラウドと相性が良良い •  インスタンスタイプと台数を選択するだけでプロビジョニング –  デフォルトでKibanaがインストール •  Management  ConsoleにてURLをクリックするだけで直ぐ利利⽤用可能 –  使った分だけの従量量課⾦金金 •  ノードに利利⽤用するEC2の時間課⾦金金 •  EBSボリュームを使った場合はEBSの料料⾦金金 –  略略称はAmazon  ES
  25. 25. Amazon  Elasticsearch  Service http://aws.typepad.com/aws_̲japan/2015/10/amazon-‐‑‒elasticsearch-‐‑‒service.html  
  26. 26. Amazon  Elasticsearch  Service
  27. 27. •  Elasticsearchの利利点 –  クエリは⾮非常に⾼高速でアドホックな集計や分析に強い •  Apache  Luceneベース(Apache  SolrおよびCloudSearchと同様) –  リアルタイムにデータを取り込んで検索索可能な状態にできる •  Kibanaを活⽤用することでリアルタイムにデータを可視化 •  Amazon  Elasticsearch  Serviceの利利点 –  AWSのサービスと連携して⼀一気通貫な構成を簡単に構築できる     例例1)  CloudWatch  Logs→Lambda→Elasticsearch→Kibana     例例2)  DynamoDB  Streams→Logstash→Elasticsearch –  複数AZへの分散配置もチェックボックスにチェックを⼊入れるだけ •  Zone  Awareness機能 Amazon  Elasticsearch  Service
  28. 28. •  Amazon  ESの注意点 –  CloudSearchのように⾃自動的にスケーリングはしない •  構成は後から変更更可能であるがダウンタイムはゼロではない –  プラグインを⾃自由にインストールすることはできない •  マネージドサービスである為、セキュリティや可⽤用性担保の必要性 •  Elasticの商⽤用プラグインに該当するような機能はIAMやCloudWatchで –  各種メトリクスを⾒見見ながらユーザー⾃自⾝身で対応する必要がある Amazon  Elasticsearch  Service
  29. 29. •  Amazon  ESのCloudWatch  Metrics q  Cluster  status(Green/Yellow/Red) q  Node  count q  Searchable  documents q  Deleted  documents q  CPU  utilization q  Free  storage  space q  JVM  memory  pressure q  Automatic  snapshot  failures q  Master  CPU  utilization q  Master  free  storage  space q  Master  JVM  memory  pressure q  Read  IOPS q  Write  IOPS q  Read  latency q  Write  latency q  Read  throughput q  Write  throughput q  Disk  queue  depth Amazon  Elasticsearch  Service
  30. 30. Amazon  Elasticsearch  Service •  IAM  Integration –  IPアドレスベースの制限 •  例例)  Kibanaへのアクセスは社内のIPアドレスレンジからのみ –  Signed  requests  with  SigV4 •  例例)  AWSのクレデンシャルを使ってセキュアにアクセス •  Logstashプラグイン:  https://github.com/awslabs/logstash-‐‑‒output-‐‑‒amazon_̲es   –  Fine-‐‑‒grainedアクセスコントロール •  例例)  ドメイン内のIndex毎にアクセス権限を分ける Logstash Amazon  ESData  Source
  31. 31. Amazon  Elasticsearch  Service •  ⽇日本語解析 –  ICUとKuromojiプラグインはインストール済み •  analysis-‐‑‒icu(ノーマライズ) •  analysis-‐‑‒kuromoji(形態素解析) –  但し、ユーザー辞書の追加機能は現在(2015年年10⽉月)開発中 •  その他ご要望があれば随時ご連絡ください
  32. 32. Amazon  Elasticsearch  Service •  Deployment node node EBS EBS node node node Master  Nodes Data  Nodes Cluster Node Shard  3 node EBS node EBS Shard  1 Shard  4 Shard  2
  33. 33. Amazon  Elasticsearch  Service •  バックアップ&リストア –  AWSが⾃自動で取得するもの •  Daily:  1⽇日1回  Automated  snapshot  start  hourで指定 •  リストアはAWSサポートまで –  お客さまがご⾃自⾝身で取得するもの  w/  _̲snapshot  API •  Elasticsearchのフォーマットでお客さまのS3バケット •  任意のタイミングでいつでもリストア可能
  34. 34. Amazon  Elasticsearch  Service •  今後の予定 –  2016年年にはかなり多くの機能追加を予定 –  但し、お客さまからのご要望によって優先度度は変わってきます 例例) •  Elasticsearch2.0は?Kibana4.2は?複数バージョンサポートして欲しい •  9300番ポートを使ったElasticsearchのバイナリなプロトコルを利利⽤用したい •  VPC内のエンドポイントが欲しい –  是⾮非AmazonESをご利利⽤用いただき、フィードバックいただければと 思います!

×