Amazon でのスケーリングオプションの設定 CloudSearch - Amazon CloudSearch

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon でのスケーリングオプションの設定 CloudSearch

検索ドメインには 1 つ以上の検索インスタンスがあり、各インスタンスは、データのインデックス作成およびリクエストの処理のために限定された RAM リソースと CPU リソースを使用します。使用するインスタンスタイプ、検索インデックスを送信するインスタンス数 (パーティション数)、各インデックスパーティションのレプリカの数 (レプリケーション数) を制御するスケーリングオプションを設定できます。ドメインのインスタンスはすべて常に同じタイプです。

Amazon CloudSearch ドメインに必要なインスタンスタイプ、パーティション数、またはレプリケーション数を次のように設定できます。

  • アップロード容量を増大するデフォルトで、すべての検索ドメインは search.small インスタンス上で開始されます。必要なインスタンスタイプを変更することで、ドメインのドキュメントアップロード容量を増やすことができます。アップロードするデータが大量にある場合、例えば、検索ドメインに最初にデータを設定するときなどは、より大きいインスタンスタイプを選択して、並列で送信できる更新の数を増やし、データのインデックス作成にかかる時間を短縮することができます。最大のインスタンスタイプを既に使っている場合は、望ましいパーティション数を増やしてアップロード容量をさらに増やすことができます。詳細については、「一括アップロード」を参照してください。必要なレプリケーション数を増やしても、一般にドメインのアップロード容量は増えないことに注意してください。

  • 検索リクエストのスピードアップ 大きなインスタンスタイプを選択すると、検索リクエストも高速化できます。リクエストをチューニングしてもパフォーマンス目標を達成できない場合は、より大きいインスタンスタイプを選択してみてください。最大のインスタンスタイプをすでに使っている場合は、必要なパーティション数を増やしてクエリ性能をさらに高めることができます。詳細については、「Amazon での検索リクエストのパフォーマンスの調整 CloudSearch」を参照してください。

  • 検索容量の拡大 デフォルトでは、Amazon はインデックスパーティションごとに 1 つのインスタンス CloudSearch を使用します。Amazon がドメインを自動的に CloudSearch スケーリングすると、クエリトラフィックの処理に必要なリソースに基づいてレプリカが追加されます。ドメインの検索容量を増やすには、必要なレプリケーション数を設定します。ただし、追加のインスタンスをデプロイするには時間がかかります。容量の追加が必要になることが事前に判明している場合、例えば大規模な発売時や発表時などでは、あらかじめレプリカを追加しておき、検索ドメインで負荷を処理する準備を整えます。

  • 耐障害性の改善 必要なレプリケーション数を増やすと、ドメインの耐障害性も改善されます。レプリカの 1 つに問題があっても、その復旧中は残りのレプリカがリクエストの処理を続行します。ただし、レプリカは同じアベイラビリティーゾーンに存在することに注意してください。アベイラビリティーゾーンサービスが中断した場合でもドメインの可用性を確保する必要がある場合は、マルチ AZ オプションを有効にする必要があります。詳細については、「可用性オプションの設定」を参照してください。

希望するインスタンスタイプ、希望するレプリカの数、または希望するパーティション数を設定すると、Amazon は必要に応じてドメインを CloudSearch スケーリングしますが、希望するタイプよりも小さいインスタンスタイプにドメインをスケーリングしたり、希望するレプリカの数よりも少ないレプリカを使用したり、希望するパーティション数を下回るパーティション数を減らしたりすることはありません。

注記

自動スケーリングの進行は、インスタンスタイプの使用可能なディスク容量に基づきます。search.small および search.medium インスタンスタイプのディスク容量は同じであるため、両方とも search.large にスケーリングされます。

スケーリングオプションをいつでも変更できます。必要な容量追加が一時的なものである場合は、スケーリングオプションを設定して事前スケーリングし、アップロードまたはクエリのボリュームがドメインの通常の状態に戻った後、変更を元に戻すことができます。変更するときは、ドメインのインデックスを再作成する必要があり、変更が反映されるまでにしばらく時間がかかります。インデックスの再作成にかかる時間は、インデックス内のデータのボリュームによって決まります。ドメインのステータスをモニタリングすると、ステータスが PROCESSING から ACTIVE に変化することで、インデックス作成がいつ完了したかを判断することができます。

Amazon でのスケーリングオプションの選択 CloudSearch

ドメインのスケーリングオプションを設定するときは、コストとパフォーマンスのトレードオフが生じます。必要なインスタンスタイプ、レプリケーション数、パーティション数を変更すると、ドメインを実行するコストに大きな影響が及ぶ可能性があります。

アップロードトラフィックを処理するためのインスタンスタイプを選択するために、アップロードレートを増やす際にアップロードパフォーマンスをモニタリングします。必要なアップロードレートに達する前に 504 または 507 エラーが多数発生し始めた場合は、より大きいインスタンスタイプを選択します。すでに最大のインスタンスタイプである場合は、パーティションの数を増やしてアップロード容量をさらに増やすことができます。

