Amazon Elasticsearch Service
開発者ガイド (API バージョン 2015-01-01)

Amazon Elasticsearch Service ドメインの管理

Amazon Elasticsearch Service (Amazon ES) ドメイン内のドキュメントサイズが大きくなり、数が増えるため、また、ネットワークトラフィックが増大するため、Elasticsearch クラスターの設定を更新する必要が出てきます。ドメインを再設定する時期を把握するには、ドメインメトリクスを監視する必要があります。ドメインに対するデータ関連の API 呼び出しを監査する、またはドメインにタグを割り当てる必要がある場合もあります。ここでは、これらのタスクや、ドメインの管理に関連する他のタスクを実行する方法を説明します。

設定変更について

Amazon ES では、ドメインの更新時に Blue/Green デプロイプロセスが使用されます。Blue/Green は通常、2 つの本稼働環境 (ライブとアイドル) に使用して、ソフトウェアの変更時に両者間で切り替える方法を指します。Amazon ES の場合は、ドメインの更新用に新しい環境を作成し、これらの更新の完了後に新しい環境にユーザーをルーティングする方法を指します。この方法では、新しい環境へのデプロイに失敗しても、ダウンタイムを最小限に抑えることができ、元の環境を維持することができます。

次のオペレーションにより、Blue/Green デプロイが発生します。

  • インスタンスの数またはタイプの変更

  • 専用マスターノードを有効または無効にする

  • 専用マスターノード数を変更する

  • マルチ AZ の有効化または無効化

  • ストレージタイプ、ボリュームタイプ、ボリュームサイズを変更する

  • 別の VPC のサブネットを選択する

  • VPC セキュリティグループの追加または削除

  • Kibana の Amazon Cognito 認証を有効または無効にする

  • 別の Amazon Cognito ユーザープールまたは ID プールを選択する

  • 詳細設定の変更

  • エラーログまたはスローログの CloudWatch への公開を有効または無効にする

  • Elasticsearch の新しいバージョンへのアップグレード

次のオペレーションにより、Blue/Green デプロイは発生しません

  • アクセスポリシーの変更

  • 自動スナップショットの時間の変更

設定の変更を開始すると、ドメインの状態が Processing に変化します。特定のサービスソフトウェア更新中、ステータスは Active のままです。どちらの場合も、クラスターの状態と Amazon CloudWatch メトリクスを調べると、ドメイン更新中はクラスター内のノード数が一時的に増加 — しばしば倍増 — していることを確認できます。次の図では、設定の変更中にノード数が 11 から 22 に倍増し、更新が完了すると 11 に戻っていることがわかります。


                ドメイン設定の変更中にノード数が 11 から 22 に倍増しています。

この一時的な増加により、管理対象のノード数がかなり増えるため、クラスターの専用マスターノードへの負荷が高くなります。専用マスターノードでは、Blue/Green デプロイに関連するオーバーヘッドを処理するための十分な容量を維持することが重要です。

重要

設定の変更およびサービスのメンテナンス中に、追加料金は発生しません。課金対象となるのは、クラスター用にリクエストしたノード数のみです。詳細については、「設定変更に関連する料金」を参照してください。

専用マスターノードに過度な負荷がかかることを防ぐには、Amazon CloudWatch メトリクスを使用して使用率を監視できます。推奨される最大値については、「推奨 CloudWatch アラーム」を参照してください。

設定変更に関連する料金

ドメインの設定を変更すると、「設定変更について」で説明されているように、Amazon ES で新しいクラスターが作成されます。古いものから新しいものへの移行中、以下の料金が発生します。

  • インスタンスタイプを変更した場合、両方のクラスター (最初の 1 時間) が課金されます。最初の 1 時間の後は、新しいクラスターに対してのみ料金が発生します。

    例: 3 つの m3.xlarge インスタンスから 4 つの m4.large インスタンスに設定を変更した場合。最初の 1 時間は、両方のクラスターに課金されます (3 * m3.xlarge + 4 * m4.large)。最初の 1 時間の後は、新しいクラスターに対してのみ料金が発生します (4 * m4.large)。

  • インスタンスタイプを変更しない場合は、最大のクラスターに対してのみ課金されます (最初の 1 時間)。最初の 1 時間の後は、新しいクラスターに対してのみ料金が発生します。

    例: 6 つの m3.xlarge インスタンスから 3 つの m3.xlarge インスタンスに設定を変更した場合。最初の 1 時間は、最大のクラスターに課金されます (6 * m3.xlarge)。最初の 1 時間の後は、新しいクラスターに対してのみ料金が発生します (3 * m3.xlarge)。

サービスソフトウェア更新

注記

サービスソフトウェア更新は、Elasticsearch バージョンのアップグレードとは異なります。最新バージョンの Elasticsearch へのアップグレードについては、「Elasticsearch のアップグレード」を参照してください。

Amazon ES では、機能追加やドメイン強化を行うシステムソフトウェア更新を定期的にリリースしています。更新がリリースされているかどうかを簡単に確認するには、コンソールを使用します。サービスソフトウェア更新の履歴については、「リリースノート」を参照してください。

新しいサービスソフトウェアが利用可能になると、ドメインへの更新をリクエストして、新しい機能をすぐに利用できます。また、トラフィックの少ない時間帯に更新を開始することもできます。

更新には、必須のものや、オプションのものがあります。必要な更新に関するアクションを実行しない場合、サービスソフトウェアは特定の期間 (通常 2 週間) が経過すると自動的に更新されます。次の表に示されているいずれかの状態にある場合、ドメインはサービスソフトウェア更新の対象外である可能性があります。

