aws_icon-cloudsearch-200x200

こんにちは、mikotoです。

前回、Elasticsearchと比較してCloudsearchの紹介をしました。
今回はそのCloudsearchについて、ドキュメントをアップする際に気をつけなければならない点について解説します。

押さえておくべきポイント

CloudSearchへドキュメントアップする際に、以下のポイントを押さえておく必要があります。

  1. 1バッチファイル 5MB 以下とすること
  2. XMLで有効なUTF-8文字コードを使用すること
  3. アップロードデータの容量別に、適切なインスタンスタイプを選択すること

2と3について以下解説いたします。

XMLで有効なUTF-8文字コードを使用すること

実は、一部の特殊文字を利用することができません。
無効な文字に一致する次の正規表現を使用して、無効な文字を削除しましょう。

/[^\u0009\u000a\u000d\u0020-\uD7FF\uE000-\uFFFD]/

アップロードデータの容量別の適切なインスタンスタイプを選択すること

それぞれのインスタンスタイプにおけるデータ容量は以下になります。
適切なインスタンス対応を選ぶようにしましょう。

インスタンスタイプ データセット
search.m1.small 1GB以下
search.m3.large 1〜8GB
search.m3.xlarge 8〜16GB
search.m3.2xlarge 16〜32GB
お問い合わせ それ以上

データアップロード時に一時的にインスタンスタイプを変更することも可能ですが、AWS側の自動的なインスタンスタイプ変更を除く「ユーザーの操作による」明示的なインスタンスタイプ変更は、インデックス再作成料金が必要になることに注意しましょう。

それでも5XXが出る場合

データの投入速度に対し、インデックス作成の速度が十分でない場合、5XXが発生します。
インスタンスタイプにより解決できない場合は下記を試すと良いでしょう。

  • Desired Partition Count を増やす(search.m3.2xlarge のみサポートなので注意)
    • ただし、これを行うとインデックスの再作成料金が別途必要になります。
    • インデックス再作成料金: 1GB あたり 0.98 USD
  • アップロードレート(同時アップロード数とアップロード頻度)を制限する

注意

必要なレプリケーション数を増やしても、一般にドメインのアップロード容量は増えないことに注意してください。

参考元から引用しますが、
Replication Count はアップロードキャパシティには影響しません

参考