Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

AWS Search Services

2.595 visualizaciones

Publicado el

Amazon CloudSearch, Amazon Elasticsearch Serviceのご紹介

Publicado en: Tecnología
  • Sé el primero en comentar

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をご利利⽤用いただき、フィードバックいただければと 思います!

×