州/地域 説明
処理中のドメイン ドメインは、設定変更中です。オペレーション完了後、更新の適格性を確認します。
赤のクラスター状態 クラスター内の 1 つ以上のインデックスは赤です。トラブルシューティングステップについては、「赤のクラスター状態」を参照してください。
高いエラー率 Elasticsearch クラスターはリクエストの処理を試みましたが、大量の 5xx エラーを返しています。この問題は通常、同時読み取りまたは書き込みリクエストが多すぎることで起こります。クラスターへのトラフィックを減らすか、ドメインのスケーリングを検討してください。
スプリットブレイン スプリットブレインとは、Elasticsearch クラスターに 1 つ以上のマスターノードがあり、決して独自に再結合することのない 2 つのクラスターに分割されているという意味です。専用マスターノードの推奨値を使用することで、スプリットブレインを回避できます。スプレッドブレインからの復旧方法については、AWS サポート にお問い合わせください。
Amazon Cognito 統合の問題 お使いのドメインでは Kibana の認証が使用されています。Amazon ES で 1 つ以上の Amazon Cognito リソースが見つかりません。この問題は通常、Amazon Cognito ユーザープールがない場合に発生します。この問題を修正するには、見つからないリソースを再作成し、そのリソースを使用するように Amazon ES ドメインを設定します。
その他の Amazon ES サービスの問題 Amazon ES 自体の問題により、ドメインが更新対象外として表示される可能性があります。前の条件がドメインに当てはまらず、問題が 1 日以上続く場合は、AWS サポート にお問い合わせください。

サービスのソフトウェア更新をスケジュール設定するには (コンソール)

  1. https://aws.amazon.com にアクセスし、[Sign In to the Console] を選択します。

  2. [分析] で、[Elasticsearch Service] を選択します。

  3. ナビゲーションペインの [My domains (マイドメイン)] で、更新するドメインを選択します。

  4. [サービスソフトウェアリリース] で、ドキュメントリンクを使用して、現在のバージョンと最新のバージョンを比較します。次に、[更新] を選択します。

サービスのソフトウェア更新をスケジュール設定するには (AWS CLI および AWS SDK)

次のコマンドを使用して、更新が利用できるかどうかを確認後、更新の適格性を確認して、スケジュール設定します。

  • describe-elasticsearch-domain (DescribeElasticsearchDomain)

  • start-elasticsearch-service-software-update (StartElasticsearchServiceSoftwareUpdate)

詳細については、「AWS CLI Command Reference」および「Amazon Elasticsearch Service 設定 API リファレンス」を参照してください。

ヒント

更新のスケジュール設定が完了したら、キャンセル可能なわずかな時間が表示されます。コンソール または stop-elasticsearch-service-software-update (StopElasticsearchServiceSoftwareUpdate) コマンドを使用します。

マルチ AZ ドメインの設定

それぞれの AWS リージョンは地理別に分類された地域でありアベイラビリティーゾーンと呼ばれる複数の独立したロケーションを持っています。サービス中断が発生した場合にデータの損失を防ぎ、クラスターのダウンタイムを最小限に抑えるため、同じリージョン内の 2 つまたは 3 つのアベイラビリティーゾーン間にノードを分散できます。これは、マルチ AZ と呼ばれる設定です。

実稼働ワークロードを実行するドメインの場合、次の設定をお勧めします。

  • Amazon ES により 3 つのアベイラビリティーゾーンをサポートするリージョンを選択します。

    • 米国東部 (バージニア北部、オハイオ)

    • 米国西部 (オレゴン)

    • 欧州 (フランクフルト、アイルランド、ロンドン、パリ)

    • アジアパシフィック (シンガポール、シドニー、東京)

    • 中国 (寧夏)

  • 3 つのゾーン間にドメインをデプロイします。

  • 専用マスターノードおよびデータノードに現行世代のインスタンスタイプを選択します。

  • 3 つの専用マスターノードと少なくとも 3 つのデータノードを使用します。

  • クラスター内のインデックスごとに少なくとも 1 つのレプリカを作成します。

このセクションの残りの部分では、これらの推奨事項について説明し、そのコンテキストを示します。

シャード分散

マルチ AZ を有効にする場合は、クラスターの各インデックスに少なくとも 1 つのレプリカを作成する必要があります。レプリカがないと、Amazon ES はデータのコピーを他のアベイラビリティーゾーンに分散できないため、マルチ AZ の意味がほとんどなくなります。さいわい、すべてのインデックスのデフォルト設定で、レプリカの数は 1 つです。次の図が示すように、Amazon ES はプライマリおよびレプリカシャードを分散し、どのレプリカシャードも、対応するプライマリシャードと同じゾーンに存在しないようにします。

シャードをアベイラビリティーゾーンごとに分散することに加えて、Amazon ES はノードごとにシャードを分散します。それでも、特定のドメイン設定ではシャード数が不均等にある場合があります。次のドメインを考えます。

  • データノード x 5

  • プライマリシャード x 5

  • レプリカ x 2

  • アベイラビリティーゾーン x 3

この状況では、次の図に示すように、Amazon ES はゾーン間でプライマリシャードとレプリカシャードを分散するために 1 つのノードをオーバーロードする必要があります。

