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

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

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

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

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

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

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

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

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

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

注記

ただし、最初は直感的に、​Amazon CloudSearch は m3.medium​ インスタンスから m1.small​ にドメインをスケール「アップ」する場合があります。自動スケーリングの進行は、インスタンスタイプの使用可能なディスク容量に基づきます。最小から最大まで、Amazon CloudSearch​ は、次の進行を使用します。m3.mediumm1.smallm3.largem3.xlargem3.2xlarge

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

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

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

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

データが 1 GB 未満のデータセットまたは 1,000,001 KB 未満のドキュメントの場合は、スモール検索インスタンスで十分です。1~8 GB のデータセットをアップロードするには、アップロードする前に、必要なインスタンスタイプを search.m3.large に設定することをお勧めします。8~16 GB のデータセットは、search.m3.xlarge で始まります。16~32 GB のデータセットは、search.m3.2xlarge で始まります。アップロードのサイズが 32 GB を超える場合は、インスタンスタイプに search.m3.2xlarge を選択し、データセットに対応できるように、望ましいパーティション数を増やします。各パーティションに最大 32 GB のデータを格納できます。さらに多くのアップロード容量が必要な場合、または 500 GB を超えるインデックスを作成する場合は、Service Increase Limit Request を送信します。

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

Amazon CloudSearch コンソールを使用したスケーリングオプションの設定

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

  1. AWS マネジメントコンソールにサインインし、Amazon CloudSearch コンソールを開きます。[ナビゲーション] ペインで、設定するドメインの名前をクリックし、[スケーリングのオプション] リンクをクリックします。

  2. [Desired Instance Type (必要なインスタンスタイプ)] メニューでインスタンスタイプを選択します。search.m3.2xlarge インスタンスタイプを選択した場合、[Desired Partition Count] を設定するオプションもあります。単一の search.m3.2xlarge パーティションに収まらないほどアップロードデータが大量にある場合は、必要なパーティション数を増やす必要があります。詳細については、「一括アップロード」を参照してください。

  3. 使用するレプリカの数を [Desired Replication Count] メニューで選択します。

  4. 使用するインデックスパーティションの数を [Desired Partition Count] メニューで選択します。

  5. [Submit] をクリックして変更を保存し、[OK] をクリックしてドメインのスケーリングオプションを変更することを確認します。必要なインスタンスタイプとレプリケーション数を変更すると、ドメインの実行コストが大幅に増加する可能性があることに注意してください。変更を保存しないで終了するには、[Cancel] をクリックして、[Revert] をクリックします。

  6. ドメイン設定の変更が完了したら、[Run Indexing] をクリックしてインデックスを更新し、新しいインスタンスにデプロイします。

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

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

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

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

    aws cloudsearch update-scaling-parameters --domain-name movies --scaling-parameters DesiredInstanceType=search.m3.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.m3.xlarge", "DesiredReplicationCount": 2 } } }
    重要

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

    たとえば、コマンドで --scaling-parameters DesiredInstanceType=search.m3.xlarge を指定し、以降のコマンドで --scaling-parameters DesiredReplicationCount=2 を指定した場合、Amazon CloudSearch により DesiredInstanceType は 2 番目のコマンドの実行中にデフォルト値にリセットされます。

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

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

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

AWS SDK では(Android および iOS SDK を除く)、UpdateScalingParameters も含めて、Amazon CloudSearch 設定 API で定義されたすべての Amazon CloudSearch アクションがサポートされています。AWS SDK のインストールと使用の詳細については、「AWS Software Development Kits」を参照してください。