Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

AWSのCloudSearch検討

More than 1 year has passed since last update.

CloudSearch利用方法

こちらが丁寧に説明しています。
https://dev.classmethod.jp/cloud/aws/amazon-cloudsearch-japanese-text/

公式ドキュメント
https://docs.aws.amazon.com/ja_jp/cloudsearch/latest/developerguide/what-is-cloudsearch.html

検索ターゲットの更新方法

Upload Documentからファイルをアップロードすることで更新することができます。もちろん、SDKやCLIからもアップロードできます。一度アップロードしたファイルに1行足して再アップロードした場合、新規の1行だけ追加されたので、差分だけ反映してくれるみたいです。

用語

ドキュメントとバッチという言葉が出てきますが、ドキュメントがCSVの1レコード、バッチはCSVファイルに当たりそうです。

登録・更新時の注意点

ドキュメントアップロード時の制限が以下に書かれています。
https://docs.aws.amazon.com/ja_jp/cloudsearch/latest/developerguide/limits.html

一度にアップロードするファイルのサイズ(バッチサイズ)に制限があるため、分割して順次アップロードしていく仕組みが必要そうです。
また、10秒に1つのバッチしかアップロードできないので、頻度についても制御が必要ですね。
データ抽出[lambda]->file分割[lambda]->upload[lambda]
みたいなワークフローを組むと良さそうな気がします。

制限の緩和を申請することもできます。

検索方法のカスタマイズ

Analysis Schemesから検索方法をカスタマイズできます。

インデックスを更新中のエンドポイントはどうなるか

再インデックス中も特にエンドポイントが利用できなくなるということはなさそうです。
ただ、Analysis Schemesを更新後に検証も無しに本番のAPIが変わってしまうのも辛いので、別でエンドポイントを作成し、よかったらAPIGWで公開されるエンドポイントを変更する、という方法が良さそうです。

検索方法

SDKやCLIから検索することができます。
https://docs.aws.amazon.com/ja_jp/cloudsearch/latest/developerguide/submitting-search-requests.html

また、APIGWと統合してAPIとしてHTTPで公開することもできます。
検索したい文字列はQueryStringに設定します(パラメータ名はq

費用感

一番小さい検索インスタンスを利用した場合。

項目 概算料金 備考
検索インスタンス(search.m1.small) $ 61 / 1ヶ月 1ヶ月31日計算

そのほかバッチアップロード(1,000 件のバッチアップロードリクエストごとに 0.10 USD (各バッチの最大サイズは 5 MB))やデータ転送にも課金されますが、そんなに大きくはならない気もする。。。

ElasticSearchServiceで構築する場合、冗長化するには最低でも3インスタンス必要なようなので、比較的安い気もします。
また、ElasticSearchServiceではシノニムを更新したりする場合インデックスの再作成が必要らしいのでCloudSearchの方が運用も楽かも。。?

h-nago
metaps
メタップスは「テクノロジーでお金と経済のあり方を変える」というミッションのもと、テクノロジーをフル活用することで人々を現実世界における様々な制約から解放し、世界中の誰もが自由に価値創造できる社会を目指しています。
https://metaps.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away