個々のノードに負荷がかかってパフォーマンスが低下する可能性があるこのような状況を回避するため、インデックスあたりのレプリカが複数になる予定の場合は 3 の倍数のインスタンス数を選択することをお勧めします。

専用マスターノード分散

ドメインを設定するときに 2 つのアベイラビリティーゾーンを選択した場合でも、Amazon ES は 3 つのアベイラビリティーゾーン間に専用マスターノードを自動的に分散します。この分散により、ゾーンでサービス中断が発生した場合にクラスターのダウンタイムを防ぐことができます。推奨される 3 つの専用マスターノードを使用していて、1 つのアベイラビリティーゾーンがダウンした場合でも、クラスターには専用マスターノードのクォーラム (2) が残り、新しいマスターを選択できます。この設定は以下の図のようになります。

この自動分散にはいくつかの重要な例外があります。

  • 3 つのアベイラビリティーゾーンで使用できない旧世代のインスタンスタイプを選択した場合、以下のシナリオが適用されます。

    • ドメインに 3 つのアベイラビリティーゾーンを選択した場合、Amazon ES はエラーをスローします。異なるインスタンスタイプを選択し、もう一度試します。

    • ドメインに 2 つのアベイラビリティーゾーンを選択した場合、Amazon ES は 2 つのゾーン間に専用マスターノードを分散します。

  • すべての AWS リージョンに 3 つのアベイラビリティーゾーンがあるわけではありません。それらのリージョンでは、2 つのゾーンのみを使用するようにドメインを設定できます (Amazon ES は 2 つのゾーン間にのみ専用マスターノードを分散できます)。3 つのアベイラビリティーゾーンをサポートするリージョンのリストについては、「マルチ AZ ドメインの設定」を参照してください。

アベイラビリティーゾーンの中断

アベイラビリティーゾーンの中断が発生することはほとんどありませんが、起こり得ます。以下の表に、各種マルチ AZ 設定と中断時の動作を示します。

リージョン内のアベイラビリティーゾーン数 選択したアベイラビリティーゾーンの数 専用マスターノードの数 1 つのアベイラビリティーゾーンで中断が発生した場合の動作
2 以上 2 0

ダウンタイム。クラスターのデータノードの半分が失われます。マスターを選択する前に残りのアベイラビリティーゾーンで少なくとも 1 つを置き換える必要があります。

2 2 3

ダウンタイムの可能性は五分五分です。Amazon ES は、2 つの専門マスターノードを 1 つのアベイラビリティーゾーンに、もう 1 つを他のアベイラビリティーゾーンに分散します。

  • 専用マスターノードが 1 つのアベイラビリティーゾーンで中断が発生した場合、残りのアベイラビリティーゾーン内の 2 つの専用マスターノードがマスターを選択できます。

  • 専用マスターノードが 2 つのアベイラビリティーゾーンで中断が発生した場合、残りのアベイラビリティーゾーンが専用マスターノードを追加してマスターを選択できるようになるまでクラスターは使用できません。

3 以上 2 3

ダウンタイムはありません。Amazon ES は、専用マスターノードを 3 つのアベイラビリティーゾーン間で自動的に分散するため、残りの 2 つの専用マスターノードがマスターを選択できます。

3 以上 3 0

ダウンタイムなし。データノードの約 3 分の 2 が引き続きマスターを選択できます。

3 以上 3 3

ダウンタイムなし。残りの 2 つの専用マスターノードがマスターを選択できます。

原因に関係なくあらゆる設定において、ノードの障害が発生すると、欠落したノードを置き換えるために Amazon ES が自動的に新しいノードを設定する間、クラスターの残りのデータノードで非常に大きな負荷がかかる期間が発生する可能性があります。

たとえば、3 ゾーン設定でアベイラビリティーゾーンが中断した場合、3 分の 2 に相当するデータノードがクラスターへのリクエストを処理する必要があります。これらのリクエストを処理するとき、残りのノードはオンラインになる新しいノードにもシャードをレプリケートするため、さらにパフォーマンスに影響が及びます。ワークロードにとって可用性が重要な場合、クラスターにリソースを追加してこの問題を緩和することを検討してください。

Amazon CloudWatch を使用した、クラスターメトリクスと統計情報の監視 (コンソール)

Amazon ES ドメインは、1 分ごとにパフォーマンスメトリクスを Amazon CloudWatch に送信します。汎用または磁気 EBS ボリュームを使用する場合は、EBS ボリュームのメトリックスは 5 分ごとのみに更新されます。これらのメトリクスを表示するには、Amazon Elasticsearch Service コンソールで、[クラスターの状態] タブおよび [インスタンスの状態] タブを使用します。このメトリクスには、追加料金はかかりません。

ドメインの設定を変更すると、[クラスターの状態] タブと [インスタンスの状態] タブの各インスタンスのリストが正しい数に戻る前に、しばらくの間 2 倍のサイズになる場合があります。この動作の説明については、「設定変更について」を参照してください。

Amazon ES メトリクスは、これらのカテゴリに分類されます。

注記

サービスは、メトリクスを 2 週間アーカイブし、その後破棄します。

クラスターメトリクス

AWS/ES 名前空間には、次のクラスターのメトリクスが含まれます。

メトリクス 説明
ClusterStatus.green

すべてのインデックスのシャードがクラスターのノードに割り当てられることを示します。

関連する統計: Minimum、Maximum

