読者です 読者をやめる 読者になる 読者になる

よしだのブログ

サブタイトルはありません。

Amazon CloudSearch 値下げ! 2014年11月

どうも!Amazon CloudSearch が値下げされたようなので、内容をまとめてみました。 なお、内容の正誤については一切こちらでは保証しませんので、きちんとご自分でご確認くださいますようお願いします。

http://aws.amazon.com/jp/blogs/aws/cloudsearch-price-reduction-plus-features/

追記:アマゾンのソリューションアーキテクトの篠原さんにコメント頂いたので、追記しました!

使用料の値下げ幅が大きいですねー。50%オフは大きい。。。おそらく、EC2 の値下げに追随した形なんだと思います。もう一つ気になったのは、限定的ですが、パーティション数の指定が可能になったこと。インデックスの高速化が期待できそうですが、使いドコロと価格には注意ですね。

それではどうぞ。

インスタンスの時間あたりの使用料を値下げ

インスタンスの時間あたりの使用料を最大50%まで値引きします!値引きは11月1日以降の利用分から反映されます。1月動かしっぱなしで、search.m1.small で 95.16ドル → 42.48 ドル、search.m2.2xlarge で 1039.44 ドル → 441.36 ドルになります。いずれも us-east-1 です。*1

AWS | Amazon CloudSearch | 料金表

ヘブライ語のサポート

ヘブライ語 (Hebrew) がサポートされました。これで、トータル 34 言語になります。他言語化対応をする必要がある、検索の場合、構築がかなり楽ちんかと思います。

ちなみに、日本語についてもトークナイゼーション辞書を追加して、形態素解析の動作をカスタムできると、書いてありますが、ブログにもあるとおりで、10月半のアップデートで追加された機能になります。こちらは、検証を軽くやってみたので、気になる方は以下のエントリを参照ください。

パーティション数の指定が可能に (ただし m2.x2large のみ)

検索ドメインの作成時に、パーティション数を指定できるようになりました。ただし、m2.x2large のみです。パーティションを指定することで、ドキュメントの更新パフォーマンスの向上や、1パーティション当たりのドキュメントが減ることによる検索パフォーマンスの向上が期待できます。

おそらく、内部的には Solr 使用されているとのことですので、シャード数として扱われる形になるかと思われますので、インデックスを分けて持つことでパフォーマンスの向上を実現する、という機能になるかと思います。このため、あまりドキュメント数が多くない状態で、パーティションを分けてもパフォーマンスの向上には、役に立たないどころか、検索時は結果のマージ処理によるオーバーヘッドが発生するので、分けない場合と比較して遅くなる場合もあります。

もう1点、ブログなどには明示されていないのですが、パーティション数を増やした場合の料金への影響です。通常、Solr でシャードを切る場合、別々のマシンにシャードを配置します。このため、インデックスの更新処理や検索処理を分散することで、高速化を図るわけです。このとおりであれば、CloudSearch も内部的にインスタンスをパーティション数に合わせて増やす必要があるので、パーティション数を増やすと料金が高くなると思われます。さらに、レプリカ数の指定と合わせると、例えばレプリカ2、パーティション2で指定すると4インスタンスが常に起動する構成になるので、注意が必要かと思います。

いずれにせよ 推測 なので、具体的なプライシングがどうなっているか Amazon さんに聞いてみたいところです。

追記:アマゾンのソリューションアーキテクトの篠原さんにコメント頂きました!

まとめるとこんな感じ。

  • インスタンス数は、レプリケーション数☓パーティション数で決まります。なお、負荷に応じて自動的にスケールアウト、スケールインするので固定ではありません。明示的に指定すると、その数を下回ることは無いので、2☓2を指定すると最低でも4インスタンスは常に稼働している計算になります。

  • レプリカ、パーティション共にあとで減らすことが出来ます!なので、想定よりもアクセスやドキュメント数が少なかったら、後で減らして、コストを抑えるなんてことも可能です。ただし、一時的に一貫性が失われることがあるそうで、ヒットしないドキュメントが出てきたりするので、タイミングには注意。

  • パーティションは、特にインデックスの更新パフォーマンスに効きます。初回のインデキシング時など大量にインデックス処理が発生するタイミングなどに使うといいんじゃないでしょうか。

CloudTrail サポート

こちらも10月のアップデートで追加されていましたね。。API へのアクセス履歴を CloudTrail の機能を使用することで、ログに記録して、s3 に保存しておくことができます。

こちらの機能は、サービスAPIに対する操作のみを記録対象としています。このため、検索クエリのログは取得されませんので、残念ながら検索クエリの分析には使用できません。どちらかというと、監査とか管理とかの目的で使用する形になりそうです。

以上でございます。

*1:ちなみに、現時点では、CALCULATOR には反映されていませんでした。