データが 1 GB 未満や 100 万個未満の 1 KB ドキュメントのデータセットの場合は、小さな検索インスタンスで十分です。1 GB~8 GB のデータセットをアップロードするには、アップロードを開始する前に、目的のインスタンスタイプを search.large に設定することをお勧めします。8 GB~16 GB のデータセットについては、search.xlarge で開始します。16 GB~32 GB のデータセットについては、search.2xlarge で開始します。32 GB を超えるアップロードの場合は、search.2xlarge インスタンスタイプを選択し、データセットに合わせて必要なパーティション数を増やします。各パーティションには、32 GB までのデータを格納できます。より多くのアップロード容量が必要な場合、またはインデックスに 500 GB を超える場合は、サービス引き上げ制限リクエストを送信します。

所定のクエリのボリュームを処理するのに必要なレプリカ数を判断するには、サポートする必要のあるレートで予想されるクエリのサンプルを使ってテストを実施します。クエリパフォーマンスは、処理されているクエリの種類によって大きく異なることを忘れないでください。一般に、大量のヒット項目を返す検索や複雑な構造化クエリは、検索ドメインのドキュメントが一致する割合が低い単純なテキストクエリよりも多くのリソースを消費します。大量の複雑なクエリが予想される場合は、必要なインスタンスタイプを大きくし、必要なレプリケーション数を増やします。

Amazon CloudSearch コンソールによるスケーリングオプションの設定

検索ドメインのスケーリングオプションを設定するには

必要なインスタンスタイプとレプリケーション数を変更すると、ドメインの実行コストが大幅に増加する可能性があることに注意してください。

  1. Amazon CloudSearch コンソールで、設定するドメインの名前を選択します。

  2. [ドメイン設定] タブで、[スケーリングオプション] の横にある [編集] を選択します。

  3. [必要なインスタンスタイプ] メニューでインスタンスタイプを選択します。

  4. 使用するレプリカの数を [必要なレプリケーション数] メニューで選択します。

  5. search.2xlarge インスタンスタイプを選択した場合は、必要なパーティション数 を設定します。単一の search.2xlarge パーティションに収まらないほどアップロードデータが大量にある場合は、パーティション数を増やします。詳細については、「一括アップロード」を参照してください。

  6. [送信] を選択します。

  7. ドメイン設定の変更が完了したら、[アクション][インデックス作成の実行] を選択してインデックスを更新し、新しいインスタンスにデプロイします。

AWS CLI を使用したスケーリングオプションの設定

検索ドメインのスケーリングオプションを設定するには、aws cloudsearch update-scaling-parameters コマンドを使用します。AWS CLI のインストールおよびセットアップの詳細については、「AWS Command Line Interface ユーザーガイド」を参照してください。

検索ドメインのスケーリングオプションを設定するには
  • aws cloudsearch update-scaling-parameters コマンドを実行します。必要なインスタンスタイプおよび必要なレプリケーション数を指定できます。最も大きなインスタンスタイプ (search.2xlarge) を選択した場合は、必要なパーティション数も設定できます。例えば、次のコマンドは必要なインスタンスタイプを search.xlarge に設定し、必要なレプリケーション数を 2 に設定します。--domain-name--scaling-parameters の両方のオプションを指定する必要があります。

    aws cloudsearch update-scaling-parameters --domain-name movies --scaling-parameters DesiredInstanceType=search.xlarge,DesiredReplicationCount=2 { "ScalingParameters": { "Status": { "PendingDeletion": false, "State": "RequiresIndexDocuments", "CreationDate": "2014-06-25T21:41:21Z", "UpdateVersion": 10, "UpdateDate": "2014-06-25T21:41:21Z" }, "Options": { "DesiredInstanceType": "search.xlarge", "DesiredReplicationCount": 2 } } }
    重要

    を指定すると--scaling-parameters、Amazon は指定されていないオプションを「そのままにしておく」ではなく「デフォルトにリセット」として CloudSearch 扱います。

    例えば、コマンド--scaling-parameters DesiredInstanceType=search.xlargeで を指定し、後続のコマンド--scaling-parameters DesiredReplicationCount=2で を指定した場合、Amazon は 2 番目のコマンド中にデフォルト値DesiredInstanceTypeに CloudSearch リセットします。

    最初のコマンドでの変更を保持する場合は、それ以降のすべてのコマンドでもう一度その変更を指定する必要があります: --scaling-parameters DesiredInstanceType=search.xlarge,DesiredReplicationCount=2

変更を有効にするには、インデックスの構築を開始する必要があります。インデックスの再構築は、aws cloudsearch index-documents を呼び出して実行できます。

AWS SDK を使用したスケーリングオプションの設定

AWS SDKs (Android および iOS SDKs) は、 を含む Amazon CloudSearch Configuration API で定義されているすべての Amazon CloudSearch アクションをサポートしますUpdateScalingParameters。AWS SDK のインストールと使用の詳細については、「AWS Software Development Kits」(AWS ソフトウェアデベロップメントキット) を参照してください。