ClusterStatus.yellow すべてのインデックスのプライマリシャードがクラスターのノードに割り当てられていることを示しますが、少なくとも 1 つのインデックスのレプリカシャードは割り当てられていません。レプリカを割り当てることができる 2 番目のノードがないため、単一ノードクラスターがこのクラスター状態に常に初期化します。緑のクラスター状態を取得するためにノード数を増やすか、Elasticsearch API を使用して number_of_replicas を設定し、インデックス用に 0 にすることができます。詳細については、「Amazon Elasticsearch Service ドメインの設定」を参照してください。

関連する統計: Minimum、Maximum

ClusterStatus.red

少なくとも 1 つのインデックスのプライマリとレプリカの両方のシャードが、クラスターのノードに割り当てられないことを示します。復旧するには、インデックスを削除するかスナップショットを復元します。次に、EBS ベースのストレージを追加するか、より大きなインスタンスタイプを使用するか、インスタンスを追加します。詳細については、「赤のクラスター状態」を参照してください。

関連する統計: Minimum、Maximum

Nodes

Amazon ES クラスターのノード数 (例: 専用マスターノード)。

関連する統計: Minimum、Maximum、Average

SearchableDocuments

クラスター内のすべてのインデックスで検索可能なドキュメントの合計数。

関連する統計: Minimum、Maximum、Average

DeletedDocuments

クラスター内のすべてのインデックスで削除対象としてマークされたドキュメントの合計数。これらのドキュメントは検索結果に表示されなくなっていますが、セグメントマージ中にディスクから削除されたドキュメントのみが Elasticsearch によって削除されます。このメトリクスは、削除リクエスト後に増加し、セグメントマージ後に減少します。

関連する統計: Minimum、Maximum、Average

CPUUtilization

クラスター内のデータノードで使用する CPU リソースの最大パーセンテージ。

関連する統計: Maximum、Average

FreeStorageSpace

クラスター内のノードの空き容量 (GiB 単位)。Sum は、クラスターの合計空き容量を示しますが、正確な値を取得するには期間を 1 分のままにしておく必要があります。MinimumMaximum、および Average は、個々のノードの空き容量を示します。メトリクスが 0 に到達すると、Amazon ES は ClusterBlockException をスローします。復旧するには、インデックスを削除する、より大きなインスタンスを追加する、既存のインスタンスに EBS ベースのストレージを追加する、のいずれかを実行する必要があります。詳細については、「空きストレージ領域の不足からの復旧」を参照してください。

注記

FreeStorageSpace は、Elasticsearch _cluster/stats API が提供する値より常に低くなります。Amazon ES は、内部オペレーションのために、各インスタンスの記憶域の一定割合を予約します。

関連する統計: Minimum、Maximum、Average、Sum

ClusterUsedSpace

クラスター用の合計使用領域 (GiB 単位)。Amazon CloudWatch コンソールでこのメトリクスを表示できますが、Amazon ES コンソールでは表示できません。正確な値を取得するには、期間を 1 分のままにしておく必要があります。

関連する統計: Minimum、Maximum

ClusterIndexWritesBlocked

クラスターで、着信する書き込みリクエストを受け入れるか、ブロックするかを指定します。値 0 では、クラスターでリクエストを受け入れます。値 1 ではリクエストをブロックします。

クラスターでリクエストをブロックする原因としては、多くの要素が考えられます。代表的なものとしては、FreeStorageSpace が少なすぎる、JVMMemoryPressure が高すぎる、CPUUtilization が高すぎるなどがあります。この問題を軽減するには、ディスク容量の追加やクラスターのスケーリングを検討します。

関連する統計: Maximum

注記

このメトリクスは、Amazon CloudWatch コンソールでは表示できますが、Amazon ES コンソールでは表示できません。

JVMMemoryPressure

クラスター内のすべてのデータノードで使用する Java ヒープの最大パーセンテージ。

関連する統計: Maximum

AutomatedSnapshotFailure

クラスターの失敗した自動スナップショットの数。1 の値は、自動スナップショットが過去 36 時間、ドメイン用に取られなかったことを示します。

関連する統計: Minimum、Maximum

CPUCreditBalance

クラスター内の、データノードに使用できる残りの CPU クレジット。CPU クレジットは、フル CPU パフォーマンスを 1 分間実現します。詳細については、Amazon EC2 開発者ガイドの「CPU クレジット」を参照してください。このメトリクスは、t2.micro.elasticsearch、t2.small.elasticsearch、t2.medium.elasticsearch インスタンスタイプでのみ使用できます。

関連する統計: Minimum

KibanaHealthyNodes

Kibana のヘルスチェック。値 1 は正常な動作を示します。値 0 は Kibana がアクセス不可であることを示します。通常、Kibana の状態はクラスターの状態を反映しています。

関連する統計: Minimum

注記

このメトリクスは、Amazon CloudWatch コンソールでは表示できますが、Amazon ES コンソールでは表示できません。

KMSKeyError

値 1 は、保管時のデータを暗号化するために使用される KMS カスタマーマスターが無効になっていることを示します。通常のオペレーションにドメインを復元するには、キーを再度有効にします。コンソールでは、保管時のデータを暗号化するドメインに対してのみこのメトリクスが表示されます。

関連する統計: Minimum、Maximum

KMSKeyInaccessible

値 1 は、保管時のデータを暗号化するために使用される KMS カスタマーマスターが削除されたか、Amazon ES への権限が取り消し済みであることを示します。この状態にあるドメインを復元することはできません。ただし、手動のスナップショットがある場合は、それを使用してドメインのデータを新しいドメインに移行できます。コンソールでは、保管時のデータを暗号化するドメインに対してのみこのメトリクスが表示されます。

