« Heroku2015年アップデートふりかえり | メイン | Herokuに関する疑問にお答え »

2016年1月 8日 (金)

CloudSearch使った時につまづいたところ

こんにちは、なかやまです。

最近お仕事でCloudSearchを利用する機会がありました。
CloudSearchはAWSが提供する検索サービスになります。

cloudsearchを使って検索できるようにするにはざっくりと次のステップがあります。
1.検索ドメインを作る
2.データのアップロード

 


では、色々つまづいた・誤解していた事です↓

データをアップロードするたびに毎回10分かかると思ってた

Cloudsearch_01

検索ドメインを作ると利用できるまでに数10分かかります。

Cloudsearch_management_console_2

コンソール画面から検索ドメインを作ると流れでドキュメントのアップロードもできるのですが、ここでアップロードのたびに10分かかると勘違いしてしまいました。。

 

 

 

アップロードは直列登録しかできないと思ってた

Sketches_03

並列登録もできますよ!負荷がかかってくるとcloudsearch側でオートスケールしてくれます。

Cloudsearch_management_console_inst

画面上でもスケールしたことを確認できました。

 

 

 

アップロードすると504エラーが返ってくる

Sketches_08

アップするドキュメントサイズによってインスタンスを指定してあげましょう。インスタンスが小さいと高確率で504エラーになります。あとアップロードするサイズは5Mになるように調整すること。

https://docs.aws.amazon.com/ja_jp/cloudsearch/latest/developerguide/uploading-data.html#bulk-uploads

 

 

 

検索クエリの条件に指定できるのは1000個まで

Sketches_07

そこまで複雑な利用方法にはならないかと思いますが、念のため。

複合クエリ: 最大 1024 の句を含めることができます。
https://docs.aws.amazon.com/ja_jp/cloudsearch/latest/developerguide/limits.html

 

 

 

クエリ1回につき取得できる件数の上限は10000件まで

Sketches_05

1回のリミットは10,000件だけど、URLパラメータにcursorつけることで次の10000件が取れるよ!最初に取得したcursorから30分かけて50回ほどクエリしたけど、問題なく取得できました。その間取得したレコードから削除のjson投げてますが、正常に全件取得・削除ができました。

https://docs.aws.amazon.com/ja_jp/cloudsearch/latest/developerguide/paginating-results.html#deep-paging

 

 

 

項目追加、型変更したらインデックス再作成しないといけない

Cloudsearch_10

よく見ると項目一覧の上の方にメッセージが表示されてました。

Cloudsearch_management_console

インデックスの再構築が必要のようです。「Run Indexing」ボタンを押して、しばらく待ったら使えるようになりました。登録されているドキュメントの数によっても時間は変わりそうですね。

 

 

 

料金の上限設定とかできない

Sketches_09

どの設定で動かしたか不明ですが、気付いたら10万円ぐらいつかってました。課金は稼働しているインスタンスが使われている時間がほぼ全てと言ってもいいぐらいかも。主に一括アップロードするときの並列処理のさせかたでガツンとスケールされてしまうので、最初の設定には気をつけましょう。

 

 

 

バッチの課金が1回0.10 USDだと思ってた

Cloudsearch_11

1000回に付き0.10 USDですね。

バッチの課金は安いけど、並列で登録することでオートスケール(課金対象)されるので、登録時間に余裕があれば直列とかウェイトかましてもよいかもです。

 

 

 

セキュリティの設定

Cloudsearch_12

設定できるのは以下のパターンのみ。(テキストエリアで直接編集することも可能!)

後からでも変更できます。

Cloudsearch_management_console

  • 検索だけ誰でもOK
  • 検索も登録も誰でもOK(おすすめしないやつ)
  • IPで制限かける(カンマ区切りで複数OK)
  • 非公開(コンソールからの利用のみ)
  • 別のドメインからコピー

セキュリティグループの設定はなかったよ。(テキストを直接編集することでカスタマイズすることで利用できるようになるかも?。。調べきれてません)

 

 

 

数値項目の合計ができない!と思ったら、英語版の資料に書いてあった件

Sketches_02

日本語ドキュメントに頼りすぎた。

http://docs.aws.amazon.com/cloudsearch/latest/developerguide/retrieving-stats.html

 

使わないCloudsearchを休止できない

Sketches_06

deleteのみ。稼働している分だけ課金されるので、不要なものはバックアップとって削除しましょう。

 

 


インデックス作成には多少手間時間がかかるものの検索性能はすばらしいです!

(参考)

第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive

コメント

コメントを投稿

採用情報

株式会社フレクトでは、事業拡大のため、
Salesforce/Force.comのアプリケーション
開発
HerokuやAWSなどのクラウドプラッ
トフォーム上でのWebアプリケーション開発

エンジニア、マネージャーを募集中です。

未経験でも、これからクラウドをやってみた
い方、是非ご応募下さい。

フレクト採用ページへ

会社紹介

株式会社フレクトは、
認定コンサルタント
認定上級デベロッパー
認定デベロッパー
が在籍している、
セールスフォースパートナーです。
heroku partnersにも登録されています。
herokuパートナー
株式会社フレクトのSalesforce/Force.com
導入支援サービス
弊社の認定プロフェッショナルが支援致します。
・Visualforce/Apexによるアプリ開発
・Salesforceと連携するWebアプリ開発
も承っております。
セールスフォースご検討の際は、
お気軽にお問合せください。
Powered by Six Apart