関連する統計: Minimum、Maximum

InvalidHostHeaderRequests

Elasticsearch クラスターに対する HTTP リクエストのうち、ホストヘッダーが無効な (または欠落している) ものの数。有効なリクエストのホストヘッダー値としてドメインのエンドポイントが必要です。このメトリクスの値が大きい場合は、Elasticsearch クライアントでリクエストのホストヘッダー値が正しいことを確認してください。正しくない場合、Amazon ES はリクエストを拒否します。署名付きリクエストを要求するようにドメインのアクセスポリシーを更新することもできます。

関連する統計: Sum

ElasticsearchRequests

Elasticsearch クラスターに対するリクエストの数。

関連する統計: Sum

RequestCount

ドメインへのリクエストの数と、各リクエストの HTTP レスポンスコード (2xx、3xx、4xx、5xx)。

関連する統計: Sum

専用マスターノードメトリクス

AWS/ES 名前空間には専用マスターノードの次のメトリクスが含まれます。

メトリクス 説明
MasterCPUUtilization

専用マスターノードが使用する CPU リソースの最大パーセンテージ。このメトリクスが 60 パーセントに達する場合、インスタンスタイプのサイズを増やすことをお勧めします。

関連する統計: Average

MasterFreeStorageSpace

このメトリクスは関係ないため無視できます。このサービスはデータノードとしてマスターノードを使用しません。

MasterJVMMemoryPressure

クラスター内のすべての専用マスターノードで使用する Java ヒープの最大パーセンテージ。このメトリクスが 85 パーセントに達する場合、より大規模なインスタンスタイプに移行することをお勧めします。

関連する統計: Maximum

MasterCPUCreditBalance

クラスター内の専用マスターノードで使用できる、残りの CPU クレジット。CPU クレジットは、フル CPU パフォーマンスを 1 分間実現します。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「CPU クレジット」を参照してください。このメトリクスは、t2.micro.elasticsearch、t2.small.elasticsearch、t2.medium.elasticsearch インスタンスタイプでのみ使用できます。

関連する統計: Minimum

MasterReachableFromNode

MasterNotDiscovered 例外のヘルスチェック。値 1 は正常な動作を示します。値 0 は、/_cluster/health/ の動作が正常ではないことを示します。

動作が正常でないとは、マスターノードが停止しているか、到達不可能であることを意味します。通常、これらの原因はネットワーク接続または AWS 依存関係の問題です。

関連する統計: Minimum

注記

このメトリクスは、Amazon CloudWatch コンソールでは表示できますが、Amazon ES コンソールでは表示できません。

EBS ボリュームメトリクス

AWS/ES 名前空間には、次の EBS ボリュームのメトリクスが含まれます。

メトリクス 説明
ReadLatency

EBS ボリュームでの読み取り操作のレイテンシー (秒単位)。

関連する統計: Minimum、Maximum、Average

WriteLatency

EBS ボリュームでの書き込み操作のレイテンシー (秒単位)。

関連する統計: Minimum、Maximum、Average

ReadThroughput

EBS ボリュームでの読み取り操作のスループット (バイト/秒単位)。

関連する統計: Minimum、Maximum、Average

WriteThroughput

EBS ボリュームでの書き込み操作のスループット (バイト/秒単位)。

関連する統計: Minimum、Maximum、Average

DiskQueueDepth

EBS ボリュームに対する保留中の入出力 (I/O) リクエストの数。

関連する統計: Minimum、Maximum、Average

ReadIOPS

EBS ボリュームでの読み取り操作の入出力 (I/O) 操作数 (1 秒あたり)。

関連する統計: Minimum、Maximum、Average

WriteIOPS

EBS ボリュームでの書き込み操作の入出力 (I/O) 操作数 (1 秒あたり)。

関連する統計: Minimum、Maximum、Average

インスタンスメトリクス

AWS/ES 名前空間には、ドメイン内のインスタンスごとに以下のメトリクスが含まれています。また、Amazon ES では、これらのインスタンスメトリクスを集約することで、クラスター全体の正常性に関する洞察が得られます。この動作を確認するには、コンソールで統計 [データサンプル] を使用します。以下のテーブルの各メトリクスには、ノードクラスターに関連する統計を含みます。

重要

Elasticsearch のバージョンが異なる場合、_index API への呼び出しの処理にも異なるスレッドプールが使用されます。Elasticsearch 1.5 および 2.3 は、インデックス作成スレッドプールを使用します。Elasticsearch 5.x、6.0、および 6.2 はバルクスレッドプールを使用します。6.3 以降では書き込みスレッドプールを使用します。現在、Amazon ES ではバルクスレッドプールと書き込みスレッドプールのメトリクスは提供されていません。

メトリクス 説明
IndexingLatency

インデックス作成オペレーションを完了するためにシャードで必要な平均時間 (ミリ秒)。

関連するノードの統計: Average

関連するクラスターの統計: Average、Maximum

IndexingRate

1 分あたりのインデックス作成オペレーションの数。2 つのドキュメントを追加し、2 つのカウントを 4 つのオペレーションとして更新する _bulk API への 1 回の呼び出し。これは 1 つ以上のノードに分散する可能性があります。そのインデックスに 1 つ以上のレプリカがある場合、クラスター内の他のノードにも合計 4 つのインデックス作成オペレーションが記録されます。ドキュメントの削除はこのメトリクスに対してカウントされません。

関連するノードの統計: Average

関連するクラスターの統計: Average、Maximum、Sum

SearchLatency

検索オペレーションを完了するためにシャードで必要な平均時間 (ミリ秒)。

関連するノードの統計: Average

関連するクラスターの統計: Average、Maximum

SearchRate

ノードのすべてのシャードに対する 1 分あたりの検索リクエストの総数。_search API への 1 回の呼び出しに対して、さまざまなシャードから結果が返される可能性があります。これらのシャードのうちの 5 つが 1 つのノードにある場合、クライアントが 1 つのリクエストしか行っていない場合でも、ノードはこのメトリクスについて 5 を報告します。

関連するノードの統計: Average

関連するクラスターの統計: Average、Maximum、Sum

SysMemoryUtilization

インスタンスが使用中のメモリの割合。

関連するノードの統計: Minimum、Maximum、Average

関連するクラスターの統計: Minimum、Maximum、Average

JVMGCYoungCollectionCount

「新世代」ガベージコレクションが実行された回数。実行数が大量になり、かつ増え続けることは、通常のクラスター操作の一部です。

関連するノードの統計: Maximum

関連するクラスターの統計: Sum、Maximum、Average

JVMGCYoungCollectionTime

クラスターで「新世代」ガベージコレクションの実行にかかった時間 (ミリ秒)。

関連するノードの統計: Maximum

関連するクラスターの統計: Sum、Maximum、Average

JVMGCOldCollectionCount

「旧世代」ガベージコレクションが実行された回数。十分なリソースがあるクラスターでは、この回数は少ないままですが、まれに増加します。

関連するノードの統計: Maximum

関連するクラスターの統計: Sum、Maximum、Average

JVMGCOldCollectionTime

クラスターで「旧世代」ガベージコレクションの実行にかかった時間 (ミリ秒)。

関連するノードの統計: Maximum

関連するクラスターの統計: Sum、Maximum、Average

ThreadpoolForce_mergeQueue

強制マージスレッドプールでキューに入っているタスクの数。キューのサイズが一貫して大きい場合は、クラスターのスケーリングを検討してください。

関連するノードの統計: Maximum

関連するクラスターの統計: Sum、Maximum、Average

ThreadpoolForce_mergeRejected

強制マージスレッドプールで拒否されたタスクの数。この数が増え続ける場合は、クラスターのスケーリングを検討してください。

関連するノードの統計: Maximum

関連するクラスターの統計: Sum

ThreadpoolForce_mergeThreads

強制マージスレッドプールのサイズ。

関連するノードの統計: Maximum

関連するクラスターの統計: Average、Sum

ThreadpoolIndexQueue

インデックス作成スレッドプールでキューに入っているタスクの数。キューのサイズが一貫して大きい場合は、クラスターのスケーリングを検討してください。インデックスキューの最大サイズは 200 です。

関連するノードの統計: Maximum

関連するクラスターの統計: Sum、Maximum、Average

ThreadpoolIndexRejected

インデックス作成スレッドプールで拒否されたタスクの数。この数が増え続ける場合は、クラスターのスケーリングを検討してください。

関連するノードの統計: Maximum

関連するクラスターの統計: Sum

ThreadpoolIndexThreads

インデックス作成スレッドプールのサイズ。

関連するノードの統計: Maximum

関連するクラスターの統計: Average、Sum

ThreadpoolSearchQueue

検索スレッドプールでキューに入っているタスクの数。キューのサイズが一貫して大きい場合は、クラスターのスケーリングを検討してください。検索キューの最大サイズは 1,000 です。

関連するノードの統計: Maximum

関連するクラスターの統計: Sum、Maximum、Average

ThreadpoolSearchRejected

検索スレッドプールで拒否されたタスクの数。この数が増え続ける場合は、クラスターのスケーリングを検討してください。

関連するノードの統計: Maximum

関連するクラスターの統計: Sum

ThreadpoolSearchThreads

検索スレッドプールのサイズ。

関連するノードの統計: Maximum

関連するクラスターの統計: Average、Sum

ThreadpoolBulkQueue

バルクスレッドプールでキューに入っているタスクの数。キューのサイズが一貫して大きい場合は、クラスターのスケーリングを検討してください。

関連するノードの統計: Maximum

関連するクラスターの統計: Sum、Maximum、Average

ThreadpoolBulkRejected

バルクスレッドプールで拒否されたタスクの数。この数が増え続ける場合は、クラスターのスケーリングを検討してください。

関連するノードの統計: Maximum

関連するクラスターの統計: Sum

ThreadpoolBulkThreads

バルクスレッドプールのサイズ。

関連するノードの統計: Maximum

関連するクラスターの統計: Average、Sum

AWS CloudTrail を使用した Amazon Elasticsearch Service​ 設定 API 呼び出しのログ記録

Amazon Elasticsearch Service は、ユーザー、ロール、または Amazon ES の AWS サービスによって実行されるアクションを記録するサービス AWS CloudTrail と統合されています。CloudTrail では、イベントとして Amazon ES に対するすべての設定 API 呼び出しをキャプチャします。

注記

CloudTrail は、_search_bulk などの​ Elasticsearch API ではなく、CreateElasticsearchDomainGetUpgradeStatus などの設定 API 呼び出しのみをキャプチャします。

キャプチャされる呼び出しには、Amazon ES コンソール、AWS CLI、または AWS SDK からの呼び出しが含まれます。証跡を作成する場合は、Amazon ES のイベントなど、Amazon S3 バケットへの CloudTrail イベントの継続的な配信を有効にすることができます。証跡を設定しない場合でも、CloudTrail コンソールの [Event history (イベント履歴)] で最新のイベントを表示できます。CloudTrail によって収集された情報を使用して、リクエストの作成元の IP アドレス、リクエストの実行者、リクエストの実行日時などの詳細を調べて、Amazon ES に対してどのようなリクエストが行われたかを判断できます。

CloudTrail の詳細については、「AWS CloudTrail User Guide」を参照してください。

CloudTrail 内の Amazon Elasticsearch Service 情報

CloudTrail は、アカウント作成時に AWS アカウントで有効になります。Amazon ES でアクティビティが発生すると、そのアクティビティは [Event history (イベント履歴)] の AWS の他のサービスのイベントとともに CloudTrail イベントに記録されます。最近のイベントは、AWS アカウントで表示、検索、ダウンロードできます。詳細については、「CloudTrail イベント履歴でのイベントの表示」を参照してください。

Amazon ES のイベントなど、AWS アカウントのイベントの継続的な記録については、証跡を作成します。証跡により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。デフォルトでは、コンソールで証跡を作成するときに、証跡がすべての AWS リージョンに適用されます。証跡では、AWS パーティションのすべてのリージョンからのイベントがログに記録され、指定した Amazon S3 バケットにログファイルが配信されます。さらに、より詳細な分析と CloudTrail ログで収集されたデータに基づいた行動のためにその他の AWS サービスを設定できます。詳細については、以下を参照してください。

すべての Amazon ES 設定 API アクションは CloudTrail が記録し、Amazon Elasticsearch Service 設定 API リファレンス に文書化されます。

各イベントまたはログエントリには、リクエストの生成者に関する情報が含まれます。この ID 情報は以下のことを確認するのに役立ちます。

  • リクエストが、ルートと AWS Identity and Access Management (IAM) ユーザー認証情報のどちらを使用して送信されたか

  • リクエストが、ロールとフェデレーティッドユーザーのどちらの一時的なセキュリティ認証情報を使用して送信されたか

  • リクエストが、別の AWS サービスによって送信されたかどうか

詳細については、「CloudTrail userIdentity 要素」を参照してください。

Amazon Elasticsearch Service ログファイルエントリの概要

証跡は、指定した Amazon S3 バケットにイベントをログファイルとして配信できる設定です。CloudTrail ログファイルには、1 つ以上のログエントリが含まれます。イベントは任意の送信元からの単一のリクエストを表し、リクエストされたアクション、アクションの日時、リクエストのパラメータなどに関する情報が含まれます。CloudTrail ログファイルは、パブリック API コールの順序付けられたスタックトレースではないため、特定の順序では表示されません。

以下の例は、CreateElasticsearchDomain アクションの CloudTrail ログエントリを示しています。

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::123456789012:user/test-user", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "test-user", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-08-21T21:59:11Z" } }, "invokedBy": "signin.amazonaws.com" }, "eventTime": "2018-08-21T22:00:05Z", "eventSource": "es.amazonaws.com", "eventName": "CreateElasticsearchDomain", "awsRegion": "us-west-1", "sourceIPAddress": "123.123.123.123", "userAgent": "signin.amazonaws.com", "requestParameters": { "elasticsearchVersion": "6.3", "elasticsearchClusterConfig": { "instanceType": "m4.large.elasticsearch", "instanceCount": 1 }, "snapshotOptions": { "automatedSnapshotStartHour": 0 }, "domainName": "test-domain", "encryptionAtRestOptions": {}, "eBSOptions": { "eBSEnabled": true, "volumeSize": 10, "volumeType": "gp2" }, "accessPolicies": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"123456789012\"]},\"Action\":[\"es:*\"],\"Resource\":\"arn:aws:es:us-west-1:123456789012:domain/test-domain/*\"}]}", "advancedOptions": { "rest.action.multi.allow_explicit_index": "true" } }, "responseElements": { "domainStatus": { "created": true, "elasticsearchClusterConfig": { "zoneAwarenessEnabled": false, "instanceType": "m4.large.elasticsearch", "dedicatedMasterEnabled": false, "instanceCount": 1 }, "cognitoOptions": { "enabled": false }, "encryptionAtRestOptions": { "enabled": false }, "advancedOptions": { "rest.action.multi.allow_explicit_index": "true" }, "upgradeProcessing": false, "snapshotOptions": { "automatedSnapshotStartHour": 0 }, "eBSOptions": { "eBSEnabled": true, "volumeSize": 10, "volumeType": "gp2" }, "elasticsearchVersion": "6.3", "processing": true, "aRN": "arn:aws:es:us-west-1:123456789012:domain/test-domain", "domainId": "123456789012/test-domain", "deleted": false, "domainName": "test-domain", "accessPolicies": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:root\"},\"Action\":\"es:*\",\"Resource\":\"arn:aws:es:us-west-1:123456789012:domain/test-domain/*\"}]}" } }, "requestID": "12345678-1234-1234-1234-987654321098", "eventID": "87654321-4321-4321-4321-987654321098", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }

Amazon Elasticsearch Service ドメインのタグ付け

Amazon ES タグを使用して、Amazon ES ドメインにメタデータを追加できます。AWS は、タグに意味論的意味を適用しません。タグは単なる文字列として解釈されます。タグには、次の要件があります。

タグ要素 説明
タグキー タグキーは、必須のタグ名です。タグキーは添付される Amazon ES ドメインで一意にする必要があります。タグキーと値の基本的な制限の一覧については、「ユーザー定義タグの制限」を参照してください。
タグ値 タグ値は、タグの省略可能な文字列値です。タグ値は null を指定できます。また、タグセット内で一意である必要はありません。例えば、project/Trinity と cost-center/Trinity のタグセット内に 1 つのキーと値のペアを使用できます。タグキーと値の基本的な制限の一覧については、「ユーザー定義タグの制限」を参照してください。

各 Amazon ES ドメインには、その Amazon ES ドメインに割り当てられているすべてのタグを格納するタグセットがあります。AWS は、Amazon ES ドメインにタグを自動的に設定しません。タグセットには、最大 50 個のタグを格納でき、空にすることもできます。Amazon ES ドメインに追加したタグのキーがそのリソースの既存のタグのキーと同じ場合、既存の値は新しい値によって上書きされます。

これらのタグを使用して、類似のリソースの費用をグループ化することで、コストを追跡できます。Amazon ES ドメインタグは、Amazon ES ドメインを定義して関連付ける名前と値のペアです。その名前はキーと呼ばれます。タグを使用して、Amazon ES ドメインに任意の情報を割り当てることができます。たとえば、タグキーを使用してカテゴリを定義し、タグ値をそのカテゴリのアイテムにすることができます。具体的には、「project」というタグキーと「Salix」というタグ値を定義して、Amazon ES ドメインが Salix プロジェクトに割り当てられていることを示すことができます。また、タグキーとして environment=testenvironment=production などを使用して、Amazon ES ドメインがテスト用なのか本稼働用なのかを示すこともできます。Amazon ES ドメインに関連付けられているメタデータの追跡が簡単になるように、一貫した一連のタグキーを使用することをお勧めします。

タグを使用して AWS 請求書を整理し、自分のコスト構造を反映することもできます。そのためには、サインアップして、タグキー値が含まれた AWS アカウントの請求書を取得する必要があります。その後、同じタグキー値を持つリソースに従って請求情報を整理し、結合したリソースのコストを確認します。たとえば、複数の Amazon ES ドメインにキーと値のペアをタグ付けし、請求情報を整理して複数のサービスにおける各ドメインの合計コストを確認できます。詳細については、AWS 請求情報とコスト管理の「コスト配分タグの使用」を参照してください。

注記

タグは承認用にキャッシュに格納されます。そのため、Amazon ES ドメインに対するタグの追加や更新には数分かかることがあります。

タグの操作 (コンソール)

以下の手順を使用してリソースタグを作成します。

タグを作成するには (コンソール)

  1. https://aws.amazon.com にアクセスし、[Sign In to the Console] を選択します。

  2. [分析] で、[Elasticsearch Service] を選択します。

  3. ナビゲーションペインで、Amazon ES ドメインを選択します。

  4. ドメインダッシュボードで、[Manage tags (タグの管理)] を選択します。

  5. [Key] 列にタグキーを入力します。

  6. (オプション) [Value] 列にタグ値を入力します。

  7. [Submit] を選択します。

タグを削除するには (コンソール)

以下の手順を使用してリソースタグを削除します。

  1. https://aws.amazon.com にアクセスし、[Sign In to the Console] を選択します。

  2. [分析] で、[Elasticsearch Service] を選択します。

  3. ナビゲーションペインで、Amazon ES ドメインを選択します。

  4. ドメインダッシュボードで、[Manage tags (タグの管理)] を選択します。

  5. 削除するタグの横にある [Remove (削除)] を選択します。

  6. [Submit] を選択します。

コンソールを使用したタグの操作の詳細については、AWS マネジメントコンソールの入門ガイドの「タグエディタの使用」を参照してください。

タグの操作 (AWS CLI)

AWS CLI で --add-tags コマンドを使用して、リソースタグを作成することができます。

構文

add-tags --arn=<domain_arn> --tag-list Key=<key>,Value=<value>

パラメータ 説明
--arn タグが添付される Amazon ES ドメインの Amazon リソースネーム。
--tag-list スペースで区切られたキーと値のペアの以下の形式のセット: Key=<key>,Value=<value>

次の例では、ログ ドメイン用に 2 つのタグを作成します。

aws es add-tags --arn arn:aws:es:us-east-1:379931976431:domain/logs --tag-list Key=service,Value=Elasticsearch Key=instances,Value=m3.2xlarge

remove-tags コマンドを使用して Amazon ES ドメインからタグを削除できます。

構文

remove-tags --arn=<domain_arn> --tag-keys Key=<key>,Value=<value>

パラメータ 説明
--arn タグが添付される Amazon ES ドメインの Amazon リソースネーム (ARN)。
--tag-keys Amazon ES ドメインから削除するスペース区切りのタグ値のセット。

次の例は、ログドメインから前述の例で作成した 2 つのタグを削除します。

aws es remove-tags --arn arn:aws:es:us-east-1:379931976431:domain/logs --tag-keys service instances

list-tags コマンドで Amazon ES ドメインの既存のタグを表示できます。

構文

list-tags --arn=<domain_arn>

パラメータ 説明
--arn タグが添付される Amazon ES ドメインの Amazon リソースネーム (ARN)。

次の例は、ログドメインのすべてのリソースタグをリスト表示します。

aws es list-tags --arn arn:aws:es:us-east-1:379931976431:domain/logs

タグの操作 (AWS SDK)

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