Amazon Elasticsearch Service - 開発者ガイド

Amazon Elasticsearch Service
開発者ガイド
API Version 2015-01-01
Amazon Elasticsearch Service 開発者ガイド
Amazon Elasticsearch Service: 開発者ガイド
Copyright © 2017 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.
Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any manner
that is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks not
owned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored by
Amazon.
Amazon Elasticsearch Service 開発者ガイド
Table of Contents
Amazon Elasticsearch Service とは ....................................................................................................... 1
Amazon Elasticsearch Service の機能 ............................................................................................ 2
Amazon Elasticsearch Service の使用開始 ..................................................................................... 2
AWS へのサインアップ ............................................................................................................... 3
Amazon ES へのアクセス ............................................................................................................ 3
Amazon ES のリージョンとエンドポイント ................................................................................... 3
Amazon ES でのスケールイン ...................................................................................................... 4
データの増加に合わせたスケーリング .................................................................................... 4
トラフィックの増加に合わせたスケーリング .......................................................................... 5
リクエストへの署名 .................................................................................................................... 5
インスタンスタイプの選択 ........................................................................................................... 5
ストレージとしての Amazon EBS ボリュームの使用 ....................................................................... 6
Elasticsearch バージョンの選択 .................................................................................................... 6
関連サービス ............................................................................................................................. 7
Amazon ES の料金表 .................................................................................................................. 8
Amazon ES ドメインの開始方法 ........................................................................................................... 9
ステップ 1: AWS にサインアップする ......................................................................................... 10
ステップ 2: Amazon ES ドメインを作成する ................................................................................ 10
ステップ 3: ドメインのアクセスポリシーを設定する ...................................................................... 12
ステップ 4: インデックス作成のためにデータをアップロードする .................................................... 13
ステップ 5: Amazon ES ドメインからドキュメントを検索する ........................................................ 14
ステップ 6: Amazon ES ドメインを削除する ................................................................................ 14
Amazon ES ドメインの作成と設定 ...................................................................................................... 16
Amazon ES ドメインの作成 ...................................................................................................... 16
Amazon ES ドメイン (コンソール) の作成 ............................................................................ 16
Amazon ES ドメイン (AWS CLI) の作成 .............................................................................. 19
Amazon ES (AWS SDK) ドメインの作成 .............................................................................. 21
Amazon ES ドメインの設定 ....................................................................................................... 21
Amazon ES ドメイン (コンソール) の設定 ............................................................................ 22
Amazon ES ドメイン (AWS CLI) の設定 .............................................................................. 23
Amazon ES (AWS SDK) ドメインの設定 .............................................................................. 25
EBS ベースのストレージの設定 .................................................................................................. 25
EBS ベースのストレージの設定 (コンソール) ........................................................................ 25
EBS ベースのストレージの設定 (AWS CLI) .......................................................................... 26
EBS ベースのストレージの設定 (AWS SDK) ......................................................................... 27
アクセス ポリシーの設定 ........................................................................................................... 27
アクセスポリシーの設定 (コンソール) .................................................................................. 27
アクセス ポリシーの設定 (AWS CLI) ................................................................................... 28
アクセスポリシーの設定 (AWS SDK) ................................................................................... 31
スナップショットの設定 ............................................................................................................ 31
スナップショットの設定 (コンソール) .................................................................................. 31
スナップショットの設定 (AWS CLI) .................................................................................... 32
スナップショットの設定 (AWS SDK) ................................................................................... 32
詳細オプションの設定 ............................................................................................................... 32
詳細オプションの設定 (コンソール) ..................................................................................... 33
詳細オプションの設定 (AWS CLI) ....................................................................................... 33
詳細オプションの設定 (AWS SDK) ...................................................................................... 34
Amazon ES ドメインの管理 ............................................................................................................... 35
専用マスターノードについて ...................................................................................................... 35
ゾーン対応 (コンソール) の有効化 ............................................................................................... 38
手動インデックススナップショットの使用 (AWS CLI) .................................................................... 39
スナップショット前提条件 ................................................................................................. 39
スナップショットディレクトリの登録 .................................................................................. 41
手動スナップショットの撮影 (AWS CLI) .............................................................................. 42
API Version 2015-01-01
iii
Amazon Elasticsearch Service 開発者ガイド
手動スナップショットの復元 (AWS CLI) ..............................................................................
Amazon CloudWatch を使用した、クラスターメトリクスと統計情報の監視 (コンソール) ....................
クラスターメトリクス .......................................................................................................
専用マスターノードメトリクス ...........................................................................................
EBS ボリュームメトリクス ................................................................................................
AWS CloudTrail を使用した設定のサービス呼び出しの記録 .............................................................
CloudTrail 内の Amazon ES 情報 ........................................................................................
Amazon ES ログファイルエントリの概要 .............................................................................
Kibana を使用したデータの可視化 ...............................................................................................
Logstash プラグインを使用した、データの一括読み込み ................................................................
Amazon Elasticsearch Service リクエストの署名 ...........................................................................
Amazon Elasticsearch Service ドメインのタグ付け ........................................................................
タグの操作 (コンソール) ....................................................................................................
タグの操作 (AWS CLI) .......................................................................................................
タグの操作 (AWS SDK) .....................................................................................................
Amazon ES にストリーミングデータをロードする ................................................................................
Amazon S3 から Amazon ES にストリーミングデータをロードする .................................................
ストリーミングデータを Amazon S3 から Amazon ES にロードするためのセットアップ .............
Amazon Kinesis から Amazon ES にストリーミングデータをロードする ..........................................
Amazon Kinesis から、ストリーミングデータを Amazon ES にロードするためのセットアップ ....
Amazon DynamoDB から Amazon ES にストリーミングデータをロードする .....................................
Amazon CloudWatch から Amazon ES にストリーミングデータをロードする ....................................
別の Elasticsearch バージョンへの移行 ................................................................................................
AWS サービスエラー処理 ..................................................................................................................
障害が発生したクラスターノード ................................................................................................
赤のクラスター状態 ..................................................................................................................
空きストレージ容量の不足からの復旧 ..................................................................................
処理の継続的な高負荷からの復旧 ........................................................................................
黄色のクラスター状態 ...............................................................................................................
ClusterBlockException ...............................................................................................................
FreeStorageSpace を使用しない Logstash ...........................................................................
メモリ不足によるディスクのブロック ..................................................................................
JVM OutOfMemoryError .............................................................................................................
トラブルシューティング ....................................................................................................................
Kibana: Kibana サービスエンドポイントへの AWS サービスリクエストにサインインできません ..........
Kibana: Kibana 4 の Elasticsearch ドメインのインデックスが表示されません ....................................
Kibana: データの表示に Kibana を使用すると、ブラウザエラーが表示されます .................................
統合: IAM コンソールに、Amazon ES のサービスロールが表示されません ........................................
全般的なリファレンス .......................................................................................................................
サポートされるインスタンスタイプ .............................................................................................
サポートされている Elasticsearch オペレーション .........................................................................
バージョン 1.5 .................................................................................................................
バージョン 2.3 .................................................................................................................
バージョン 5.1 .................................................................................................................
サポートされるプラグイン .........................................................................................................
出力プラグイン .................................................................................................................
サポートされている他のリソース ................................................................................................
Amazon ES 設定 API リファレンス .....................................................................................................
アクション ...............................................................................................................................
AddTags ..........................................................................................................................
CreateElasticsearchDomain ................................................................................................
DeleteElasticsearchDomain ................................................................................................
DescribeElasticsearchDomain .............................................................................................
DescribeElasticsearchDomains ............................................................................................
ListDomainNames .............................................................................................................
DescribeElasticsearchDomainConfig ....................................................................................
ListTags ...........................................................................................................................
API Version 2015-01-01
iv
43
44
44
47
48
50
51
52
52
53
54
55
55
56
57
58
59
59
62
63
65
65
66
68
68
68
69
69
70
70
70
70
70
72
72
73
74
75
76
76
78
78
79
79
80
81
81
82
82
83
84
87
89
90
92
93
95
Amazon Elasticsearch Service 開発者ガイド
RemoveTags .................................................................................................................... 96
UpdateElasticsearchDomainConfig ....................................................................................... 98
データ型 ................................................................................................................................ 101
AdvancedOptions ............................................................................................................ 101
AdvancedOptionsStatus .................................................................................................... 102
ARN .............................................................................................................................. 102
CreateElasticsearchDomainRequest ................................................................................... 102
DomainID ....................................................................................................................... 103
DomainName .................................................................................................................. 103
DomainNameList ............................................................................................................. 103
EBSOptions .................................................................................................................... 103
ElasticsearchClusterConfig ................................................................................................ 104
ElasticsearchDomainConfig ............................................................................................... 104
ElasticsearchDomainStatus ............................................................................................... 105
ElasticsearchDomainStatusList .......................................................................................... 107
OptionState .................................................................................................................... 107
OptionStatus ................................................................................................................... 107
ServiceURL .................................................................................................................... 108
SnapshotOptions ............................................................................................................. 108
SnapshotOptionsStatus .................................................................................................... 108
Tag ............................................................................................................................... 109
TagKey .......................................................................................................................... 109
TagList .......................................................................................................................... 109
TagValue ....................................................................................................................... 109
エラー ................................................................................................................................... 109
制限 .............................................................................................................................................. 111
クラスターとインスタンスの制限 .............................................................................................. 111
EBS ボリュームサイズの制限 ................................................................................................... 112
ネットワークの制限 ................................................................................................................. 113
Java プロセス制限 .................................................................................................................. 114
Amazon ES のドキュメント履歴 ....................................................................................................... 115
AWS の用語集 ................................................................................................................................ 117
API Version 2015-01-01
v
Amazon Elasticsearch Service 開発者ガイド
Amazon Elasticsearch Service とは
Amazon Elasticsearch Service (Amazon ES) は、AWS クラウドでドメインを作成し、Elasticsearch ク
ラスターのデプロイ、オペレーション、スケーリングを簡単に行える管理サービスです。Elasticsearch
はログ分析、リアルタイムのアプリケーションモニタリング、クリックストリーム分析などのユース
ケース向けの、人気の高いオープンソースの検索および分析エンジンです。Amazon ES を使用する
と、Elasticsearch のオープンソース API に直接アクセスできるため、既存のコードとアプリケーション
がシームレスに連携します。現在、Amazon ES では Elasticsearch バージョン 1.5、2.3、5.1 がサポート
されています。Elasticsearch とその使用方法の詳細については、『Elasticsearch Reference』の「Getting
Started」を参照してください。
Amazon ES は、Elasticsearch クラスターのすべてのリソースをプロビジョニングして、クラスターを起
動します。また、Amazon ES は、障害が発生した Elasticsearch ノードを自動的に検出して置き換え、自
己管理型インフラストラクチャに関連するオーバーヘッドを減らします。また、単一の API 呼び出しを使
用するか、コンソールで数回クリックするだけで、クラスターを簡単にスケーリングできます。
サービスの使用を開始するには、Amazon ES ドメインを作成します。Amazon ES ドメインは指定したコ
ンピューティングおよびストレージリソースがある AWS クラウドの Elasticsearch クラスターです。たと
えば、インスタンス数、インスタンスタイプ、およびストレージのオプションを指定できます。
さらに、Amazon ES には、次のようなマネージド型サービスのメリットがあります。
• クラスタースケーリングオプション
• 自己修復クラスター
• 可用性を高めるレプリケーション
• データの耐久性
• 強化されたセキュリティ
• ノードモニタリング
Amazon ES コンソールを使用すると、ドメインを数分でセットアップして設定できます。プログラムによ
るアクセスを希望する場合、AWS SDK や AWS CLI を使用できます。
クラスターをセットアップするための初期費用は不要で、使用するサービスリソースに対してのみお支払
いいただきます。
トピック
• Amazon Elasticsearch Service の機能 (p. 2)
• Amazon Elasticsearch Service の使用開始 (p. 2)
• AWS へのサインアップ (p. 3)
• Amazon Elasticsearch Service へのアクセス (p. 3)
API Version 2015-01-01
1
Amazon Elasticsearch Service 開発者ガイド
Amazon Elasticsearch Service の機能
• Amazon Elasticsearch Service のリージョンとエンドポイント (p. 3)
• Amazon Elasticsearch Service でのスケーリング (p. 4)
• 署名サービスリクエスト (p. 5)
• インスタンスタイプの選択 (p. 5)
• ストレージとしての Amazon EBS ボリュームの使用 (p. 6)
• Elasticsearch バージョンの選択 (p. 6)
• 関連サービス (p. 7)
• Amazon Elasticsearch Service の料金表 (p. 8)
Amazon Elasticsearch Service の機能
Amazon ES は、以下の特徴を含みます。
• インスタンスタイプと呼ばれる、CPU、メモリ、ストレージ容量の複数の設定
• Amazon EBS ボリュームを使用したデータ用のストレージボリューム
• リージョンおよびアベイラビリティゾーンと呼ばれる、リソース用の複数の地理的場所
• ゾーン対応と呼ばれる、同じリージョン内の 2 つのアベイラビリティーゾーンにまたがるクラスター
ノード割り当て
• AWS Identity and Access Management (IAM) のアクセスコントロールによるセキュリティ
• クラスターの安定性を高める専用マスターノード
• Amazon ES ドメインをバックアップおよび復元し、アベイラビリティーゾーン間でドメインをレプリ
ケートするドメインスナップショット
• Kibana ツールの使用によるデータの可視化
• Amazon ES ドメインメトリクスをモニタリングするための Amazon CloudWatch との統合
• Amazon ES ドメインへの設定 API 呼び出しを監査するための AWS CloudTrail との統合
• Amazon ES にストリーミングデータをロードするための Amazon S3、Amazon Kinesis、Amazon
DynamoDB との統合
Amazon Elasticsearch Service の使用開始
開始するには、AWS アカウントをまだお持ちでない場合はサインアップします。詳細については、
「AWS にサインアップする (p. 3)」を参照してください。
アカウントのセットアップが終了したら、Amazon Elasticsearch Service の開始方法 (p. 9)チュートリ
アルを完了します。サービスについて学習中に詳しい情報が必要になった場合は、以下の概要トピックを
参照してください。
起動と実行
• AWS にサインアップする (p. 3)
• Amazon ES へのアクセス (p. 3)
• Amazon ES ドメインの開始方法 (p. 9)
基本を学習します
• Amazon ES のリージョンとエンドポイント (p. 3)
• Amazon リソースネームと AWS 名前空間
• Amazon ES でのスケールイン (p. 4)
API Version 2015-01-01
2
Amazon Elasticsearch Service 開発者ガイド
AWS へのサインアップ
• Elasticsearch バージョンの選択 (p. 6)
インスタンスタイプとストレージの選択
• インスタンスタイプの選択 (p. 5)
• EBS ベースのストレージの設定 (p. 25)
安全性を維持する
• 署名サービスリクエスト (p. 5)
• アクセス ポリシーの設定 (p. 27)
AWS へのサインアップ
すでに AWS のお客様ではない場合、最初のステップは AWS アカウントの作成になります。すでに AWS
アカウントがあるお客様は、自動的に Amazon ES にサインアップされます。AWS アカウントを使用する
と、Amazon ES にアクセスできるほか、Amazon S3 や Amazon EC2 など、AWS プラットフォームの他
のサービスにアクセスできます。サインアップは無料で、ドメインを作成するまで料金は発生しません。
その他の AWS サービスと同様に、お客様が使用するリソースに対してのみ請求されます。
AWS アカウントを作成するには
1.
https://aws.amazon.com にアクセスし、[Sign In to the Console] を選択します。
2.
サインアップするには、手順に従って操作します。Amazon ES を使用するには、支払情報を入力する
必要があります。
Amazon Elasticsearch Service へのアクセス
Amazon ES にアクセスするには、Amazon ES コンソール、AWS SDK、または AWS CLI を使用します。
• Amazon ES コンソールでは、ドメインを作成、設定、モニタリングし、データをアップロードできま
す。コンソールは、初めて Amazon ES を使う場合に最も簡単な方法です。
• AWS SDK は、すべての Amazon ES API オペレーションをサポートしているため、ユーザーは希望する
テクノロジーを使用してドメインを簡単に管理できます。SDK は、AWS の認証情報を使用して必要に
応じて自動的にリクエストに署名します。
• AWS CLI は、すべての Amazon ES API オペレーションをラップして、ドメインを作成および設定する
シンプルな方法を提供します。AWS CLI は、AWS の認証情報を使用して必要に応じて自動的にリクエ
ストに署名します。
Elasticsearch API および機能についての詳細は、「Elasticsearch ドキュメント」を参照してください。
Amazon Elasticsearch Service のリージョンとエン
ドポイント
Amazon ES では、設定 API にアクセスするためのリージョンのエンドポイントと、検索 API にアクセス
するためのドメイン固有のエンドポイントを提供します。ドメインを作成して管理するには、設定サービ
スを使用します。リージョン固有の設定サービスエンドポイントの形式は、次のとおりです。
es.region.amazonaws.com
API Version 2015-01-01
3
Amazon Elasticsearch Service 開発者ガイド
Amazon ES でのスケールイン
("es.us-east-1.amazonaws.com" など)。サポートされているリージョンのリストについては、『AWS
General Reference』の「リージョンとエンドポイント」を参照してください。
Amazon ES には、検索およびデータサービスの単一のサービスエンドポイントが用意されています。
• http://search-domainname-domainid.us-east-1.es.amazonaws.com
データをアップロードして検索リクエストを送信するには、ドメインの検索エンドポイントを使用しま
す。
Amazon Elasticsearch Service でのスケーリング
ドメインには 1 つ以上の Elasticsearch インスタンスがあり、各インスタンスは、データのインデックス作
成およびリクエストの処理のために限定された RAM リソース、CPU リソース、ストレージリソースを使
用します。ドメインに必要なインスタンスの数は、コレクション内のドキュメントおよび Elasticsearch リ
クエストの量と複雑さによって異なります。
ドメインを作成するときは、Elasticsearch インスタンスの初期数とインスタンスタイプを選択します。た
だし、データの量とサイズが増加し、Elasticsearch リクエストが増えて複雑になるにつれて、それらの最
初の選択が適切でなくなることがあります。Amazon ES ドメインをスケーリングすることで、増加に対応
できます。次の表は、ドメインのスケーリングに関するガイドラインを示しています。
ドメインの変更
スケーリングガイドライン
データ量の増加またはデータサイズの増加
以下のガイドラインを使用し、データ量の増加と
データサイズの増加の両方に合わせてスケーリン
グします。
• 大きいインスタンスタイプを選択するか、イン
スタンスを追加する
• EBS ボリュームのサイズを大きくする
Elasticsearch リクエストのボリュームと複雑さに
よるトラフィックの増加
以下のガイドラインを使用し、トラフィックの増
加に合わせてスケーリングします。
• 大きいインスタンスタイプを選択する
• インスタンスを追加する
• レプリカシャードを追加する
レプリカシャードはフェイルオーバーを提供し
ます。プライマリシャードを含むクラスタノー
ドに障害が発生した場合、Amazon ES により
レプリカシャードがプライマリシャードに昇格
されします。レプリカシャードの詳細について
は、Elasticsearch のドキュメントの「シャードと
レプリカ」を参照してください。
データの増加に合わせたスケーリング
各 Amazon ES ドメインには 1 つまたは複数の検索インデックスがあります。インデックスにより、クラ
スター内の検索インスタンスに分散した 1 つ以上のシャードにデータが保存されます。クラスターが大き
くなると、Amazon ES によって検索インスタンス間でシャードの移行が自動的に行われます。ただし、
API Version 2015-01-01
4
Amazon Elasticsearch Service 開発者ガイド
トラフィックの増加に合わせたスケーリング
インデックスが作成されるとき、プライマリシャードの数は固定されます。プライマリシャードの数によ
り、インデックスに保存できるデータの最大容量が定義されます。インデックスとシャードの詳細につい
ては、Elasticsearch のドキュメントの「Add an Index」を参照してください。
インスタンスを追加すると、インデックスシャードは Amazon ES によって使用可能な検索インスタンス
に分配されます。詳細については、Elasticsearch のドキュメントの「Scale Horizontally」を参照してくだ
さい。大きいインスタンスタイプを選択すると、クラスターのローカルストレージが大きくなります。大
きいインデックスに対応するには、大きい EBS ボリュームを使用します。
トラフィックの増加に合わせたスケーリング
検索およびドキュメント取得リクエストは、プライマリシャードまたはレプリカシャードによって生成で
きます。クラスターのレプリカシャード多くなるほど、クラスターが処理できる検索リクエストが多くな
ります。インスタンスタイプが大きい方が、RAM や CPU などのハードウェアリソースが多くなり、各
シャードのパフォーマンスが向上します。詳細については、Elasticsearch のドキュメントの「シャードと
レプリカ」を参照してください。
署名サービスリクエスト
使用するプログラミング言語に対応する SDK が AWS に用意されている場合は、その SDK を使用して
HTTP リクエストを AWS に送信することをお勧めします。AWS SDK を使用する方が、Elasticsearch API
にネイティブにアクセスするよりも、リクエストの署名プロセスが大きく単純化され、大幅な時間の節約
になります。SDK は開発環境と容易に統合されるため、関連するコマンドへのアクセスが簡単です。ま
た、Amazon ES コンソールと AWS CLI を使用して、追加作業なしで署名されたリクエストを送信するこ
ともできます。
Elasticsearch API を直接呼び出す場合は、自分のリクエストに署名する必要があります。設定サービスの
リクエストには常に署名が必要です。すべてのリクエストは、これらのサービスに対する匿名アクセスを
設定していないかぎり、署名されている必要があります。次の手順に従ってリクエストに署名します。
1. 暗号化ハッシュ関数を使用してデジタル署名を計算します。入力には、リクエストのテキスト、および
シークレットアクセスキーが含まれている必要があります。
関数により、入力に基づいてハッシュ値が返されます。
2. リクエストの Authorization ヘッダーにデジタル署名を含めます。
サービスにより、以前使用したのと同じハッシュ関数と入力を使用して署名が再計算されます。再計算
された署名とリクエスト内の署名が一致した場合、サービスはリクエストを処理します。それ以外の場
合、サービスによってリクエストが却下されます。
Amazon ES は、AWS 署名バージョン 4 を使用した認証をサポートします。詳細については、「Signature
Version 4 Signing Process」を参照してください。
Note
このサービスは、署名バージョン 4 で署名された HTTP POST リクエストの URL で渡されるパ
ラメータを無視します。
インスタンスタイプの選択
インスタンスタイプにより、インスタンス、つまり AWS クラウドで仮想サーバーとして実行される
Amazon Machine Image (AMI) のメモリ、CPU、ストレージ容量、1 時間あたりのコストが定義されま
す。インスタンスタイプとインスタンスの数は、クラスターに作成する予定の Elasticsearch のインデック
ス、シャード、レプリカの予想サイズに基づいて選択してください。
API Version 2015-01-01
5
Amazon Elasticsearch Service 開発者ガイド
ストレージとしての Amazon EBS ボリュームの使用
インスタンスタイプの詳細については、Amazon EC2 ドキュメントの「インスタンスタイプ」を参照して
ください。Amazon ES がサポートするインスタンスタイプのリストについては、「サポートされるインス
タンスタイプ (p. 76)」を参照してください。
Note
• t2.micro.elasticsearch インスタンスは、Elasticsearch バージョン 2.3 または 1.5 でのみサ
ポートされます。
• M3 インスタンスタイプは、us-east-2、ca-central-1、eu-west-2、ap-northeast-2、ap-south-1
の各リージョンでは使用できません。
• I2 インスタンスタイプは、sa-east-1、ca-central-1、eu-west-2、us-east-2 の各リージョンでは
使用できません。
• R3 インスタンスタイプは、ca-central-1、eu-west-2、sa-east-1 の各リージョンでは使用できま
せん。
ストレージとしての Amazon EBS ボリュームの使
用
インスタンスにより提供されるデフォルトストレージではなく、インデックスを保存するために Amazon
EBS ボリュームを使用するように Amazon ES ドメインを設定するオプションがあります。Amazon EBS
ボリュームは、1 つの インスタンスにアタッチできる、耐久性に優れたブロックレベルのストレージボ
リュームです。Amazon ES では、以下の EBS ボリュームタイプがサポートされています。
• マグネティック
• 汎用 (SSD)
• プロビジョンド IOPS (SSD)
概要については、Amazon EC2 のドキュメントの「Amazon EBS ボリューム」を参照してくださ
い。Amazon ES ドメイン用に Amazon EBS ボリュームを使用する方法を示す手順については、「EBS
ベースのストレージの設定 (p. 25)」を参照してください。Amazon ES ドメインでサポートされる EBS
ボリュームの最小サイズと最大サイズについては、「EBS Volume Size Limits (p. 112)」を参照してくだ
さい。
Elasticsearch バージョンの選択
Amazon ES では現在、3 つの Elasticsearch バージョン (1.5、2.3、5.1) がサポートされています。バー
ジョン 5.1 では、Elasticsearch の以前のバージョンより処理速度と安全性に優れ、さらに使いやすくなっ
た強力な機能を備えています。ハイライトをいくつか以下に紹介します。
• Painless スクリプティングのサポート – Painless は、Elasticsearch の組み込みスクリプト言語で
す。Painless を使用すると、データに対して高度なクエリを実行し、部分的なインデックス更新などの
操作をきわめて安全に早く自動化できます。
• 高速なインデックス作成パフォーマンス – Elasticsearch 5.1 ではインデックス作成機能が改善されてお
り、データ更新のスループットが大幅に向上しています。
• 集計機能の向上 – Elasticsearch 5.1 では、いくつかの集計機能が向上しています。たとえば、データに
変更があった場合のみ集計の再計算が行われます。さらに、クエリパフォーマンスも高速化していま
す。
Elasticsearch のバージョン間の相違点については、Elasticsearch のドキュメントを参照してくださ
い。Amazon ES で 1.5、2.3、5.1 がサポートされている Elasticsearch API の詳細については、「サポー
トされている Elasticsearch オペレーション (p. 78)」を参照してください。
API Version 2015-01-01
6
Amazon Elasticsearch Service 開発者ガイド
関連サービス
新しい Elasticsearch プロジェクトを開始する場合は、バージョン 5.1 を選択することを強くお勧めしま
す。1.5 または 2.3 の既存ドメインがある場合は、そのドメインを維持するか、新しい 5.1 ドメインにデー
タを移行するかを選択できます。詳細については、別の Elasticsearch バージョンへの移行 (p. 66)に関
する記述を参照してください。
関連サービス
Amazon ES は、次のサービスでよく使用されます。
AWS CloudTrail
AWS CloudTrail を使用して Amazon ES API 呼び出しとアカウントの関連するイベントの履歴を取得
します。CloudTrail は、アカウントからの API コールを記録し、そのログファイルを Amazon S3 バ
ケットへ出力するウェブサービスです。さらに、AWS リソースへ加えられた変更の追跡に CloudTrail
を使うこともできます。詳細については、「AWS CloudTrail での Amazon Elasticsearch Service ドメ
インの監査 (p. 50)」を参照してください。
Amazon CloudWatch
パフォーマンス統計を収集、分析できるように、Amazon ES ドメインは Amazon CloudWatch に自動
的にメトリクスを送信します。これらのメトリクスは、AWS CLI または AWS SDK を使用してモニタ
リングできます。詳細については、「Amazon CloudWatch を使用した、クラスターメトリクスと統
計情報の監視 (コンソール) (p. 44)」を参照してください。
Amazon Kinesis
Amazon Kinesis は、大規模なストリーミングデータをリアルタイムで処理するマネージド型サービ
スであり、柔軟なスケーリングが可能です。Amazon ES には、Amazon Kinesis との統合のための
Lambda サンプルコードが用意されています。詳細については、「Amazon Kinesis から Amazon ES
にストリーミングデータをロードする (p. 62)」を参照してください。
Amazon S3
Amazon Simple Storage Service (Amazon S3) は、インターネット用のストレージを提供しま
す。Amazon S3 を使用すると、データの大きさにかかわらず、ウェブ上のどんな場所からでもいつ
でも保存、取得することができます。Amazon ES には、Amazon S3 との統合のための Lambda サン
プルコードが用意されています。詳細については、「Amazon S3 から Amazon ES にストリーミング
データをロードする (p. 59)」を参照してください。
AWS IAM
AWS Identity and Access Management (IAM) は AWS のユーザーとそのアクセス権限を管理できる
ウェブサービスです。IAM を使用すると、Amazon ES ドメインのユーザーベースのアクセスポリシー
を作成できます。詳細については、IAM のドキュメントを参照してください。
Amazon ES は、データ取り込みを行うために次のサービスと統合されています。
AWS Lambda
AWS Lambda は、AWS Cloud でコードを実行するバックエンドウェブ開発者のための、ゼロアドミ
ニストレーションのコンピューティングプラットフォームです。Amazon ES には、Amazon Kinesis
および Amazon S3 と統合される Lambda で実行するサンプルコードが用意されています。詳細につ
いては、「Amazon ES にストリーミングデータをロードする (p. 58)」を参照してください。
Amazon DynamoDB
Amazon DynamoDB は、完全に管理された NoSQL データベースサービスで、高速かつ予測可能な
パフォーマンスとシームレスな拡張性を提供します。Amazon ES には、DynamoDB ストリームをサ
ポートして AWS サービスリクエストに署名するための Logstash プラグインが用意されています。
API Version 2015-01-01
7
Amazon Elasticsearch Service 開発者ガイド
Amazon ES の料金表
Amazon Elasticsearch Service の料金表
AWS では、ご利用分のみがお支払いの対象になります。Amazon ES では、EC2 インスタンスの使用に対
して時間単位で料金が発生します。ドメイン内のデータノードにアタッチされた EBS ボリュームの累積サ
イズに基づき、追加ストレージに対してお支払いいただくオプションもあります。
AWS 無料利用枠の対象のお客様は、t2.micro.elasticsearch または t2.small.elasticsearch インスタンスタ
イプを 1 か月あたり最大 750 時間ご利用いただけます。最大 10 GB の Amazon EBS ストレージ (マグネ
ティックまたは汎用) もご利用いただけます。詳細については、「AWS Free Tier」を参照してください。
API Version 2015-01-01
8
Amazon Elasticsearch Service 開発者ガイド
Amazon Elasticsearch Service ドメイ
ンの開始方法
このチュートリアルでは、Amazon Elasticsearch Service (Amazon ES) を使用してドメインを作成およ
び設定する方法を示します。Amazon ES は、AWS クラウドの Elasticsearch クラスターを、簡単にデ
プロイ、運用、スケールするマネージド型サービスです。Elasticsearch はログ分析、リアルタイムのア
プリケーションモニタリング、クリックストリーム分析などのユースケース向けの、人気の高いオープ
ンソースの検索および分析エンジンです。Amazon ES を使用すると、Elasticsearch API に直接アクセ
スできるため、既存のコードとアプリケーションがシームレスに連携します。現在、Amazon ES では
Elasticsearch バージョン 1.5、2.3、5.1 がサポートされています。
サービスの使用を開始するには、Amazon ES ドメインを作成します。Amazon ES ドメインは指定したコ
ンピューティングおよびストレージリソースがある AWS クラウドの Elasticsearch クラスターです。たと
えば、インスタンス数、インスタンスタイプ、ストレージのオプションを指定できます。Amazon ES に
は、データを Amazon ES ドメインに取り込むためのデータコネクターと、インデックス化されたデータ
でパターンを検索するための分析ツールが含まれています。
以下のステップは、Amazon ES コンソール、AWS CLI、または AWS SDK を使用して完了できます。
1. AWS にサインアップする (p. 10)
2. Amazon ES ドメインの作成 (p. 10)
3. Amazon ES ドメインのアクセスポリシーの設定 (p. 12)
4. インデックス作成のための Amazon ES ドメインへのデータのアップロード (p. 13)
5. Amazon ES ドメインでのドキュメントの検索 (p. 14)
6. Amazon ES ドメインの削除 (p. 14)
AWS CLI のインストールおよびセットアップの詳細については、『AWS Command Line Interface ユー
ザーガイド』を参照してください。
Note
AWS CLI を使用して、チュートリアルを完了する場合、バージョン 1.8.9 以降を使用する必要が
あります。インストールされている AWS CLI のバージョンを確認するには、--version オプショ
ン aws --version を使用して aws コマンドを実行します。
API Version 2015-01-01
9
Amazon Elasticsearch Service 開発者ガイド
ステップ 1: AWS にサインアップする
ステップ 1: AWS にサインアップする
まだ AWS をご利用でない場合は、アカウントを作成します。すでに AWS アカウントがあるお客様は、
自動的に Amazon Elasticsearch Service (Amazon ES) にサインアップされます。AWS アカウントがある
と、Amazon ES にアクセスできるほか、Amazon Simple Storage Service (Amazon S3) や Amazon Elastic
Compute Cloud (Amazon EC2) などの他の AWS サービスにアクセスできます。サインアップは無料で、
ドメインを作成するまで料金は発生しません。使用したリソースに対してのみ料金を支払います。
コンソールにアクセスするには、IAM ユーザー名とパスワードを使用し、IAM サインインページ か
らAWS マネジメントコンソールにサインインします。IAM では、AWS アカウントでの AWS サービス
とリソースへのアクセスを安全に制御できます。 アクセスキーの作成の詳細については、AWS General
Reference の「How Do I Get Security Credentials?」を参照してください。
AWS アカウントを作成するには
1.
https://aws.amazon.com にアクセスし、[Sign In to the Console] を選択します。
2.
[Analytics] で、[Elasticsearch Service] を選択します。
3.
サインアップ手順に従います。Amazon ES の使用を開始する前に、支払情報を入力する必要がありま
す。
ステップ 2: Amazon ES ドメインを作成する
Amazon Elasticsearch Service (Amazon ES) ドメインは、HTTP リクエストを AWS に処理するほか、検
索対象のインデックス化されたデータ、ドメインのスナップショット、アクセスポリシー、メタデータを
処理する Elasticsearch エンジンインスタンスをカプセル化します。Amazon ES コンソール、AWS CLI、
または AWS SDK を使用して Amazon ES ドメインを作成することができます。
Amazon ES コンソールを使用して Amazon ES ドメインを作成するのに必要な情報は、ドメイン名の 1 つ
だけです。ドメイン名は以下の基準を満たす必要があります。
• ドメインを一意に識別する
• 先頭が小文字
• 3 ~ 28 文字
• 小文字の a ~ z、0 ~ 9 の数字、ハイフン (-) のみ含まれる
Amazon ES ドメイン (コンソール) を作成するには
1.
https://aws.amazon.com にアクセスし、[Sign In to the Console] を選択します。
2.
[Analytics] で、[Elasticsearch Service] を選択します。
3.
[Define domain] ページの [ドメイン名] で、ドメインの名前を入力します。この入門チュートリアルで
は、チュートリアルの後半にある例で、ドメイン名 movies を使用します。
4.
[Version] で、ドメインの Elasticsearch バージョンを選択します。ここでは、バージョン 5.1 を選択
することをお勧めします。詳細については、「Elasticsearch バージョンを選択する (p. 6)」を参照し
てください。
5.
[Next] を選択します。
6.
[Instance count] で、必要なインスタンスの数を選択します。
7.
[Instance type] で、Amazon ES ドメインのインスタンスタイプを選択します。
8.
専用マスターノードが必要な場合は、[Enable dedicated master] を選択します。マスターノードは、
クラスター管理タスク (専用マスターノードで実行されます) をインデックスおよび検索リクエストか
ら切り離すことで、クラスターの安定性を高めます。詳細については、「専用マスターノードについ
て (p. 35)」を参照してください。
API Version 2015-01-01
10
Amazon Elasticsearch Service 開発者ガイド
ステップ 2: Amazon ES ドメインを作成する
9.
ゾーン対応を有効にする場合は、[Enable zone awareness] を選択します。ゾーン対応は、同
じリージョン内の 2 つのアベイラビリティーゾーンにまたがってノードを割り当てます。ゾー
ン対応では、インスタンス数を偶数にする必要があります。詳細については、「Enabling Zone
Awareness (p. 38)」を参照してください。
10. EBS ボリュームストレージを使用する場合、[Storage type] で [EBS] を選択します。
[EBS volume type] ボックスと [EBS volume size] ボックスが表示されます。
a.
[EBS volume type] で、外部ストレージタイプを選択します。詳細については、「Amazon EBS
ボリュームの種類」を参照してください。
b.
[EBS volume size] に、各データノードの外部ストレージのサイズを GB で入力します。
次の式 (データノードの数) * (EBS ボリュームサイズ) を使用して、Amazon ES ドメインの EBS
ベースのストレージの合計量を計算します。
11. [Automated snapshot start hour] で、自動スナップショットを作成する 1 日の時間を選択します。
12. (オプション) [Advanced options] を選択します。
a.
(オプション) ドメインのサブリソースへのアクセスを設定する場合、
[rest.action.multi.allow_explicit_index] で [false] を選択します。
このプロパティを無効にすると、ユーザーがサブリソースのアクセスコントロールをバイパスで
きなくなります。アクセスコントロールの詳細については、Elasticsearch ドキュメントの「URLbased Access Control」を参照してください。サブリソースのためのアクセスポリシーについて
は、「Configuring Access Policies (p. 27)」を参照してください。
b.
(オプション) [indices.fielddata.cache.size] で、フィールドデータキャッシュに割り当てるヒープ
スペースの割合を指定します。
デフォルトでは、この設定は unbounded です。フィールドデータキャッシュに関する詳細につい
ては、Elasticsearch ドキュメントの「Field Data」を参照してください。
13. [Next] を選択します。
14. ドメインのアクセスポリシーを入力するか、[Select a template] からいずれかのポリシーテンプレート
を選択し、[Next] を選択します。
15. 新しいドメイン設定を確認し、[Confirm and create] を選択します。
16. [OK] を選択します。
Amazon ES ドメイン (AWS CLI) を作成するには
•
Amazon ES ドメインを作成するには、次のいずれかのコマンドを実行します。
最初のコマンドでは、デフォルトの m4.large.elasticsearch インスタンスタイプのインスタンスが 1
つ存在する Elasticsearch バージョン 1.5 で movies という名前のドメインが作成されます。このドメ
インでは、検索エンジンインスタンスにより提供されるデフォルトのストレージも使用されます。
aws es create-elasticsearch-domain --domain-name movies
次のコマンドでは、m4.large.elasticsearch インスタンスタイプのインスタンスが 2 つ存在する
Elasticsearch バージョン 5.1 で movies という名前の Amazon ES ドメインが作成されます。このド
メインでは、各データノードのストレージとして 100 GB 磁気ディスクの EBS ボリュームが使用され
ます。
aws es create-elasticsearch-domain --domain-name movies --elasticsearch-version 5.1 -elasticsearch-cluster-config InstanceType=m4.large.elasticsearch,InstanceCount=2 --ebsoptions EBSEnabled=true,VolumeType=standard,VolumeSize=100
API Version 2015-01-01
11
Amazon Elasticsearch Service 開発者ガイド
ステップ 3: ドメインのアクセスポリシーを設定する
次のコマンドでは、m4.medium.elasticsearch インスタンスタイプのインスタンスが 5 つ存在する
Elasticsearch バージョン 5.1 で movies という名前の Amazon ES ドメインが作成されます。このド
メインでは、各データノードのストレージとして 100 GB 汎用 (SSD) EBS ボリュームが使用されま
す。
aws es create-elasticsearch-domain --domain-name movies --elasticsearch-version 5.1 -elasticsearch-cluster-config InstanceType=m4.large.elasticsearch,InstanceCount=5 --ebsoptions EBSEnabled=true,VolumeType=gp2,VolumeSize=100
次のコマンドでは、m4.xlarge.elasticsearch インスタンスタイプのインスタンスが 10 存在する
Elasticsearch バージョン 1.5 で movies という名前の Amazon ES ドメインが作成されます。この
ドメインでは、各データノードのストレージとして 100 GB のプロビジョンド IOPS (SSD) EBS ボ
リュームが使用され、IOPS 値は 1000 です。
aws es create-elasticsearch-domain --domain-name movies --elasticsearch-clusterconfig InstanceType=m4.xlarge.elasticsearch,InstanceCount=10 --ebs-options
EBSEnabled=true,VolumeType=io1,VolumeSize=100,Iops=1000
Note
ドメインおよびそのリソースの初期化には、約 10 分かかります。初期化が完了すると、インデッ
クスおよび Amazon ES リクエストにドメインのエンドポイントを使用できるようになります。
新しいドメインのステータスのクエリを実行するには、次のコマンドを使用します。
aws es describe-elasticsearch-domain --domain movies
Amazon ES ドメイン (AWS SDK) を作成するには
AWS SDK では (Android および iOS SDK を除く)、describe-elasticsearch-domain コマンドも含め
て、Amazon ES 設定 API リファレンス (p. 82)で定義されたすべてのアクションがサポートされていま
す。AWS SDK のインストールと使用の詳細については、「AWS Software Development Kits」を参照して
ください。
ステップ 3: Amazon ES ドメインのアクセスポリ
シーの設定
Amazon ES ドメインでは現在、リソースベース、IP ベース、IAM ユーザーおよびロールベースのアクセ
スポリシーがサポートされています。リソースベースの IAM アクセスポリシーでは、特定の IP アドレス
または IP アドレス範囲からの Amazon ES ドメインへの匿名アクセスを設定することができます。
ステップ 2 で説明したコンソールの手順を使用して Amazon ES ドメインを作成した場合、すでにアクセ
スポリシーを割り当てています。ただし、ドメインを作成した後にアクセスポリシーを変更するのは一般
的ではありません。
アクセスポリシーは、Amazon ES コンソール、AWS CLI、AWS SDK を使用して設定することができます
が、コンソールには 4 つの事前設定ポリシーと、カスタムポリシーを入力するための複数行のセクション
が用意されています。
アクセスポリシーを設定するには (コンソール)
1.
https://aws.amazon.com にアクセスし、[Sign In to the Console] を選択します。
2.
ナビゲーションペインの [My domains] で、設定するドメインを選択します。
API Version 2015-01-01
12
Amazon Elasticsearch Service 開発者ガイド
ステップ 4: インデックス作成の
ためにデータをアップロードする
3.
[Modify access policy] を選択します。
4.
現在のアクセスポリシーを編集するか、[Select a template] からいずれかのポリシーテンプレートを選
択し、[Submit] を選択します。詳細については、「Configuring Access Policies (p. 27)」を参照し
てください。
ドメインのステータスが [Active] から [Processing] に変わります。変更したアクセスポリシーが有効
になるには、ステータスが [Active] に戻る必要があります。
アクセスポリシーを設定するには (AWS CLI)
•
movies ドメインへのアクセスを、指定された IP アドレスからのみ許可するには、次のコマンドを実
行します。
aws es update-elasticsearch-domain-config --endpoint https://es.us-west-1.amazonaws.com
--domain-name movies --access-policies '{"Version": "2012-10-17", "Statement":
[{"Action": "es:ESHttp*","Principal":"*","Effect": "Allow", "Condition": {"IpAddress":
{"aws:SourceIp":["192.0.2.0/32"]}}}]}'
アクセスポリシーを設定するには (AWS SDK)
AWS SDK では (Android および iOS SDK を除く)、update-elasticsearch-domain-config コマンドも
含めて、「Amazon Elasticsearch Service 設定 API リファレンス (p. 82)」で定義されたすべてのアク
ションがサポートされています。AWS SDK のインストールと使用の詳細については、「AWS Software
Development Kits」を参照してください。
ステップ 4: インデックス作成のための Amazon ES
ドメインへのデータのアップロード
インデックス作成のために Amazon ES ドメインにコマンドラインから Elasticsearch index および bulk
API を使用してデータをアップロードできます。単一の Elasticsearch ドキュメントを追加または更新する
には、index API を使用します。同じ JSON ファイルに記述されている複数の Elasticsearch ドキュメント
を追加または更新するには、bulk API を使用します。JSON ファイルの各行 (最後の行を含む) の末尾は、
改行文字 \n にする必要があります。
Note
curl などの標準クライアントは、アイデンティティベースのアクセスポリシーが必要なリクエス
ト署名を実行することはできません。このステップの手順を正常に実行するには、匿名アクセス
を許可する IP アドレスベースのアクセスポリシーを使用する必要があります。
単一のドキュメントを Amazon ES ドメインにアップロードするには
•
単一のドキュメントを movies ドメインに追加するには、次のコマンドを実行します。
curl -XPUT search-movies-4f3nw7eiia2xiynjr55a2nao2y.us-west-1.es.amazonaws.com/
movies/movie/tt0116996 -d '{"directors" : ["Tim Burton"],"genres" : ["Comedy","SciFi"],"plot" : "The Earth is invaded by Martians with irresistible weapons and a cruel
sense of humor.","title" : "Mars Attacks!","actors" : ["Jack Nicholson","Pierce
Brosnan","Sarah Jessica Parker"],"year" : 1996}'
複数のドキュメントを含む JSON ファイルを Amazon ES ドメインにアップロードするには
•
複数のドキュメントを movies ドメインにアップロードするには、次のコマンドを実行します。
API Version 2015-01-01
13
Amazon Elasticsearch Service 開発者ガイド
ステップ 5: Amazon ES ドメイ
ンからドキュメントを検索する
curl -XPOST 'http://search-movies-4f3nw7eiia2xiynjr55a2nao2y.uswest-1.es.amazonaws.com/_bulk' --data-binary @bulk_movies.json
Note
サービスでは、Amazon ES クラスターと自己管理型 Elasticsearch クラスターの両方で作成され
た手動スナップショットからのデータの移行がサポートされています。自己管理型 Elasticsearch
クラスターからのインデックスの復元は、データを Amazon ES に移行する一般的な方法です。
ステップ 5: Amazon ES ドメインでドキュメントを
検索する
Amazon ES ドメインでドキュメントを検索するには、コマンドラインで Elasticsearch 検索 API を使用
します。または、Kibana ダッシュボードを使用してドメインのドキュメントを検索します。ドメインの
Kibana ダッシュボードへのエンドポイントは、Amazon ES コンソールにあります。エンドポイントはド
メインのエンドポイントと一致しますが、/_plugin/kibana/ が付加されています。
Note
curl などの標準クライアントは、アイデンティティベースのアクセスポリシーが必要なリクエス
ト署名を実行することはできません。このステップの手順を正常に実行するには、匿名アクセス
を許可する IP アドレスベースのアクセスポリシーを使用する必要があります。
ドキュメントを検索するには (AWS CLI)
•
movies で単語「nightmare」を検索するには、次のコマンドを実行します。
curl -XGET 'search-movies-4f3nw7eiia2xiynjr55a2nao2y.us-west-1.es.amazonaws.com/movies/
_search?q=nightmare'
Kibana (コンソール) を使用して Amazon ES ドメインからドキュメントを検索するには
1.
2.
ブラウザーを Amazon ES ドメインの Kibana プラグインにポイントします。Amazon ES コンソール
のドメインダッシュボードで Kibana エンドポイントを見つけます。
[Search] にクエリを入力し、Enter キーを押します。
ステップ 6: Amazon ES ドメインを削除する
このステップでは、Amazon ES ドメインを削除する方法を示しています。この開始方法チュートリアルで
テストドメイン (movies ドメインなど) を作成した場合、テストが完了したらそのドメインを削除しない
と、料金が発生する可能性があります。
Amazon ES ドメイン (コンソール) を削除するには
1.
2.
3.
4.
Amazon Elasticsearch Service コンソールにログインします。
ナビゲーションペインの [My domains] で、movies ドメインを選択します。
[Delete Elasticsearch domain] を選択します。
[Delete domain] を選択します。
5.
[Delete the domain <domain_name>] チェックボックスをオンにし、[Delete] を選択します。
API Version 2015-01-01
14
Amazon Elasticsearch Service 開発者ガイド
ステップ 6: Amazon ES ドメインを削除する
Amazon ES ドメインを削除するには (AWS CLI)
•
movies ドメインを削除するには、次のコマンドを使用します。
aws es delete-elasticsearch-domain --endpoint https://es.us-west-1.amazonaws.com -domain-name movies
Note
ドメインを削除すると、有料の Amazon ES リソースがすべて削除されます。ただし、ネイティ
ブ Elasticsearch API を使用して作成したドメインの手動スナップショットは削除されません。
今後 Amazon ES ドメインを再作成する必要が生じる可能性がある場合は、スナップショットを
保存することを検討してください。ドメインを再作成する予定がない場合は、手動で作成したス
ナップショットを安全に削除できます。
Amazon ES ドメインを削除するには (AWS SDK)
AWS SDK では (Android および iOS SDK を除く)、delete-elasticsearch-domain コマンドも含め
て、Amazon ES 設定 API リファレンス (p. 82)で定義されたすべてのアクションがサポートされていま
す。AWS SDK のインストールと使用の詳細については、「AWS Software Development Kits」を参照して
ください。
API Version 2015-01-01
15
Amazon Elasticsearch Service 開発者ガイド
Amazon ES ドメインの作成
Amazon Elasticsearch Service ドメイ
ンの作成と設定
この章では、Amazon Elasticsearch Service (Amazon ES) ドメインを作成して設定する方法について説明
します。Amazon ES ドメインは、Amazon Elasticsearch Service エンドポイントで公開されるハードウェ
ア、ソフトウェア、およびデータです。
開始方法 (p. 9)チュートリアルの簡単な手順とは異なり、この章ではすべてのオプションについて説明し、
関連するリファレンス情報を提供します。Amazon ES コンソール、AWS Command Line Interface (AWS
CLI)、または AWS SDK の手順を使用することで、各手順を完了できます。
• Amazon ES ドメインの作成 (p. 16)
• Amazon ES ドメインの設定 (p. 21)
• EBS ベースのストレージの設定 (p. 25)
• アクセス ポリシーの設定 (p. 27)
• スナップショットの設定 (p. 31)
• 詳細オプションの設定 (p. 32)
Amazon ES ドメインの作成
このセクションでは、Amazon ES コンソールを使用するか、AWS CLI で create-elasticsearch-domain
コマンドを使用して Amazon ES ドメインを作成する方法について説明します。AWS CLI の手順には、構
文と例が含まれます。
Amazon ES ドメイン (コンソール) の作成
次の手順に従って、コンソールを使用することで Amazon ES ドメインを作成します。
Amazon ES ドメイン (コンソール) を作成するには
1.
https://aws.amazon.com にアクセスし、[Sign In to the Console] を選択します。
2.
3.
[Analytics] で、[Elasticsearch Service] を選択します。
[Create a new domain] を選択します。
4.
または、これが AWS アカウントに作成する最初の Amazon ES ドメインの場合、[Get Started] を選択
します。
[Define domain] ページの [ドメイン名] で、ドメインの名前を入力します。
API Version 2015-01-01
16
Amazon Elasticsearch Service 開発者ガイド
Amazon ES ドメイン (コンソール) の作成
5.
[Version] で、ドメインの Elasticsearch バージョンを選択します。ここでは、バージョン 5.1 を選択
することをお勧めします。詳細については、「Elasticsearch バージョンを選択する (p. 6)」を参照し
てください。
6.
[Next] を選択します。
7.
[Instance count] で、必要なインスタンスの数を選択します。
デフォルトは 1 つです。デフォルトの制限は、ドメインあたり 20 インスタンスです。ドメインあた
り 100 インスタンスへの引き上げをリクエストするには、AWS サポートセンターでサポートケース
を作成してください。スプレッドブレインの問題など、潜在的な Elasticsearch の問題を防ぐため、イ
ンスタンスは 2 つ以上選択することをお勧めします。さらに、潜在的なデータ損失を防ぐため、イン
デックスごとにレプリカを作成することもお勧めします。レプリカの詳細については、Elasticsearch
のドキュメントの「シャードとレプリカ」を参照してください。
Note
T2 インスタンスタイプは、ドメインのインスタンス数が 10 以下の場合のみ使用できます。
8.
[Instance type] で、データノードのインスタンスタイプを選択します。
Amazon ES がサポートするインスタンスタイプのリストについては、「サポートされるインスタンス
タイプ (p. 76)」を参照してください。
Note
• t2.micro.elasticsearch インスタンスは、Elasticsearch バージョン 2.3 または 1.5 での
みサポートされます。
• M3 インスタンスタイプは、us-east-2、ca-central-1、eu-west-2、ap-northeast-2、apsouth-1 の各リージョンでは使用できません。
• I2 インスタンスタイプは、sa-east-1、ca-central-1、eu-west-2、us-east-2 の各リージョン
では使用できません。
• R3 インスタンスタイプは、ca-central-1、eu-west-2、sa-east-1 の各リージョンでは使用で
きません。
9.
クラスターの安定性を確保する必要がある場合や、10 を超えるインスタンスが存在するドメインが
ある場合、専用マスターノードを有効にします。専用マスターノードは、クラスターの安定性を高め
ます。また、インスタンス数が 10 を超えるドメインに必要です。詳細については、「専用マスター
ノードについて (p. 35)」を参照してください。
a.
[Enable dedicated master] チェックボックスをオンにします。
b.
[Dedicated master instance type] で、専用マスターノードのインスタンスタイプを選択します。
Amazon ES がサポートするインスタンスタイプのリストについては、「サポートされるインスタ
ンスタイプ (p. 76)」を参照してください。
Note
• データノードに選択したインスタンスタイプとは異なる専用マスターノードのインス
タンスタイプを選択できます。
• T2 インスタンスタイプは、インスタンス数が 10 以下の場合にのみ使用できます。
c.
[Dedicated master instance count] で、専用マスターノードのインスタンスの数を選択します。
スプリットブレインの問題など、潜在的な Elasticsearch の問題を防ぐため、インスタンス数には
奇数を選択することをお勧めします。デフォルトかつ推奨値は 3 です。
10. (オプション) データノードの可用性を高めるため、[Enable zone awareness] チェックボックスをオン
にします。
ゾーン対応では、Amazon ES データノードが同じリージョン内の 2 つのアベイラビリティーゾーン
に分散されます。ゾーン対応を有効にする場合、クラスターのデータを複製するために、インスタン
ス数に偶数のインスタンスを持ち、Amazon ES API を使用する必要があります。これにより、2 つの
API Version 2015-01-01
17
Amazon Elasticsearch Service 開発者ガイド
Amazon ES ドメイン (コンソール) の作成
アベイラビリティーゾーンにまたがってシャードを均等に分散できるようになります。詳細について
は、「Enabling Zone Awareness (p. 38)」を参照してください。
11. [Storage type] で、[Instance] (デフォルト) または [EBS] を選択します。
Amazon ES ドメインにさらにストレージが必要な場合、選択したインスタンスタイプにアタッチされ
たストレージではなく、ストレージの EBS ボリュームを使用します。インデックスが非常に大きいド
メインや、インデックスの数が多いドメインは、多くの場合 EBS ボリュームの大きいストレージ容量
の恩恵を受けることができます。[EBS] を選択した場合、以下のボックスが表示されます。
a.
[EBS volume type] で、EBS ボリュームタイプを選択します。
EBS ボリュームタイプに [Provisioned IOPS (SSD)] を選択した場合、[Provisioned IOPS] に必要
なベースライン IOPS パフォーマンスを入力します。詳細については、Amazon EC2 のドキュメ
ントの「Amazon EBS ボリューム」を参照してください。
b.
[EBS volume size] に、各データノードにアタッチする EBS ボリュームのサイズを入力します。
次の式 (データノードの数) * (EBS ボリュームサイズ) を使用して、Amazon ES ドメインの
EBS ベースのストレージの合計量を計算します。EBS ボリュームのサイズは、指定された
EBS ボリュームタイプとそれがアタッチされるインスタンスタイプの両方によって異なりま
す。Amazon ES ドメインでサポートされる EBS ボリュームの最小サイズと最大サイズについ
ては、「EBS Volume Size Limits (p. 112)」を参照してください。サポートされている EBS ボ
リュームのタイプとサイズの詳細については、「EBS ベースのストレージの設定 (p. 25)」を
参照してください。
12. [Automated snapshot start hour] で、ドメインインデックスの毎日の自動スナップショットを作成する
時間を選択します。
デフォルトでは、サービスは深夜 0 時から 1 時間以内に自動スナップショットを作成されます。
13. (オプション) [Advanced options] を選択します。
a.
(オプション) ドメインのサブリソースへのアクセスを設定する場合、
[rest.action.multi.allow_explicit_index] で [false] を選択します。
このプロパティを無効にすると、ユーザーがサブリソースのアクセスコントロールをバイパスで
きなくなります。アクセスコントロールの詳細については、Elasticsearch ドキュメントの「URLbased Access Control」を参照してください。サブリソースのためのアクセスポリシーについて
は、「Configuring Access Policies (p. 27)」を参照してください。
b.
(オプション) [indices.fielddata.cache.size] で、フィールドデータキャッシュに割り当てるヒープ
スペースの割合を指定します。
デフォルトでは、この設定は unbounded です。フィールドデータキャッシュに関する詳細につい
ては、Elasticsearch ドキュメントの「Field Data」を参照してください。
Note
多くのお客様が、ローテーションするインデックスのクエリを毎日実行していま
す。indices.fielddata.cache.size を使用してベンチマークテストを始めることをお
勧めします。このとき、ほとんどのユースケースでは JVM ヒープを 40% に設定してく
ださい。ただし、非常に大きいインデックスがある場合、さらに大きいフィールドデー
タキャッシュが必要になることがあります。
14. [Next] を選択します。
15. [Set up access policy] ページで、[Select a template] ドロップダウンリストから事前設定されたポリ
シーを選択し、ドメインのニーズを満たすように編集します。または、[Edit the access policy] ボック
スで 1 つ以上の Identity and Access Management (IAM) ポリシーステートメントを追加することもで
きます。
Amazon Elasticsearch Service には、Amazon ES ドメインへのアクセスを設定するいくつかの方法
が用意されています。コンソールには、ドメインの具体的なニーズに合わせてカスタマイズできる
API Version 2015-01-01
18
Amazon Elasticsearch Service 開発者ガイド
Amazon ES ドメイン (AWS CLI) の作成
事前設定されたアクセスポリシーと、他の Amazon ES ドメインからアクセスポリシーをインポー
トする機能があります。このサービスにより、きめ細かい別個のアクセスポリシーを各ドメインの
サブリソースに指定することもできるようになります。たとえば、Amazon ES ドメイン内の各イン
デックスに異なるポリシーを割り当てることができます。詳細については、「Configuring Access
Policies (p. 27)」を参照してください。
16. [Next] を選択します。
17. [Review] ページで、ドメイン設定を確認し、[Confirm and create] を選択します。
18. [OK] を選択します。
Note
新しいドメインの初期化には最大 10 分かかります。ドメインが初期化されると、データをアップ
ロードしてドメインに変更を加えることができます。
Amazon ES ドメイン (AWS CLI) の作成
コンソールを使用して Amazon ES ドメインを作成する代わりに、AWS CLI を使用してドメインを作成で
きます。次の構文を使用して Amazon ES ドメインを作成します。
構文
aws es create-elasticsearch-domain --domain-name <value>
[--elasticsearch-version <value>]
[--elasticsearch-cluster-config <value>]
[--ebs-options <value>]
[--access-policies <value>]
[--snapshot-options <value>]
[--advanced-options <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton]
次の表は、各オプションパラメータについての詳細情報を示しています。
オプションのパラメーター
パラメータ
説明
ドメインの Elasticsearch バージョンを指定します。現在 Amazon
ES は、バージョン 1.5、2.3、5.1 をサポートしています。指定
されていない場合、デフォルト値は 1.5 です。詳細については、
「Elasticsearch バージョンの選択 (p. 6)」を参照してください。
--elasticsearch-version
--elasticsearch-cluster-config
--ebs-options
ドメインのインスタンスタイプと数、ゾーン対応が有効かどう
か、ドメインが専用マスターノードを使用するかどうかを指定し
ます。専用マスターノードは、クラスターの安定性を高めます。
また、インスタンス数が 10 を超えるドメインに必要です。詳細に
ついては、「Amazon ES ドメイン設定 (p. 23)」を参照してく
ださい。
ドメインがストレージに EBS ボリュームを使用するかどうか
を指定します。true の場合、このパラメータでは EBS ボリュー
API Version 2015-01-01
19
Amazon Elasticsearch Service 開発者ガイド
Amazon ES ドメイン (AWS CLI) の作成
パラメータ
説明
ムタイプ、サイズ、および該当する場合は IOPS 値も指定する
必要があります。詳細については、「Configuring EBS-based
Storage (p. 26)」を参照してください。
--access-policies
--snapshot-options
--advanced-options
--generate-cli-skeleton
--cli-input-json
ドメインのアクセスポリシーを指定します。詳細については、
「Configuring Access Policies (p. 28)」を参照してください。
サービスがドメインでインデックスの自動スナップショットを毎
日実行する時間 (UTC) を指定します。デフォルト値は 0、つまり
深夜 0 時です。これは、スナップショットが深夜 0 時から午前
1 時までのどこかで作成されることを意味します。詳細について
は、「スナップショットの設定 (p. 32)」を参照してください。
HTTP リクエストオブジェクトの本文でインデックスへの参照を
許可するかどうかを指定します。詳細については「Configuring
Advanced Options (p. 33)」を参照してください。
指定したすべてのパラメータの JSON を表示します。出力をファ
イルに保存し、後でコマンドラインにパラメータを入力しなくて
も --cli-input-json パラメータを使用してファイルを読み取る
ことができるようにします。詳細については、『AWS Command
Line Interface User Guide』の「Generate CLI Skeleton and CLI
Input JSON Parameters」を参照してください。
一連の CLI パラメータを含む JSON ファイルの名前を指定
します。詳細については、『AWS Command Line Interface
User Guide』の「Generate CLI Skeleton and CLI Input JSON
Parameters」を参照してください。
例
最初の例は、以下の Amazon ES ドメイン設定を示しています。
• Elasticsearch バージョン 5.1 を使用して、weblogs という名前の Amazon ES ドメインを作成します。
• m4.large.elasticsearch インスタンスタイプの 2 つのインスタンスをドメインに追加する
• 各データノードのストレージに 100 GB 磁気ディスクの EBS ボリュームを使用する
• 単一の IP アドレス 192.0.2.0/32 からのみ匿名アクセスを許可する
aws es create-elasticsearch-domain --domain-name weblogs --elasticsearch-version 5.1
--elasticsearch-cluster-config InstanceType=m4.large.elasticsearch,InstanceCount=2
--ebs-options EBSEnabled=true,VolumeType=standard,VolumeSize=100 --access-policies
'{"Version": "2012-10-17", "Statement": [{"Action": "es:*", "Principal":"*","Effect":
"Allow", "Condition": {"IpAddress":{"aws:SourceIp":["192.0.2.0/32"]}}}]}'
次の例は、以下の Amazon ES ドメイン設定を示しています。
• Elasticsearch バージョン 5.1 を使用して、weblogs という名前の Amazon ES ドメインを作成します。
• m4.large.elasticsearch インスタンスタイプの 6 つのインスタンスをドメインに追加する
• 各データノードのストレージに 100 GB 汎用 (SSD) EBS ボリュームを使用する
• サービスへのアクセスを、ユーザーの AWS アカウント ID 555555555555 によって識別される単一の
ユーザーに制限する
• ゾーン対応を有効にする
API Version 2015-01-01
20
Amazon Elasticsearch Service 開発者ガイド
Amazon ES (AWS SDK) ドメインの作成
aws es create-elasticsearch-domain --domain-name weblogs -elasticsearch-version 5.1 --elasticsearch-cluster-config
InstanceType=m4.large.elasticsearch,InstanceCount=6,ZoneAwarenessEnabled=true
--ebs-options EBSEnabled=true,VolumeType=gp2,VolumeSize=100 --access-policies
'{"Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"AWS":
"arn:aws:iam::555555555555:root" }, "Action":"es:*", "Resource": "arn:aws:es:useast-1:555555555555:domain/logs/*" } ] }'
次の例は、以下の Amazon ES ドメイン設定を示しています。
• Elasticsearch バージョン 5.1 を使用して、weblogs という名前の Amazon ES ドメインを作成します。
• m4.xlarge.elasticsearch インスタンスタイプの 10 のインスタンスをドメインに追加する
• 専用マスターノードとして機能する m4.large.elasticsearch インスタンスタイプの 3 つのインスタンス
をドメインに追加する
• ストレージに 100 GB プロビジョンド IOPS EBS ボリュームを使用し、各データノードに 1000 IOPS の
ベースラインパフォーマンスを設定する
• アクセスを単一のユーザーと単一のサブリソース _search API に制限する
• インデックスの毎日の自動スナップショットを 03:00 UTC に設定する
aws es create-elasticsearch-domain --domain-name weblogs -elasticsearch-version 5.1 --elasticsearch-cluster-config
InstanceType=m4.xlarge.elasticsearch,InstanceCount=10,DedicatedMasterEnabled=true,DedicatedMasterType=
--ebs-options EBSEnabled=true,VolumeType=io1,VolumeSize=100,Iops=1000 --accesspolicies '{"Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal":
{ "AWS": "arn:aws:iam::555555555555:root" }, "Action": "es:*", "Resource":
"arn:aws:es:us-east-1:555555555555:domain/mylogs/_search" } ] }' --snapshot-options
AutomatedSnapshotStartHour=3
Note
Amazon ES ドメインを正常に作成した場合、同じ名前で別のドメインを作成する試みが CLI によ
り無視されます。CLI によりエラーは報告されません。
Amazon ES (AWS SDK) ドメインの作成
AWS SDK では (Android および iOS SDK を除く)、create-elasticsearch-domain も含めて、「Amazon
ES の設定 API リファレンス (p. 82)」で定義されたすべてのアクションがサポートされています。AWS
SDK のインストールと使用の詳細については、「AWS Software Development Kits」を参照してくださ
い。
Amazon ES ドメインの設定
以下のいずれかの変更によって Amazon ES ドメイン設定を更新し、増加するトラフィックやデータの需
要を満たします。
•
•
•
•
•
インスタンス数を変更する
インスタンスタイプを変更する
専用マスターノードを有効または無効にする
ゾーン対応を有効または無効にする
EBS ベースのストレージを設定する
• ドメインインデックスの自動スナップショットの開始時間を変更する
• ネイティブ Amazon ES プロパティを設定する
API Version 2015-01-01
21
Amazon Elasticsearch Service 開発者ガイド
Amazon ES ドメイン (コンソール) の設定
Note
ストレージに EBS ボリュームを使用するようにドメインを設定する方法については、「EBS
ベースのストレージの設定 (p. 25)」を参照してください。
Amazon ES ドメイン (コンソール) の設定
次の手順に従って、コンソールを使用することにより Amazon ES の設定を更新します。
Amazon ES ドメイン (コンソール) を設定するには
1.
https://aws.amazon.com にアクセスし、[Sign In to the Console] を選択します。
2.
[Analytics] で、[Elasticsearch Service] を選択します。
3.
ナビゲーションペインの [My domains] で、更新するドメインを選択します。
4.
[Configure cluster] を選択します。
5.
[Configure cluster] ページで、ドメインの設定を更新します。
クラスターは、Amazon ES を実行し、ドメインを操作するために必要な、1 つ以上のデータノード、
オプションの専用マスターノード、ストレージの集合です。
a.
データノードのインスタンスタイプを変更する場合、[Instance type] で新しいインスタンスタイ
プを選択します。
Amazon ES がサポートするインスタンスタイプのリストについては、「サポートされるインスタ
ンスタイプ (p. 76)」を参照してください。
Note
• t2.micro.elasticsearch インスタンスは、Elasticsearch バージョン 2.3 または 1.5
でのみサポートされます。
• M3 インスタンスタイプは、us-east-2、ca-central-1、eu-west-2、ap-northeast-2、apsouth-1 の各リージョンでは使用できません。
• I2 インスタンスタイプは、sa-east-1、ca-central-1、eu-west-2、us-east-2 の各リー
ジョンでは使用できません。
• R3 インスタンスタイプは、ca-central-1、eu-west-2、sa-east-1 の各リージョンでは使
用できません。
b.
インスタンス数を変更する場合、[Instance count] で 1 ~ 20 の整数を選択します。ドメインあ
たり 100 インスタンスへの引き上げをリクエストするには、AWS サポートセンターでサポート
ケースを作成してください。
c.
クラスターの安定性を高める場合や、ドメインの数が 10 より多い場合、クラスターで専用マス
ターノードを有効にします。詳細については、「専用マスターノードについて (p. 35)」を参照
してください。
i.
[Enable dedicated master] チェックボックスをオンにします。
ii.
[Dedicated master instance type] で、専用マスターノードのインスタンスタイプを選択しま
す。
データノードに選択したインスタンスタイプとは異なる専用マスターノードのインスタンス
タイプを選択できます。
Amazon ES がサポートするインスタンスタイプのリストについては、「サポートされるイン
スタンスタイプ (p. 76)」を参照してください。
iii.
[Dedicated master instance count] で、専用マスターノードのインスタンスの数を選択しま
API Version 2015-01-01
す。
22
Amazon Elasticsearch Service 開発者ガイド
Amazon ES ドメイン (AWS CLI) の設定
スプリットブレインの問題など、潜在的な Amazon ES の問題を防ぐため、インスタンス数
には奇数を選択することをお勧めします。デフォルトかつ推奨値は 3 です。
d.
ゾーン対応を有効にする場合、[Enable zone awareness] チェックボックスをオンにします。ゾー
ン対応を有効にした場合、インスタンス数を偶数にする必要があります。これにより、同じリー
ジョン内の 2 つのアベイラビリティーゾーンにまたがってシャードを均等に分散できるようにな
ります。
e.
サービスが Amazon ES ドメインのプライマリインデックスシャードの自動スナップショットを
毎日作成する時間を変更する場合、[Automated snapshot start hour] で整数を選択します。
f.
[Advanced options] を選択します。
i.
(オプション) ドメインのサブリソースへのアクセスを設定する場合、
[rest.action.multi.allow_explicit_index] で [false] を選択します。
このプロパティを無効にすると、ユーザーがサブリソースのアクセスコントロールをバイパ
スできなくなります。アクセスコントロールの詳細については、Elasticsearch ドキュメント
の「URL-based Access Control」を参照してください。サブリソースのためのアクセスポリ
シーについては、「Configuring Access Policies (p. 27)」を参照してください。
ii.
rest.action.multi.allow_explicit_index に false を選択します。
iii.
(オプション) [indices.fielddata.cache.size] で、フィールドデータキャッシュに割り当てる
ヒープスペースの割合を指定します。
デフォルトでは、この設定は unbounded です。フィールドデータキャッシュに関する詳細に
ついては、Elasticsearch ドキュメントの「Field Data 」を参照してください。
Note
多くのお客様が、ローテーションするインデックスのクエリを毎日実行していま
す。indices.fielddata.cache.size を使用してベンチマークテストを始めること
をお勧めします。このとき、ほとんどのケースでは JVM ヒープを 40% に設定して
ください。ただし、非常に大きいインデックスがある場合、さらに大きいフィール
ドデータキャッシュが必要になることがあります。
g.
[Submit] を選択します。
Amazon ES ドメイン (AWS CLI) の設定
AWS CLI を使用して Amazon ES サービスを設定するには、elasticsearch-cluster-config オプション
を使用します。create-elasticsearch-domain コマンドと update-elasticsearch-domain-config コマ
ンドの両方で次の構文が使用されます。
構文
--elasticsearch-cluster-config
InstanceType=<value>,InstanceCount=<value>,DedicatedMasterEnabled=<value>,DedicatedMasterType=<value>,
Note
同じオプションのパラメータ間に空白を含めないでください。
次の表では、パラメータについて詳しく説明します。
パラメータ
InstanceType
有効な値
説明
サポートされるすべて インスタンスをホストするコンピュー
のインスタンスタイプ. ターのハードウェア設定。デフォルトは
「サポートされるイン m4.large.elasticsearch です。
API Version 2015-01-01
23
Amazon Elasticsearch Service 開発者ガイド
Amazon ES ドメイン (AWS CLI) の設定
パラメータ
有効な値
説明
スタンスタイプ」を参
照してください。
InstanceCount
整数
Amazon ES ドメインのインスタンス数。デ
フォルトは 1、最大デフォルト制限は 20 で
す。ドメインあたり 100 インスタンスへの引
き上げをリクエストするには、AWS サポー
トセンターでサポートケースを作成してくだ
さい。
DedicatedMasterEnabled
true または false
Amazon ES ドメインに専用マスターノード
を使用するかどうかを指定します。 デフォル
ト値は false です。
DedicatedMasterType
サポートされるすべて
のインスタンスタイプ
マスターノードをホストするコンピュー
ターのハードウェア設定。デフォルトは
m4.large.elasticsearch です。
DedicatedMasterCount
整数
専用マスターノードに使用するインスタンス
の数。デフォルトは 3 です。
ZoneAwarenessEnabled
true または false
Amazon ES ドメインのゾーン対応を有効に
するかどうかを指定します。デフォルト値は
false です。
Note
• t2.micro.elasticsearch インスタンスは、Elasticsearch バージョン 2.3 または 1.5 でのみサ
ポートされます。
• M3 インスタンスタイプは、us-east-2、ca-central-1、eu-west-2、ap-northeast-2、ap-south-1
の各リージョンでは使用できません。
• I2 インスタンスタイプは、sa-east-1、ca-central-1、eu-west-2、us-east-2 の各リージョンでは
使用できません。
• R3 インスタンスタイプは、ca-central-1、eu-west-2、sa-east-1 の各リージョンでは使用できま
せん。
例
次の例では、m4.large.elasticsearch インスタンスタイプの 2 つのインスタンスが存在し、ゾーン対応が有
効になった Elasticsearch バージョン 5.1 で mylogs という名前の Amazon ES ドメインを作成します。
aws es create-elasticsearch-domain --domain-name mylogs -elasticsearch-version 5.1 --elasticsearch-cluster-config
InstanceType=m4.large.elasticsearch,InstanceCount=2,DedicatedMasterEnabled=false,ZoneAwarenessEnabled=
ただし、ネットワークトラフィックが増加し、ドキュメントの数量とサイズが増加するに伴って、新しい
Amazon ES ドメインを再設定する可能性があります。たとえば、大きいインスタンスタイプを使用して、
使用するインスタンスを増やし、専用マスターノードを有効にすることができます。次の例では、これら
の変更でドメイン設定を更新します。
aws es update-elasticsearch-domain-config --domain-name mylogs --elasticsearch-clusterconfig
InstanceType=m4.xlarge.elasticsearch,InstanceCount=3,DedicatedMasterEnabled=true,DedicatedMasterType=m
API Version 2015-01-01
24
Amazon Elasticsearch Service 開発者ガイド
Amazon ES (AWS SDK) ドメインの設定
Amazon ES (AWS SDK) ドメインの設定
AWS SDK では (Android および iOS SDK を除く)、update-elasticsearch-domain-config も含めて、
「Amazon ES の設定 API リファレンス (p. 82)」で定義されたすべてのアクションがサポートされてい
ます。AWS SDK のインストールと使用の詳細については、「AWS Software Development Kits」を参照し
てください。
EBS ベースのストレージの設定
Amazon EBS ボリュームは、1 つの インスタンスにアタッチできるブロックレベルのストレージボリュー
ムです。EBS ボリュームを使用すると、Amazon ES ドメインのストレージリソースをコンピューティン
グリソースから独立して拡張することができます。EBS ボリュームは、非常に大きいデータセットが存在
するが、大きいコンピューティングリソースが必要ないドメインに最も役立ちます。EBS ボリュームは、
インスタンスによって提供されるデフォルトのストレージよりかなり大きい容量を持ちます。Amazon
Elasticsearch Service では、以下の EBS ボリュームタイプがサポートされています。
• 汎用 (SSD)
• プロビジョンド IOPS (SSD)
• マグネティック
Note
EBS ボリュームをプロビジョンド IOPS から非プロビジョンド EBS ボリュームタイプに変更す
るときは、IOPS 値を 0 に設定します。
Caution
現在のところ、EBS ボリュームにアタッチされているデータノードに障害が発生した場合、EBS
ボリュームでも障害が発生します。
EBS ベースのストレージの設定 (コンソール)
次の手順に従って、コンソールを使用することで EBS ベースのストレージを有効にします。
EBS ベースのストレージを有効にするには (コンソール)
1.
https://aws.amazon.com にアクセスし、[Sign In to the Console] を選択します。
2.
3.
4.
[Analytics] で、[Elasticsearch Service] を選択します。
ナビゲーションペインの [My domains] で、設定するドメインを選択します。
[Configure cluster] を選択します。
5.
6.
[Storage type] で [EBS] を選択します。
[EBS volume type] で、EBS ボリュームタイプを選択します。
•
7.
EBS ボリュームタイプに [Provisioned IOPS (SSD)] を選択した場合、[Provisioned IOPS] に必要
なベースライン IOPS パフォーマンスを入力します。
[EBS volume size] に、EBS ボリュームに必要なサイズを入力します。
次の式 (データノードの数) * (EBS ボリュームサイズ) を使用して、Amazon ES ドメインの EBS ベー
スのストレージの合計量を計算します。EBS ボリュームのサイズは、指定された EBS ボリューム
タイプとそれがアタッチされるインスタンスタイプの両方によって異なります。Amazon ES ドメ
インでサポートされる EBS ボリュームの最小サイズと最大サイズについては、「EBS Volume Size
Limits (p. 112)」を参照してください。サポートされている EBS ボリュームのタイプとサイズの詳
細については、「EBS ベースのストレージの設定 (p. 25)」を参照してください。
API Version 2015-01-01
25
Amazon Elasticsearch Service 開発者ガイド
EBS ベースのストレージの設定 (AWS CLI)
8.
[Submit] を選択します。
Note
プロビジョンド IOPS EBS ボリュームの IOPS 値は、ボリュームの最大ストレージの 30 倍以下
に設定する必要があります。たとえば、ボリュームの最大サイズが 100 GB の場合、3000 を超え
る IOPS 値を割り当てることはできません。
詳細については、Amazon EC2 のドキュメントの「Amazon EBS ボリューム」を参照してください。
EBS ベースのストレージの設定 (AWS CLI)
AWS CLI を使用して EBS ベースのストレージを設定するには、--ebs-options オプションを使用しま
す。create-elasticsearch-domain コマンドと update-elasticsearch-domain-config コマンドの両方
で次の構文が使用されます。
構文
--ebs-options EBSEnabled=<value>,VolumeType=<value>,VolumeSize=<value>,IOPS=<value>
パラメータ
有効な値
説明
EBSEnabled
true または false
インスタンスにより提供されるストレージではなく、ス
トレージの EBS ボリュームを使用するかどうかを指定し
ます。デフォルト値は false です。
VolumeType
次のいずれかです。
Amazon ES ドメインで使用する EBS ボリュームタイ
プ。
• gp2 (汎用 SSD)
• io1 (プロビジョンド
IOPS SSD)
• standard (マグネ
ティック)
VolumeSize
整数
各データノードの EBS ボリュームのサイズを指定しま
す。EBS ボリュームの最小サイズと最大サイズは、指定
された EBS ボリュームタイプとそれがアタッチされるイ
ンスタンスタイプの両方によって異なります。各インス
タンスタイプの最小サイズと最大 EBS サイズを示す表に
ついては、「サービスの制限」を参照してください。
IOPS
整数
EBS ボリュームのベースライン I/O パフォーマンスを
指定します。このパラメータは、プロビジョンド IOPS
(SSD) ボリュームによってのみ使用されます。最小値は
1000、最大値は 16000 です。
Note
プロビジョンド IOPS EBS ボリュームの IOPS 値は、ボリュームの最大ストレージの 30 倍を超
える値に設定しないことをお勧めします。たとえば、ボリュームの最大サイズが 100 GB の場
合、3000 を超える IOPS 値を割り当てないでください。各ボリュームタイプのユースケースなど
の詳細については、Amazon EC2 のドキュメントの「Amazon EBS ボリュームの種類」を参照し
てください。
例
API Version 2015-01-01
26
Amazon Elasticsearch Service 開発者ガイド
EBS ベースのストレージの設定 (AWS SDK)
次の例では、10 GB の汎用 EBS ボリュームを使用して、Elasticsearch バージョン 5.1 の mylogs という名
前のドメインを作成します。
aws es create-elasticsearch-domain --domain-name=mylogs --elasticsearch-version 5.1 --ebsoptions EBSEnabled=true,VolumeType=gp2,VolumeSize=10
ただし、検索インデックスのサイズが大きくなり、さらに大きい EBS ボリュームが必要になる可能性があ
ります。たとえば、ベースライン I/O パフォーマンスが 3000 IOPS の 100 GB のプロビジョンド IOPS ボ
リュームを選択できます。次の例では、それらの変更でドメイン設定を更新します。
aws es update-elasticsearch-domain-config --domain-name=mylogs --ebs-options
EBSEnabled=true,VolumeType=io1,VolumeSize=100,IOPS=3000
EBS ベースのストレージの設定 (AWS SDK)
AWS SDK では (Android および iOS SDK を除く)、update-elasticsearch-domain-config コマンドの -ebs-options パラメータも含めて、「Amazon ES 設定 API リファレンス (p. 82)」で定義されたすべ
てのアクションがサポートされています。AWS SDK のインストールと使用の詳細については、「AWS
Software Development Kits」を参照してください。
アクセス ポリシーの設定
Amazon Elasticsearch Service には、Amazon ES ドメインへのアクセスを設定するいくつかの方法が用意
されています。コンソールには、ドメインの具体的なニーズに合わせてカスタマイズできる事前設定され
たアクセスポリシーと、他の Amazon ES ドメインからアクセスポリシーをインポートする機能がありま
す。 このサービスにより、きめ細かい別個のアクセスポリシーを各ドメインのサブリソースに指定するこ
ともできるようになります。たとえば、Amazon ES ドメイン内の各インデックスに異なるポリシーを割り
当てることができます。
アクセス設定方法
説明
リソースベースのアクセスポ
リシー
リソースベースのアクセスポリシーは、特定の Amazon ES ドメインに
アタッチされます。リソースベースのポリシーでは、ドメインのエンド
ポイントにアクセスできるユーザーを指定します。アクセスを許可され
たユーザーを指定するには、Principal ポリシーエレメントを使用しま
す。アクセス可能なリソースを指定するには、Resource ポリシーエレメ
ントを使用します。
IP ベースのポリシー
IP ベースのアクセスポリシーは、Amazon ES ドメインへのアクセス
を 1 つ以上の特定の IP アドレスに制限します。匿名アクセスを許可
するように IP ベースのポリシーを設定することもできます。これによ
り、未署名のリクエストを Amazon ES ドメインに送信できるようにな
ります。サービスへのアクセスが許可される IP アドレスを指定するに
は、Condition ポリシー要素を使用します。
IAM ユーザーとロールベース Amazon ES では、IAM ユーザーおよびロールに基づくアクセスポリシー
のアクセスポリシー
もサポートされます。サービスにアクセスできるユーザーおよびロール
と、それらのユーザーおよびロールが使用できるサブリソースを指定す
るには、IAM サービスを使用します。
アクセスポリシーの設定 (コンソール)
次の手順に従って、コンソールを使用してアクセスポリシーを設定します。
API Version 2015-01-01
27
Amazon Elasticsearch Service 開発者ガイド
アクセス ポリシーの設定 (AWS CLI)
アクセスポリシーを設定するには (コンソール)
1.
https://aws.amazon.com にアクセスし、[Sign In to the Console] を選択します。
2.
[Analytics] で、[Elasticsearch Service] を選択します。
3.
ナビゲーションペインの [My domains] で、更新するドメインを選択します。
4.
[Modify access policy] を選択します。
5.
アクセスポリシーを編集します。
または、[Select a template] ドロップダウンリストからいずれかのポリシーテンプレートを選択し、必
要に応じてドメイン用に編集することもできます。
6.
事前設定されたアクセスポリシー
説明
1 つ以上の AWS アカウントまたは
IAM ユーザーにアクセスを許可、また
は拒否する
このポリシーは、1 つ以上の AWS アカウントや IAM ユー
ザーへのアクセスを許可または拒否するために使用されま
す。
Allow open access to the domain
このポリシーでは、ドメイン内のインデックスとドキュメ
ントをだれでも削除、変更、またはアクセスできるため、
実際の使用はお勧めしません。このポリシーは、テスト専
用に用意されたものです。これらの設定を適用したドメイ
ンに、機密データをロードしないでください。
Deny access to the domain
このポリシーでは、Amazon ES コンソールを通じたアク
セス、またはドメインを作成した AWS アカウントの所有
者によるアクセスのみ許可されます。
Allow access to the domain from
specific IP(s)
このポリシーは、特定の IP アドレスまたは IP アドレスの
範囲への匿名アクセスを制限するために使用されます。
Copy access policy from another
domain
このポリシーは、他のドメインから既存のアクセスポリ
シーをインポートする際に役立ちます。
[Submit] を選択します。
アクセス ポリシーの設定 (AWS CLI)
AWS CLI を使用してアクセスポリシーを設定するには、--access-policies オプションを使用しま
す。create-elasticsearch-domain コマンドと update-elasticsearch-domain-config コマンドの両方
で次の構文が使用されます。
構文
--access-policies=<value>
パラメータ
--accesspolicies
有効な値
説明
JSON
Amazon ES ドメインのアクセスポリシーを指定します。
Amazon Elasticsearch Service は、「IAM ポリシーエレメントの参照」で説明されているすべてのポリ
シーエレメントをサポートしています。 次の表は、最も一般的なエレメントを示しています。
API Version 2015-01-01
28
Amazon Elasticsearch Service 開発者ガイド
アクセス ポリシーの設定 (AWS CLI)
有効な値
JSON ポリ
シーエレメ
ント
ポリシー言語の最新バージョンは 2012-10-17 です。すべて
のアクセスポリシーでこの値を指定する必要があります。
Version
Allow または Deny
Effect
任意の文字列
Sid
Amazon ES では、HTTP メソッドとして次のアクションが
サポートされています。各 HTTP メソッドに別個のアクセス
ポリシーをアタッチできます。
Action
• es:ESHttpDelete
• es:ESHttpGet
• es:ESHttpHead
• es:ESHttpPost
• es:ESHttpPut
説明
アクセスポリシーの言語
バージョンを指定しま
す。
指定されたアクションへ
のアクセスをステートメ
ントが許可するかブロッ
クするかを指定します。
ポリシーステートメント
のわかりやすい名前。こ
のフィールドはオプショ
ンです。
アクセスポリシーが適用
される Amazon ES アク
ションを指定します。
任意の HTTP メソッド
を使用したドメインエ
ンドポイントへのフルア
クセスが許可されるよう
に、"Action":"es:*" の
値を割り当てます。
Amazon ES では、サービス設定 API の以下のアクションも
サポートされています。
• es:CreateElasticsearchDomain
• es:DescribeElasticsearchDomain
• es:DescribeElasticsearchDomains
• es:DescribeElasticsearchDomainConfig
• es:DeleteElasticsearchDomain
• es:ListDomainNames
• es:AddTags
• es:ListTags
• es:RemoveTags
• es:UpdateElasticsearchDomainConfig
各 API および各 API に必要な HTTP リクエストメソッド
の説明については、「Amazon ES 設定 API リファレン
ス (p. 82)」を参照してください。
Amazon ES のドメインリソースを指定するには、次の構文
を使用します。
arn:aws:es:<region>:<aws_account_id>:domain/<domainname>/<sub-resource>
API Version 2015-01-01
29
Resource
アクセスポリシーが適用
される特定のオブジェク
トを指定します。
Amazon Elasticsearch Service 開発者ガイド
アクセス ポリシーの設定 (AWS CLI)
有効な値
JSON ポリ
シーエレメ
ント
説明
すべてのサブリソースへのアクセスを許可または拒否するに
は、サブリソースとしてワイルドカード (*) を指定します。
arn:aws:es:<region>:<aws_account_id>:domain/<domainname>/*
特定のサブリソースへのすべてのアクセスを許可または拒否
するには、次の構文を使用します。
arn:aws:es:<region>:<aws_account_id>:domain/<domainname>/<sub-resource>/*
Amazon ES では、インデックスなど、各サブリソースに異
なるアクセスポリシーを定義できます。各 Amazon ES API
に異なるアクセスポリシーを定義することもできます。たと
えば、アクセス権限付与の範囲を Amazon ES _search API
のみに制限できます。
arn:aws:es:us-east-1:<account-id>:domain/weblogs/
_search
Amazon ES では、IAM の使用ガイドの「Available Global
Condition Keys」で説明されているすべての条件がサポート
されています。
Condition
アクセスポリシーが有効
になるタイミングを判断
する条件を指定します。
匿名の IP ベースのアク
セスを設定する場合、
アクセスルールを適用す
る IP アドレスを指定し
ます。例: "IpAddress":
{"aws:SourceIp":
["192.0.2.0/32"]}。
次のいずれかです。
Principal
• 別の AWS アカウント
"Principal":{"AWS":
["arn:aws:iam::<aws_account_id>:root"]}
• IAM ユーザー
"Principal":{"AWS":
[arn:aws:iam::<aws_account_id>:user/<username>}
リソースへのアクセスを
許可または拒否する AWS
アカウントまたは IAM
ユーザーを指定します。
ワイルドカード (*) を指
定するとドメインへの匿
名アクセスが可能になる
ため、推奨されません。
匿名アクセスを有効にす
る場合、Amazon ES ドメ
インにリクエストを送信
できる IP アドレスを制限
する IP ベースの条件を追
加することを強くお勧め
します。
詳細については、IAM ポ
リシーエレメントの参
照の「プリンシパル」を
参照してください。
リソースベースのポリシーの例
API Version 2015-01-01
30
Amazon Elasticsearch Service 開発者ガイド
アクセスポリシーの設定 (AWS SDK)
リソースベースのアクセスポリシーの次の例では、サービスへのアクセスが、Principal ポリシーエレメ
ントにおいてユーザーの AWS アカウント ID 555555555555 により識別される単一のユーザーに制限され
ます。このユーザーには、index1 ドメインのサブリソースへのアクセスが許可されますが、ドメインの他
のインデックスにはアクセスできません。
aws es update-elasticsearch-domain-config --domain-name mylogs --access-policies
'{"Version": "2012-10-17", "Statement": [ { "Effect": "Allow","Principal": {"AWS":
"arn:aws:iam::123456789012:root" },"Action":"es:*","Resource":"arn:aws:es:useast-1:555555555555:domain/index1/*" } ] }'
IP ベースのポリシーの例
IP ベースのアクセスポリシーの次の例では、匿名アクセスが許可されますが、そのアクセスが単一の IP
アドレス範囲に制限されます。
aws es update-elasticsearch-domain-config --domain-name mylogs
--access-policies '{"Version": "2012-10-17","Statement":
[{"Action":"es:*","Principal":"*","Effect":"Allow","Condition": {"IpAddress":
{"aws:SourceIp":["192.0.2.0/32"]}}}]}'
IAM ベースのポリシーの例
Amazon ES コンソールではなく AWS IAM コンソールを使用して IAM ベースのアクセスポリシーを作成
します。IAM ベースのアクセスポリシーの作成については、IAM のドキュメントを参照してください。
アクセスポリシーの設定 (AWS SDK)
AWS SDK では (Android および iOS SDK を除く)、update-elasticsearch-domain-config コマンドの -access-policies パラメータも含めて、「Amazon ES 設定 API リファレンス (p. 82)」で定義されたす
べてのアクションがサポートされています。AWS SDK のインストールと使用の詳細については、「AWS
Software Development Kits」を参照してください。
スナップショットの設定
Amazon Elasticsearch Service では、ドメインのプライマリインデックスシャードとレプリカシャードの
数の自動スナップショットが毎日作成されます。デフォルトでは、サービスは深夜 0 時に自動スナップ
ショットを作成しますが、別の時間を選択できます。
Caution
クラスターの状態が RED の間、サービスは Amazon ES インデックスのスナップショット作成
を停止します。RED のクラスターでそれ以降インデックスにアップロードされた内容は、イン
デックスのヘルスステータスが GREEN であっても、スナップショットが中止されたためにクラ
スターの障害時に失われる可能性があります。データが失われるのを防ぐには、クラスター内の
インデックスに追加データをアップロードする前にクラスターの状態を GREEN に戻します。
スナップショットの設定 (コンソール)
次の手順に従って、コンソールを使用して毎日の自動インデックススナップショットを設定します。
自動スナップショットを設定するには
1.
https://aws.amazon.com にアクセスし、[Sign In to the Console] を選択します。
2.
[Analytics] で、[Elasticsearch Service] を選択します。
API Version 2015-01-01
31
Amazon Elasticsearch Service 開発者ガイド
スナップショットの設定 (AWS CLI)
3.
ナビゲーションペインの [My domains] で、更新するドメインを選択します。
4.
[Configure cluster] を選択します。
5.
[Automated snapshot start hour] で、サービスが自動スナップショットを作成する新しい時間を選択し
ます。
6.
[Submit] を選択します。
スナップショットの設定 (AWS CLI)
--snapshot-options オプションには次の構文を使用します。オプションの構文は、createelasticsearch-domain コマンドと update-elasticsearch-domain-config コマンドのどちらでも同じで
す。
構文
--snapshot-options AutomatedSnapshotStartHour=<value>
パラメータ
有効な値
説明
AutomatedSnapshotStartHour
0 から 23 まで
の整数
サービスが新しいドメインでインデックスの
自動スナップショットを毎日実行する時間
(UTC) を指定します。デフォルト値は 0、つ
まり深夜 0 時です。これは、スナップショッ
トが深夜 0 時から午前 1 時までのどこかで作
成されることを意味します。
例
次の例では、自動スナップショットを 01:00 UTC に設定します。
aws es update-elasticsearch-domain-config --domain-name mylogs --region us-east-1 -snapshot-options AutomatedSnapshotStartHour=1
スナップショットの設定 (AWS SDK)
AWS SDK では (Android および iOS SDK を除く)、「Amazon ES の設定 API リファレンス (p. 82)」
で定義されたすべてのアクションがサポートされています。これには、update-elasticsearch-domainconfig コマンドへの --snapshots-options パラメーターが含まれます。AWS SDK のインストールと使
用の詳細については、「AWS Software Development Kits」を参照してください。
詳細オプションの設定
詳細オプションを使用して、次のように設定します。
rest.action.multi.allow_explicit
HTTP リクエスト本文中で、インデックスへの明示参照を許可するかどうかを指定します。特定の
インデックスやドメイン API など、ドメインのサブリソースのアクセスポリシーを設定する場合、
このプロパティを無効にする必要があります。詳細については、「URL-based Access Control」
を参照してください。サブリソースのためのアクセスポリシーについては、「Configuring Access
Policies (p. 27)」を参照してください。
API Version 2015-01-01
32
Amazon Elasticsearch Service 開発者ガイド
詳細オプションの設定 (コンソール)
indices.fielddata.cache.size
フィールドデータに割り当てられる Java ヒープスペースの割合を指定します。デフォルトでは、こ
の設定は unbounded です。
詳細オプションの設定 (コンソール)
次の手順に従って、リクエスト本文でインデックスを明示的に参照して HTTP リクエストの処理を無効に
します。デフォルトでは、値は true に設定されます。
詳細オプションを設定するには (コンソール)
1.
https://aws.amazon.com にアクセスし、[Sign In to the Console] を選択します。
2.
[Analytics] で、[Elasticsearch Service] を選択します。
3.
ナビゲーションペインの [My domains] で、更新するドメインを選択します。
4.
[Configure cluster] を選択します。
5.
[Advanced options] を選択します。
6.
rest.action.multi.allow_explicit_index で false を選択し、HTTP リクエストの本文におけるイ
7.
indices.fielddata.cache.size に、フィールドデータキャッシュに割り当てる Java ヒープスペース
ンデックスの明示的な参照を無効にします。
の割合を入力します。
デフォルトでは、この設定は unbounded です。フィールドデータキャッシュに関する詳細について
は、Elasticsearch ドキュメントの「Field Data」を参照してください。
Note
多くのお客様が、ローテーションするインデックスのクエリを毎日実行していま
す。indices.fielddata.cache.size を使用してベンチマークテストを始めることをお勧め
します。このとき、ほとんどのユースケースでは JVM ヒープを 40% に設定してください。
ただし、非常に大きいインデックスがある場合、さらに大きいフィールドデータキャッシュ
が必要になることがあります。
8.
[Submit] を選択します。
詳細オプションの設定 (AWS CLI)
--advanced-options オプションには次の構文を使用します。オプションの構文は、createelasticsearch-domain コマンドと update-elasticsearch-domain-config コマンドのどちらでも同じで
す。
構文
--advanced-options rest.action.multi.allow_explicit=<true|false>,
indices.fielddata.cache.size=<percentage_heap>
パラメータ
有効な値
説明
--advancedoptions
rest.action.multi.allow_explicit=<true|
false>,
API Version 2015-01-01
33
HTTP リクエスト本文で、イン
デックスの明示的な参照を許可
するかどうかを指定します。この
ような参照は、HTTP リクエスト
URL では常に許可されます。個々
のサブリソースへのアクセスを設
Amazon Elasticsearch Service 開発者ガイド
詳細オプションの設定 (AWS SDK)
パラメータ
有効な値
説明
定する場合は false にする必要が
あります。デフォルトでは、値は
true に設定されます。
indices.fielddata.cache.size=<percentage_heap>
フィールドデータキャッシュに割
り当てるヒープスペースの割合を
指定します。デフォルトでは、こ
の設定は unbounded です。
Note
多くのお客様が、ローテーションするインデックスのクエリを毎日実行していま
す。indices.fielddata.cache.size を使用してベンチマークテストを始めることをお勧めしま
す。このとき、ほとんどのユースケースでは JVM ヒープを 40% に設定してください。ただし、
非常に大きいインデックスがある場合、さらに大きいフィールドデータキャッシュが必要になる
ことがあります。
例
次の例では、HTTP リクエスト本文でのインデックスの明示的な参照を無効にし、フィールドデータ
キャッシュを合計 Java ヒープの 40% に制限します。
aws es update-elasticsearch-domain-config --domain-name mylogs --region useast-1 --advanced-options rest.action.multi.allow_explicit_index=false,
indices.fielddata.cache.size=40
詳細オプションの設定 (AWS SDK)
AWS SDK では (Android および iOS SDK を除く)、update-elasticsearch-domain-config コマンドの -advanced-options パラメータも含めて「Amazon ES 設定 API リファレンス (p. 82)」で定義されたす
べてのアクションがサポートされています。AWS SDK のインストールと使用の詳細については、「AWS
Software Development Kits」を参照してください。
API Version 2015-01-01
34
Amazon Elasticsearch Service 開発者ガイド
専用マスターノードについて
Amazon Elasticsearch Service ドメイ
ンの管理
Amazon Elasticsearch Service (Amazon ES) ドメイン内のドキュメントサイズが大きくなり、数が増える
につれ、また、ネットワークトラフィックが増大するにつれて、Elasticsearch クラスターの設定の更新が
必要になる場合があります。ドメインを再設定する時期を把握するには、ドメインメトリクスを監視する
必要があります。独自のインデックススナップショットを管理する、ドメインに対するデータ関連の API
呼び出しを監査する、ドメインにタグを割り当てる、という選択肢もあります。サービスから提供される
Logstash プラグインを使用して、一括でデータをドメインに読み込めます。ここでは、これらのタスク
や、ドメインの管理に関連する他のタスクを実行する方法を説明します。
• 専用マスターノードについて (p. 35)
• ゾーン対応の有効化 (p. 38)
• 手動インデックススナップショットの使用 (p. 39)
• Amazon CloudWatch を使用した、クラスターメトリクスと統計情報の監視 (p. 44)
• AWS CloudTrail を使用したドメインの監査 (p. 50)
• Kibana を使用したデータの可視化 (p. 52)
• Logstash プラグインを使用した、データの一括読み込み (p. 53)
• Amazon Elasticsearch Service リクエストの署名 (p. 54)
• Amazon Elasticsearch Service ドメインのタグ付け (p. 55)
専用マスターノードについて
Amazon Elasticsearch Service (Amazon ES) は、クラスターの安定性を向上するために専用マスターノー
ドを使用します。専用マスターノードは、クラスター管理タスクを実行するクラスターノードですが、
データを保持したりデータのアップロードリクエストに応答したりはしません。このように、クラスター
管理タスクをオフロードすると、Elasticsearch クラスターの安定性が向上します。
Note
製品内の各 Amazon ES ドメインに、3 つの専用マスターノードを割り当てることを推奨します。
API Version 2015-01-01
35
Amazon Elasticsearch Service 開発者ガイド
専用マスターノードについて
専用マスターノードは次のクラスター管理タスクを実行します:
• クラスター内のすべてのノードを追跡する
• クラスター内のインデックスの数を追跡する
• 各インデックスに属するシャードの数を追跡する
• クラスター内のノードのルーティング情報を維持
• クラスター内のインデックス作成やノードの作成/削除など、状態が変化した後に、クラスターの状態を
更新する
• クラスターの状態に施された変更を、クラスター内のすべてのノードにわたって複製する
• クラスター内のデータノードの可用性を監視するハートビートシグナル (定期的なシグナル) の送信によ
り、すべてのクラスターノードの状態を監視する
次の図は、10 のインスタンスを持つ Amazon ES ドメインを表しています。インスタンスのうち 7 つは
データノードで、3 つは専用マスターノードです。専用マスターノードのうち、1 つのみがアクティブ
で、グレーの専用マスターノード 2 つは、アクティブな専用マスターノードが失敗したときのために、
バックアップとして待機します。すべてのデータアップロードリクエストは、7 つのデータノードにより
保存され、すべてのクラスター管理タスクは、アクティブな専用マスターノードにオフロードされます。
専用マスターインスタンスは検索およびクエリリクエストを処理しませんが、そのサイズは管理可能なイ
ンスタンス、インデックス、シャードの数と大きな相関があります。実稼働用クラスターでは、専用マ
スターインスタンスには以下のサイズをお勧めします。これらの推奨事項は、サービスの一般的なワーク
ロードに基づいているため、ワークロード要件により異なります。
API Version 2015-01-01
36
Amazon Elasticsearch Service 開発者ガイド
専用マスターノードについて
Instance Count
推奨される最小専用マスターインスタンス
5–10
m3.medium.elasticsearch
M3 インスタンスタイプは、us-east-2、cacentral-1、eu-west-2、ap-northeast-2、ap-south-1
の各リージョンでは使用できません。
10–20
m4.large.elasticsearch
20–50
c4.xlarge.elasticsearch
デフォルトの制限は、ドメインあたり 20 インスタ
ンスです。ドメインあたり 100 インスタンスへの
引き上げをリクエストするには、AWS サポートセ
ンターでサポートケースを作成してください。
50–100
c4.2xlarge.elasticsearch
デフォルトの制限は、ドメインあたり 20 インスタ
ンスです。ドメインあたり 100 インスタンスへの
引き上げをリクエストするには、AWS サポートセ
ンターでサポートケースを作成してください。
vCPU、メモリ、料金表など、インスタンスタイプの詳細については、「Amazon Elasticsearch Instance
Prices」を参照してください。
さらに、Amazon ES はドメイン更新オペレーション (設定の変更やソフトウェア更新の実行など) を実行
するときに、Blue/Green デプロイプロセスを使用します。ドメインがこの状態にあるとき、ドメインのス
テータスは処理中です。専用マスターに、Blue/Green 更新に関連付けられた管理オーバーヘッドを処理す
るための十分なキャパシティーを維持することが重要です。
専用マスターノードに過度な負荷がかかることを防ぐため、次の表に表示される Amazon CloudWatch メ
トリクスを使用して、使用率を監視できます。これらのメトリクスが、それぞれの最大値に達した場合、
より大きなインスタンスタイプを使用します。
CloudWatch メトリクス
ガイドライン
MasterCPUUtilization
専用マスターノードの CPU 使用率 (%) を計測します。ドメインのス
テータスがアクティブのときにこのメトリックスが 40% を超え、ドメ
インのステータスが処理中のときに 60% を超える場合、インスタンス
タイプのサイズを大きくすることをお勧めします。
MasterJVMMemoryPressure
専用マスターノードの JVM メモリ使用率 (%) を計測します。ドメイン
のステータスがアクティブのときにこのメトリックスが 60% を超え、
ドメインのステータスが処理中のときに 85% を超える場合、インスタ
ンスタイプのサイズを大きくすることをお勧めします。
詳細については、次のトピックを参照してください。
• Amazon ES ドメインの設定 (p. 21)。ここには、専用マスターノードを Elasticsearch クラスターに追加
する方法が記載されています。
• Amazon ES コンソールに統合された CloudWatch メトリックスの監視について詳しくは、「Monitoring
Cluster Metrics and Statistics with Amazon CloudWatch (p. 44)」に関する記述を参照してください。
• 専用マスターノードに関する詳細は、Elasticsearch ドキュメントの、「専用マスターノードの弾力性」
を参照してください。
API Version 2015-01-01
37
Amazon Elasticsearch Service 開発者ガイド
ゾーン対応 (コンソール) の有効化
ゾーン対応 (コンソール) の有効化
それぞれの AWS リージョンは地理別に分類された地域であり、アベイラビリティーゾーンと呼ばれる
複数の独立したロケーションを持っています。ノードまたはデータセンターの障害時にデータの損失を
防ぎ、ダウンタイムを最小限に抑えるには、Amazon ES コンソールを使用し、同じリージョンの 2 つの
アベイラビリティーゾーンに対して、Elasticsearch クラスターに属するノードとレプリカインデックス
シャードを割り当てることができます。この割り当ては、ゾーン対応と呼ばれます。ゾーン対応を有効に
する場合、ネイティブ Elasticsearch API を使用してクラスターのレプリカシャードを作成する必要があり
ます。Amazon ES はアベイラビリティーゾーン全体のノードにレプリカを分散し、クラスターの可用性を
向上します。クラスターのゾーン対応を有効にすると、ネットワークレイテンシーが少し長くなります。
Important
ゾーン対応では、インスタンス数を偶数にする必要があります。すべてのインデックスのデフォ
ルト設定で、レプリカの数は 1 つです。インデックスに対してレプリカの数を 0 に指定する場
合、ゾーン対応は 2 番目のアベイラビリティーゾーンにシャードを複製しません。シャードを複
製しない場合、2 番目のアベイラビリティーゾーンに分散するレプリカがなく、機能を有効にし
てもデータ損失を防げません。
次の図では、ゾーン対応が有効な 4 ノードクラスターを表しています。サービスは、すべてのプライマリ
インデックスシャードを 1 つのアベイラビリティゾーンに配置し、すべてのレプリカシャードを 2 番目の
アベイラビリティゾーンに配置します。
ゾーン対応 (コンソール) を有効にするには
1.
2.
https://aws.amazon.com にアクセスし、[Sign In to the Console] を選択します。
[Analytics] で、[Elasticsearch Service] を選択します。
API Version 2015-01-01
38
Amazon Elasticsearch Service 開発者ガイド
手動インデックススナップショットの使用 (AWS CLI)
3.
ナビゲーションペインにある、[My domains] で、Amazon ES ドメインを選択します。
4.
[Configure cluster] を選択します。
5.
[Node configuration] ペインで、[Enable zone awareness] を選択します。
6.
[Submit] を選択します。
詳細については、EC2 ドキュメントの「リージョンとアベイラビリティーゾーン」を参照してください。
手動インデックススナップショットの使用 (AWS
CLI)
「スナップショットの設定 (p. 31)」で説明したように、Amazon Elasticsearch Service (Amazon ES) は毎
日、Amazon ES ドメインでプライマリインデックスのシャードのスナップショットを撮ります。ただし、
自動スナップショットを使用して Amazon ES ドメインを復元するには、AWS サポートチームに連絡す
る必要があります。より大きな柔軟性が必要な場合は、手動でスナップショットを撮影し、撮影されたス
ナップショットをスナップショットリポジトリである Amazon S3 バケットで管理することもできます。
手動でスナップショットを撮ると、Amazon ES ドメイン全体のデータを移行して、障害から復旧する便利
な方法を利用できます。詳細については、Elasticsearch のドキュメントの「スナップショットと復元」を
参照してください。サービスは、Amazon ES ドメインと自己管理型の Elasticsearch クラスターの両方で
撮影された手動スナップショットから、インデックスを復元して新しいインデックスを作成するためのサ
ポートを提供します。
手動スナップショットでは、AWS サポートが最新の自動スナップショットから復元するのを待たずに、
自分で赤のクラスターサービスエラー (p. 68)に対処することもできます。スナップショットリポジト
リは、一意の名前で識別された、複数のスナップショットを保持できます。手動インデックススナップ
ショットの詳細な説明については、Elasticsearch ドキュメントの「スナップショットと復元」を参照して
ください。
Note
Amazon ES ドメインに赤のクラスター (p. 68)エラーが発生した場合、AWS サポートチームが
連絡して、お手元の手動インデックススナップショットを使用して問題に対処するか、サポート
チームにドメインの最新の自動スナップショットの復元を依頼するかを尋ねる場合があります。7
日以内に応答がない場合、AWS サポートは最新の自動スナップショットを復元します。
• スナップショット前提条件 (p. 39)
• スナップショットディレクトリの登録 (p. 41)
• 手動スナップショットの撮影 (p. 42)
• 手動スナップショットの復元 (p. 43)
スナップショット前提条件
インデックススナップショットを手動で作成するには、IAM および Amazon S3 を使用して作業する必要
があります。スナップショットの撮影を試す前に、次の前提条件を満たしていることを確認します。
前提条件
説明
S3 バケット
Amazon ES ドメインの手動スナップショットを保存します。詳細については、
『Amazon S3 入門ガイド』の「バケットの作成」を参照してください。
API Version 2015-01-01
39
Amazon Elasticsearch Service 開発者ガイド
スナップショット前提条件
前提条件
説明
IAM ロール
Amazon Elasticsearch Service に権限を委任します。ロールの信頼関係は、Principal
ステートメントで Amazon Elasticsearch Service を指定する必要があります。ロールタ
イプは、Amazon EC2 である必要があります。手順については、IAM ドキュメントの
「AWS のサービスにアクセス許可を委任するロールの作成」を参照してください。IAM
ロールは、Amazon ES でスナップショットリポジトリを登録するためにも必要です。
このロールへのアクセスを持つ IAM ユーザーのみ、スナップショットリポジトリを登録
できます。詳細については、「スナップショットリポジトリの登録 (p. 41)」を参照
してください。
IAM ポリシー
Amazon S3 が S3 バケットで実行できるアクションを指定します。このポリシー
は、Amazon Elasticsearch Service に権限を委任する IAM ロールに添付する必要があり
ます。このポリシーは、Resource ステートメントに S3 バケットを指定する必要があり
ます。詳細については、『IAM の使用』の「カスタマー管理ポリシーの作成」と「管理
ポリシーのアタッチ」を参照してください。
S3 バケット
手動スナップショットを保存する S3 バケットの Amazon リソースネーム (ARN) を書きとめておきます。
これは、以下に必要になります。
• IAM ロールにアタッチされた IAM ポリシーの Resource ステートメント
• スナップショットリポジトリの登録に使用する Python クライアント
次の例では、S3 バケットの ARN を表します。
arn:aws:s3:::es-index-backups
詳細については、『Amazon S3 入門ガイド』の「バケットの作成」を参照してください。
IAM ロール
次の例にあるように、ロールはその信頼関係のなかで Service ステートメントの Amazon Elasticsearch
Service、es.amazonaws.com, を指定する必要があります。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "es.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
Note
このロールへのアクセスを持つ IAM ユーザーのみ、スナップショットリポジトリを登録できま
す。
手順については、『IAM 使用ガイド』の「AWS のサービスにアクセス許可を委任するロールの作成」を参
照してください。
API Version 2015-01-01
40
Amazon Elasticsearch Service 開発者ガイド
スナップショットディレクトリの登録
IAM ポリシー
IAM ポリシーは、ロールにアタッチする必要があります。ポリシーは、Amazon ES ドメイン用に手動
スナップショットを保存するために使用する S3 バケットを指定する必要があります。次の例では、esindex-backups バケットの ARN を指定します。
{
"Version":"2012-10-17",
"Statement":[
{
"Action":[
"s3:ListBucket"
],
"Effect":"Allow",
"Resource":[
"arn:aws:s3:::es-index-backups"
]
},
{
"Action":[
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject",
"iam:PassRole"
],
"Effect":"Allow",
"Resource":[
"arn:aws:s3:::es-index-backups/*"
]
}
]
}
手順については、『IAM の使用』の「カスタマー管理ポリシーの作成」と「管理ポリシーのアタッチ」を
参照してください。
スナップショットディレクトリの登録
新しいロールへのアクセスを持つ IAM ユーザーは、手動インデックススナップショットを撮る前
に、Amazon Elasticsearch Service を使用してスナップショットディレクトリを登録する必要がありま
す。この 1 回限りのオペレーションには、Amazon ES に権限を委任した IAM ロールで、ご自分の AWS
リクエストに署名することが必要です。
Note
curl は AWS リクエスト署名をサポートしていないため、これを使用してこのオペレーションを
実行することはできません。その代わり、スナップショットディレクトリの登録には Python クラ
イアントのサンプリングを使用します。
Python クライアントのサンプリング
次のサンプルの Python コードを、snapshot.py などの Python ファイルとして保存します。サービス
でスナップショットのディレクトリを登録する操作は、1 回限りです。「手動スナップショットの撮
影 (p. 42)」で説明したように、curlを使用して後続のスナップショットを撮影できます。
サンプルコードで、次を更新する必要があります。
region
スナップショットリポジトリを作成した AWS リージョン
API Version 2015-01-01
41
Amazon Elasticsearch Service 開発者ガイド
手動スナップショットの撮影 (AWS CLI)
endpoint
Amazon ES ドメインのエンドポイント。
aws_access_key_id
IAM 認証情報
aws_secret_access_key
IAM 認証情報
path
スナップショットリポジトリの場所
Note
Python クライアントでは、スナップショットリポジトリを登録するコンピュータに boto パッ
ケージのバージョン 2.x をインストールする必要があります。
from boto.connection import AWSAuthConnection
class ESConnection(AWSAuthConnection):
def __init__(self, region, **kwargs):
super(ESConnection, self).__init__(**kwargs)
self._set_auth_region_name(region)
self._set_auth_service_name("es")
def _required_auth_capability(self):
return ['hmac-v4']
if __name__ == "__main__":
client = ESConnection(
region='us-east-1',
host='search-weblogs-etrt4mbbu254nsfupy6oiytuz4.us-east-1.es.example.com',
aws_access_key_id='my-access-key-id',
aws_secret_access_key='my-access-key', is_secure=False)
print 'Registering Snapshot Repository'
resp = client.make_request(method='POST',
path='/_snapshot/weblogs-index-backups',
data='{"type": "s3","settings": { "bucket": "es-index-backups","region": "useast-1","role_arn": "arn:aws:iam::123456789012:role/MyElasticsearchRole"}}')
body = resp.read()
print body
手動スナップショットの撮影 (AWS CLI)
スナップショットを作成する際、2 つの情報を指定する必要があります。
• スナップショットリポジトリの名前
• スナップショットの名前
スナップショットを手動で撮影するには (AWS CLI)
•
次のコマンドを実行して、手動でスナップショットを撮ります。
API Version 2015-01-01
42
Amazon Elasticsearch Service 開発者ガイド
手動スナップショットの復元 (AWS CLI)
curl -XPUT 'http://<Elasticsearch_domain_endpoint>/
_snapshot/snapshot_repository/snapshot_name'
次の例は、snapshot_1 というスナップショットを撮り、weblogs-index-backupsスナップショットリポジ
トリ
curl -XPUT 'http://<Elasticsearch_domain_endpoint>/_snapshot/weblogs-index-backups/
snapshot_1'
に保存します。
Note
Amazon ES ドメインの容量が大きくなると、スナップショットの撮影に必要な時間は長く
なります。長時間実行しているスナップショット操作では、通常次のエラーが発生していま
す。BotoServerError: 504 GATEWAY_TIMEOUT通常、このエラーは無視して、操作が正常に完了
するのを待ってかまいません。次のコマンドを使用して、ドメインのすべてのスナップショット
の状態を確認します。
curl -XGET 'http://<Elasticsearch_domain_endpoint>/_snapshot/<snapshot_repository>/
_all?pretty'
手動スナップショットの復元 (AWS CLI)
スナップショットを復元するには、次の手順を実行します。
スナップショットを手動で復元するには (AWS CLI)
1.
Amazon ES ドメイン内のすべてのオープンインデックスを削除または名前変更します。
復元するインデックスと同じ名前のインデックスがすでにある Elasticsearch クラスターには、イン
デックスのスナップショットを復元できません。現在、Amazon ES は Elasticsearch _close API をサ
ポートしていないため、代替手段として、次のうちいずれかを使用する必要があります。
• 同じ Amazon ES ドメインにあるインデックスを削除して、スナップショットを復元する
• 異なる Amazon ES ドメインにスナップショットを復元する
次のレデイは、weblogs の既存のインデックスを削除する方法について説明しています。
curl -XDELETE 'http://search-weblogs-abcdefghijklmnojiu.us-east-1.example.com/_all'
2.
スナップショットを復元するには、次のコマンドを実行します。
curl -XPOST 'http://<Elasticsearch_domain_endpoint>/
_snapshot/snapshot_repository/snapshot_name/_restore'
次の例では、weblogs-index-backupsスナップショットリポジトリ
curl -XPOST 'http://search-weblogs-abcdefghijklmnojiu.us-east-1.example.com/_snapshot/
weblogs-index-backups/snapshot_1/_restore'
から snapshot_1 を復元しています。
API Version 2015-01-01
43
Amazon Elasticsearch Service 開発者ガイド
Amazon CloudWatch を使用した、クラス
ターメトリクスと統計情報の監視 (コンソール)
Amazon CloudWatch を使用した、クラスターメト
リクスと統計情報の監視 (コンソール)
Elasticsearch クラスターは、Elasticsearch を実行し、Amazon ES ドメインを操作するために必要な、1
つ以上のデータノード、オプションの専用マスターノード、ストレージの集合です。Elasticsearch クラ
スターの各ノードは、パフォーマンスメトリクスを Amazon CloudWatch に 1 分間隔で自動的に送信し
ます。これらの、無料提供のメトリクスを表示するには、Amazon Elasticsearch Service コンソールの
[Monitoring] タブを使用します。
統計からは、各メトリクスに対する、幅広い情報が得られます。たとえば、クラスター内のすべてのノー
ドの CPU の平均使用率を算出するには、CPUUtilization メトリクスの Average 統計を表示します。メト
リクスはそれぞれ、3 つのカテゴリのうちのどれかに分けられます。
• クラスターメトリクス (p. 44)
• 専用マスターノードメトリクス (p. 47)
• EBS ボリュームメトリクス (p. 48)
Note
サービスは、メトリクスを 2 週間アーカイブし、その後破棄します。
メトリクスの設定可能な統計情報を表示するには (コンソール)
1.
https://aws.amazon.com にアクセスし、[Sign In to the Console] を選択します。
2.
[Analytics] で、[Elasticsearch Service] を選択します。
3.
ナビゲーションペインにある、[My domains] で、Amazon ES ドメインを選択します。
4.
[Monitoring] タブを選択します。
5.
表示するメトリクスを選択します。
6.
[Statistic] の一覧から統計を選択します。
各メトリクスに関連する統計の一覧は、クラスターメトリクス (p. 44)の表を参照してください。
統計のなかには、特定のメトリクスに関連のないものがあります。たとえば、SUM 統計メトリクス
は、ノードには意味がありません。
7.
更新グラフを選択します。
クラスターメトリクス
サービスは、クラスターに次のメトリクスを提供します。
Note
メトリックスが Amazon Elasticsearch Service コンソールで使用できない場合にクラスターメト
リックスを確認するには、Amazon CloudWatch を使用します。
クラスターメトリクス
説明
ClusterStatus.green
すべてのインデックスのシャードがクラスターのノードに割り当てられ
ることを示します。
関連する統計: Minimum、Maximum
API Version 2015-01-01
44
Amazon Elasticsearch Service 開発者ガイド
クラスターメトリクス
クラスターメトリクス
説明
ClusterStatus.yellow
すべてのインデックスのプライマリシャードがクラスターのノードに割
り当てられていることを示しますが、少なくとも 1 つのインデックス
のレプリカシャードは割り当てられていません。レプリカを割り当てる
ことができる 2 番目のノードがないため、単一ノードクラスターがこ
のクラスター状態に常に初期化します。緑のクラスター状態を取得する
ためにノード数を増やすか、Elasticsearch API を使用してインデックス
の number_of_replicas の設定を 0 に設定することができます。詳細に
ついては、このガイドの「Amazon Elasticsearch Service ドメインの設
定 (p. 21)」および Elasticsearch ドキュメントの「インデックス設定を更
新する」を参照してください。
関連する統計: Minimum、Maximum
ClusterStatus.red
少なくとも 1 つのインデックスのプライマリとレプリカの両方のシャー
ドが、クラスターのノードに割り当てられないことを示します。この
状態の一般的な原因は、クラスターの 1 つ以上のデータノードで空き
ストレージ領域が不足していることです。次に、空きストレージ領域が
不足すると、影響を受けるデータノードやノードにサービスがレプリカ
シャードを分散できず、Red クラスターステータスで、すべての新しい
インデックスは開始できません。復旧するには、EBS ベースのストレー
ジを既存のデータノードに追加する、より大きなインスタンスタイプを
使用する、インデックスを削除してスナップショットから復元する、の
いずれかを実行する必要があります。復旧の手順については、赤のクラ
スター状態 (p. 68)を参照してください。
関連する統計: Minimum、Maximum
ノード
クラスターのノード数の指定。
関連する統計: Minimum、Maximum、Average
SearchableDocuments
クラスター内のすべてのインデックスで検索可能なドキュメントの合計
数を指定します。
関連する統計: Minimum、Maximum、Average
DeletedDocuments
クラスター内のすべてのインデックスで削除されたドキュメントの合計
数を指定します。
関連する統計: Minimum、Maximum、Average
CPUUtilization
クラスター内のデータノードで使用する CPU リソースの最大パーセン
テージを指定します。
関連する統計: Maximum、Average
FreeStorageSpace (Sum)
クラスター内のすべてのデータノードの空き容量を、メガバイト単位で
指定します。
関連する統計: Sum
API Version 2015-01-01
45
Amazon Elasticsearch Service 開発者ガイド
クラスターメトリクス
クラスターメトリクス
説明
FreeStorageSpace
(Minimum)
クラスター内で最も少ない使用可能な空き容量を持つデータノード 1 つ
の、空き容量 (メガバイト) を指定します。メトリクスが 0 に到達する
と、Amazon ES は ClusterBlockException をスローします。復旧する
には、インデックスを削除する、より大きなインスタンスを追加する、
既存のインスタンスに EBS ベースのストレージを追加する、のいずれか
を実行する必要があります。詳細については、空きストレージ領域の不
足からの復旧 (p. 69)を参照してください。
関連する統計: Minimum
ClusterUsedSpace
クラスター用の合計使用領域 (メガバイト単位) を指定します。Amazon
CloudWatch コンソールでこのメトリクスを表示できますが、Amazon
Elasticsearch Service コンソールでは表示できません。
関連する統計: Minimum、Maximum
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
次のスクリーンショットは、前述の表で説明してあるクラスターメトリクスを示します。
API Version 2015-01-01
46
Amazon Elasticsearch Service 開発者ガイド
専用マスターノードメトリクス
専用マスターノードメトリクス
サービスは、専用マスターノードの次のメトリクスを提供します。
専用マスターノードメトリク
ス
説明
MasterCPUUtilization
専用マスターノードが使用する CPU リソースの最大パーセンテージを
指定します。 このメトリクスが 60% に達する場合、インスタンスタイ
プのサイズを増やすことをお勧めします。
関連する統計: Average
API Version 2015-01-01
47
Amazon Elasticsearch Service 開発者ガイド
EBS ボリュームメトリクス
専用マスターノードメトリク
ス
説明
MasterFreeStorageSpace
このメトリクスは関係ないため無視できます。 このサービスはデータ
ノードとしてマスターノードを使用しません。
MasterJVMMemoryPressure
クラスター内のすべての専用マスターノードで使用する Java ヒープの
最大パーセンテージを指定します。 このメトリクスが 85% に達する場
合、より大規模なインスタンスタイプに移行することをお勧めします。
関連する統計: Maximum
MasterCPUCreditBalance
クラスター内の専用マスターノードで使用できる、残りの CPU クレ
ジットを指定します。CPU クレジットは、フル CPU パフォーマンス
を 1 分間実現します。詳細については、『Amazon EC2 開発者ガイ
ド』の「CPU クレジット」を参照してください。このメトリックス
は、t2.micro.elasticsearch、t2.small.elasticsearch、t2.medium.elasticsearch
の各インスタンスタイプで使用できます。
関連する統計: Minimum
次のスクリーンショットは、前述の表で説明してある専用マスターノードのメトリクスを示しています。
EBS ボリュームメトリクス
サービスは EBS ボリュームに対して、次のメトリクスを提供します。
API Version 2015-01-01
48
Amazon Elasticsearch Service 開発者ガイド
EBS ボリュームメトリクス
EBS ボリュームメトリクス
説明
ReadLatency
EBS ボリュームでの読み取り操作のレイテンシーを秒単位で指定しま
す。
関連する統計: Minimum、Maximum、Average
WriteLatency
EBS ボリュームでの書き込み操作のレイテンシーを秒単位で指定しま
す。
関連する統計: Minimum、Maximum、Average
ReadThroughput
EBS ボリュームでの読み取り操作のスループットを 1 秒あたりのバイト
数で指定します。
関連する統計: Minimum、Maximum、Average
WriteThroughput
EBS ボリュームでの書き込み操作のスループットを 1 秒あたりのバイト
数で指定します。
関連する統計: 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
次のスクリーンショットは、前述の表で説明してある EBS ボリュームメトリクスを示します。
API Version 2015-01-01
49
Amazon Elasticsearch Service 開発者ガイド
AWS CloudTrail を使用した設定のサービス呼び出しの記録
AWS CloudTrail での Amazon Elasticsearch
Service ドメインの監査
Amazon Elasticsearch Service (Amazon ES) は AWS アカウント、またはその代理によって行われた AWS
API 呼び出しをすべて記録するサービスである AWS CloudTrail と統合されています。ログファイルは
Amazon S3 バケットに渡されます。これは、バケットにログファイルを書き込む CloudTrail 許可を与える
バケットポリシーを使用して作成、設定したものです。CloudTrail は、Amazon Elasticsearch Service コン
ソールによって送信されたものを含むすべての Amazon ES 設定サービス API コールを取得します。
CloudTrail により収集された情報を使用して、検索ドメインのアクティビティを監視できます。Amazon
ES に対してどのようなリクエストが行われたか (リクエストの実行元 IP アドレス、実行者、実行日
時など) を判断できます。CloudTrail の詳細 (設定する方法や有効にする方法など) については、AWS
CloudTrail User Guide を参照してください。CloudTrail の S3 バケットを作成し、設定する方法について
詳細は、「CloudTrail のAmazon S3 バケットポリシー」を参照してください。
Note
CloudTrail は、Amazon Elasticsearch Service への設定関連の API 呼び出しのみ、イベントをロ
グ記録します。データ関連の API は記録されません。
次の例では、Amazon ES のサンプルの CloudTrail ログを示します。
{
"Records": [
{
"eventVersion": "1.03",
"userIdentity": {
API Version 2015-01-01
50
Amazon Elasticsearch Service 開発者ガイド
CloudTrail 内の Amazon ES 情報
"type": "Root",
"principalId": "000000000000",
"arn": "arn:aws:iam::000000000000:root",
"accountId": "000000000000",
"accessKeyId": "A*****************A"
},
"eventTime": "2015-07-31T21:28:06Z",
"eventSource": "es.amazonaws.com",
"eventName": "CreateElasticsearchDomain",
"awsRegion": "us-east-1",
"sourceIPAddress": "Your IP",
"userAgent": "es/test",
"requestParameters": {
"elasticsearchClusterConfig": {},
"snapshotOptions": {
"automatedSnapshotStartHour": "0"
},
"domainName": "your-domain-name",
"eBSOptions": {
"eBSEnabled": false
}
},
"responseElements": {
"domainStatus": {
"created": true,
"processing": true,
"aRN": "arn:aws:es:us-east-1:000000000000:domain/your-domain-name",
"domainId": "000000000000/your-domain-name",
"elasticsearchClusterConfig": {
"zoneAwarenessEnabled": false,
"instanceType": "m3.medium.elasticsearch",
"dedicatedMasterEnabled": false,
"instanceCount": 1
},
"deleted": false,
"domainName": "your-domain-name",
"domainVersion": "1.5",
"accessPolicies": "",
"advancedOptions": {
"rest.action.multi.allow_explicit_index": "true"
},
"snapshotOptions": {
"automatedSnapshotStartHour": "0"
},
"eBSOptions": {
"eBSEnabled": false
}
}
},
"requestID": "05dbfc84-37cb-11e5-a2cd-fbc77a4aae72",
"eventID": "c21da94e-f5ed-41a4-8703-9a5f49e2ec85",
"eventType": "AwsApiCall",
"recipientAccountId": "000000000000"
}
]
}
CloudTrail 内の Amazon Elasticsearch Service 情報
AWS アカウントで CloudTrail のログ記録を有効にすると、Amazon Elasticsearch Service (Amazon ES)
オペレーションに対する API 呼び出しがログファイルに記録されます。Amazon ES レコードは、他の
AWS サービスレコードと一緒にログファイルに記録されます。CloudTrail は、期間とファイルサイズに基
づいて、新しいファイルをいつ作成して書き込むかを決定します。
API Version 2015-01-01
51
Amazon Elasticsearch Service 開発者ガイド
Amazon ES ログファイルエントリの概要
すべての Amazon ES 設定サービスのオペレーションが記録されます。たとえ
ば、CreateElasticsearchDomain、DescribeElasticsearchDomain、UpdateElasticsearchDomainConfig
を呼び出すと、CloudTrail ログファイルにエントリが生成されます。各ログエントリには、誰がリクエス
トを生成したかに関する情報が含まれます。ログのユーザー ID 情報は、リクエストがルートまたは IAM
ユーザーの認証情報を使用して送信されたか、ロールまたはフェデレーションユーザーの一時的なセキュ
リティ認証情報を使用して送信されたか、あるいは別の AWS サービスによって送信されたかを確認する
のに役立ちます。詳細については、userIdentityCloudTrail Event Reference の フィールドを参照してく
ださい。
必要であれば、バケット内にログファイルを無期限に保存するか、Amazon S3 ライフサイクルのルー
ルを定義して、自動的にログファイルをアーカイブまたは削除することができます。デフォルトでは
Amazon S3 のサーバー側の暗号化(SSE)を使用して、ログファイルが暗号化されます。ログファイル
の配信時にすぐにアクションを実行する場合、新しいログファイルの配信時に CloudTrail により Amazon
SNS 通知を発行することを選択できます。詳細については、「Configuring Amazon SNS Notifications
for CloudTrail」を参照してください。また、複数の AWS リージョンと複数の AWS アカウントからの
Amazon ES ログファイルを 1 つの Amazon S3 バケットに集約することもできます。詳細については、
「Receiving CloudTrail Log Files From Multiple Regions」を参照してください。
Amazon Elasticsearch Service ログファイルエントリ
の概要
CloudTrail ログファイルには、複数の JSON 形式イベントで構成される 1 つ以上のログエントリを記録
できます。ログエントリは任意の送信元からの単一のリクエストを表し、リクエストされたアクション、
パラメータ、アクションの日時などに関する情報を含みます。ログエントリは、特定の順序で生成される
わけではなく、パブリック API 呼び出しのスタックトレース順に並んではいません。CloudTrail ログファ
イルは、Amazon ES 設定サービス API コールだけでなく、AWS アカウントに関するすべての AWS API
コールイベントを含みます。ただし、ログファイルを読み取って、eventSource es.amazonaws.com 用に
スキャンできます。eventName 要素には、呼びだされた設定サービスアクションの名前が含まれます。
Kibana を使用したデータの可視化
Kibanaは Elasticsearch で稼働するように設計された人気のあるオープンソースの可視化ツールで
す。Amazon Elasticsearch Service (Amazon ES) は、各 Amazon ES ドメインに、デフォルトで Kibana の
インストールを提供しています。Kibana エンドポイントは、サービスコンソールのドメインダッシュボー
ドにあります。Kibana を使用してデータを可視化する方法の詳細については、Kibana ユーザーガイド」
を参照してください。
Kibana ローカルサーバーを Amazon ES に接続する
多くのお客様が、ローカルの Kibana サーバーを設定するために、たくさんの時間を費やしてきまし
た。Amazon ES が提供するデフォルトの Kibana インスタンスで作業を繰り返すのではなく、次の変更を
加えることで kibana.yml 構成ファイルを編集してローカルの Kibana サーバーを設定し、サービスに接続
することができます。
kibana_index: ".kibana-4"
elasticsearch_url: http:<elasticsearch_domain_endpoint>:80
http: プレフィックスを Amazon ES ドメインのエンドポイントに追加する必要があります。
Note
ローカル Kibana サーバーをホストするコンピュータに、IP ベースのアクセスポリシーを設定す
ることをお勧めします。IP ベースのアクセスポリシーは、1 つ以上の特定の IP アドレス、ドメ
インのリソースへのアクセスを制限します。匿名アクセスを許可するように IP ベースのポリシー
を設定することもできます。これにより、未署名のリクエストを Amazon ES ドメインに送信で
API Version 2015-01-01
52
Amazon Elasticsearch Service 開発者ガイド
Logstash プラグインを使用した、データの一括読み込み
きるようになります。詳細については、「Configuring Access Policies (p. 27)」を参照してくださ
い。
Logstash プラグインを使用した、データの一括読
み込み
Logstash は、bulk API を使用して S3 プラグインでデータを Amazon ES ドメインにアップロードす
るのに便利です。サービスは、Elasticsearch が提供する、その他の標準 Logstash 入力のプラグインを
すべてサポートします。Amazon ES は、2 つの Logstash 出力プラグインをサポートしています。標
準の elasticsearch プラグイン、および Logstash イベントを Amazon ES に署名し、エクスポートする
logstash-output-amazon-es プラグイン。
Amazon ES とのやりとりを有効にするには、Logstash のローカルインスタンスをインストールし
て、Logstash 構成ファイルに次の変更を加える必要があります。
設定フィールド
入力 | 出力プラグイン
説明
bucket
Input
Amazon ES ドメインに読み込むデータを格納している
Amazon S3 バケットを指定します。このサービスエン
ドポイントは、Amazon Elasticsearch Service コンソー
ルダッシュボードにあります。
region
Input
Amazon S3 バケットが存在する AWS リージョンを指
定します。
hosts
出力
ターゲット Amazon ES ドメイン用にサービスエンドポ
イントを指定します。
ssl
出力
Amazon ES への接続に SSL を使用するかどうかを指定
します。
flush_size
出力
デフォルトでは、全体のバッチを送信する前
に、Logstash は5,000 のイベントでバッファがかかり
ます。しかし、ドキュメントのサイズが大きく、100
MB に到達しそうな場合、すぐにバッファがかからない
ように、flush_size オプションを大きな値で設定する
ことをお勧めします。
flush_size を増大する場合、メモリ不足を引き起こさ
ないように Logstash LS_HEAP_SIZE 環境変数を 2,048
MBに設定することをお勧めします。
詳細については、Elasticsearch のドキュメントの
「flush_size」を参照してください。
次の例は、以下を行う Logstash を設定します:
• 出力プラグインを Amazon ES サービスエンドポイントに指定する
• 入力プラグインを S3 の wikipedia-stats-log バケットに指定する
• SSL を使用して Amazon ES に接続する
input{
API Version 2015-01-01
53
Amazon Elasticsearch Service 開発者ガイド
Amazon Elasticsearch Service リクエストの署名
s3 {
bucket => "wikipedia-stats-log"
access_key_id => "lizards"
secret_access_key => "lollipops"
region => "us-east-1"
}
}
output{
elasticsearch {
hosts => "search-logs-demo0-cpxczkdpi4bkb4c44g3csyln5a.us-east-1.es.example.com"
ssl => true
flush_size => 250000
}
}
次の例は、同じ設定ですが、SSL を使用せず Amazon ES に接続しています。
input{
s3 {
bucket => "wikipedia-stats-log"
access_key_id => "lizards"
secret_access_key => "lollipops"
region => "us-east-1"
}
}
output{
elasticsearch {
hosts => "search-logs-demo0-cpxczkdpi4bkb4c44g3csyln5a.us-east-1.es.example.com"
ssl => false
flush_size => 250000
}
}
Note
前述の例のサービスリクエストには、署名する必要があります。リクエストの署名の詳細につい
ては、「Amazon Elasticsearch Service リクエストの署名 (p. 54)」を参照してください。署名
して Amazon ES に Logstash イベントをエクスポートするには、logstash-output-amazon-es 出
力プラグインを使用します。手順については、「README.md」を参照してください。
Amazon Elasticsearch Service リクエストの署名
使用する言語の SDK が AWS に用意されている場合は、その SDK を使用して Amazon Elasticsearch
Service (Amazon ES) リクエストを送信することをお勧めします。AWS SDK を使用するほうが、Amazon
ES API を直接使用するよりも、リクエストの署名プロセスがきわめてシンプルで、大幅な時間の節約にな
ります。SDK は開発環境と容易に統合されるため、関連するコマンドへのアクセスが簡単です。
Amazon ES 設定サービスのオペレーション を直接呼び出す場合は、自分のリクエストに署名する必要が
あります。設定サービスのリクエストには常に署名が必要です。アップロードおよび検索リクエストは、
これらのサービスに対する匿名アクセスを設定していないかぎり、署名されている必要があります。
リクエストに署名するには、暗号化ハッシュ関数を使用してデジタル署名を計算します。この関数は入力
に基づいてハッシュ値を返します。入力には、リクエストのテキスト、およびシークレットアクセスキー
が含まれます。ハッシュ関数から返されるハッシュ値をリクエストに署名として含めます。署名は、リク
エストの Authorization ヘッダーの一部です。
Amazon ES は、リクエストを受け取ると、リクエストの署名に使用されたものと同じハッシュ関数と入力
を使用して署名を再計算します。再計算された署名とリクエスト内の署名が一致した場合、Amazon ES は
リクエストを処理します。それ以外の場合、リクエストは拒否されます。
API Version 2015-01-01
54
Amazon Elasticsearch Service 開発者ガイド
Amazon Elasticsearch Service ドメインのタグ付け
Amazon ES は、AWS 署名バージョン 4 を使用した認証をサポートします。詳細については、「Signature
Version 4 Signing Process」を参照してください。
Note
Amazon ES は、署名して Logstash イベントをサービスにエクスポートするために、Logstash 出
力プラグインを提供します。logstash-output-amazon-es plugin をダウンロードして、手順につい
ては README.md を参照してください。
Amazon Elasticsearch Service ドメインのタグ付け
Amazon ES タグを使用して、Amazon ES ドメインにメタデータを追加できます。AWS は、タグに意味
論的意味を適用しません。タグは文字列として厳密に解釈されます。タグには、次の要件があります。
タグ要素
説明
タグキー
タグキーは、必須のタグ名です。タグキーは添付される Amazon ES ドメインで一意に
する必要があります。タグキーと値の基本的な制限の一覧については、「ユーザー定
義タグの制限」を参照してください。
タグ値
タグ値は、タグの省略可能な文字列値です。タグ値は null を指定できます。また、
タグセット内で一意である必要はありません。例えば、project/Trinity と cost-center/
Trinity のタグセット内に 1 つのキーと値のペアを使用できます。タグキーと値の基本
的な制限の一覧については、「ユーザー定義タグの制限」を参照してください。
各 Amazon ES ドメインには、その Amazon ES ドメインに割り当てられているすべてのタグを格納する
タグセットがあります。AWS は Amazon ES ドメインにタグを自動的に設定しません。タグセットには、
最大 10 個のタグを格納でき、空にすることもできます。Amazon ES ドメインに追加したタグのキーがそ
のリソースの既存のタグのキーと同じ場合、既存の値は新しい値によって上書きされます。
これらのタグを使用して、類似のリソースの費用をグループ化することで、コストを追跡できま
す。Amazon ES ドメインタグは、Amazon ES ドメインを定義して関連付ける名前と値のペアです。そ
の名前はキーと呼ばれます。タグを使用して、Amazon ES ドメインに任意の情報を割り当てることがで
きます。たとえば、タグキーを使用してカテゴリを定義し、タグ値をそのカテゴリのアイテムにすること
ができます。具体的には、「project」というタグキーと「Salix」というタグ値を定義して、Amazon ES
ドメインが Salix プロジェクトに割り当てられていることを示すことができます。また、タグキーとして
environment=test や environment=production などを使用して、Amazon ES ドメインがテスト用なのか本
稼働用なのかを示すこともできます。Amazon ES ドメインに関連付けられているメタデータの追跡が簡単
になるように、一貫した一連のタグキーを使用することをお勧めします。
タグを使用して AWS 請求書を整理し、自分のコスト構造を反映することもできます。そのためには、サ
インアップして、タグキー値が含まれた AWS アカウントの請求書を取得する必要があります。その後、
同じタグキー値を持つリソースに従って請求情報を整理し、結合したリソースのコストを確認します。た
とえば、複数の Amazon ES ドメインにキーと値のペアをタグ付けし、請求情報を整理して複数のサービ
スにおける各ドメインの合計コストを確認できます。詳細については、『AWS 請求情報とコスト管理』の
「コスト配分タグの使用」を参照してください。
Note
タグは承認用にキャッシュに格納されます。そのため、Amazon ES ドメインに対するタグの追加
や更新には数分かかることがあります。
タグの操作 (コンソール)
以下の手順を使用してリソースタグを作成します。
API Version 2015-01-01
55
Amazon Elasticsearch Service 開発者ガイド
タグの操作 (AWS CLI)
タグを作成するには (コンソール)
1.
https://aws.amazon.com にアクセスし、[Sign In to the Console] を選択します。
2.
[Analytics] で、[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.
[Analytics] で、[Elasticsearch Service] を選択します。
3.
ナビゲーションペインで、Amazon ES ドメインを選択します。
4.
ドメインダッシュボードで、[Manage tags] を選択します。
5.
削除するタグの横にある [Remove] を選択します。
6.
[Submit] を選択します。
コンソールを使用したタグの操作の詳細については、『AWS Management Console Getting Started
Guide』の「Working with Tag Editor」を参照してください。
タグの操作 (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>
例
次の例は、logs ドメイン用に 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>
API Version 2015-01-01
56
Amazon Elasticsearch Service 開発者ガイド
タグの操作 (AWS SDK)
パラメータ
説明
--arn
タグが添付される Amazon ES ドメインの Amazon リソースネーム
(ARN)。
--tag-keys
Amazon ES ドメインから削除するスペース区切りのタグ値のセット。
例
次の例は、logs ドメインから前述の例で作成した 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 を除く)、AddTags、ListTags および RemoveTags の各オペレー
ションも含めて、Amazon ES 設定 API リファレンス (p. 82)で定義されたすべてのアクションがサポー
トされています。AWS SDK のインストールと使用の詳細については、「AWS Software Development
Kits」を参照してください。
API Version 2015-01-01
57
Amazon Elasticsearch Service 開発者ガイド
Amazon Elasticsearch Service にスト
リーミングデータをロードする
Amazon S3 バケット、Amazon Kinesis ストリーム、Amazon DynamoDB ストリーム、Amazon
CloudWatch メトリクスから Amazon ES ドメインにストリーミングデータをロードできます。たとえ
ば、Amazon S3 および Amazon Kinesis からストリーミングデータをロードするには、AWS Cloud でイベ
ントハンドラとして Lambda 関数を使用します。Lambda 関数は、データを処理してドメインにストリー
ミングすることで、新しいデータに応答します。
• Amazon S3 から Amazon ES にストリーミングデータをロードする (p. 59)
• Amazon Kinesis から Amazon ES にストリーミングデータをロードする (p. 62)
• Amazon DynamoDB から Amazon ES にストリーミングデータをロードする (p. 65)
• Amazon CloudWatch から Amazon ES にストリーミングデータをロードする (p. 65)
ストリーミングデータは、検索、分析クエリ上の新規データを提供します。 Amazon S3 は、イベント通
知を AWS Lambda にプッシュします。詳細については、AWS Lambda Developer Guideの「Amazon S3
で AWS Lambda を使用する」を参照してください。Amazon Kinesis がイベント通知をポーリングまたは
プルするには AWS Lambda が必要です。詳細については、「Amazon Kinesis で AWS Lambda を使用す
る」を参照してください。
Amazon ES ドメインにストリーミングデータをロードするために、その使用を試みる前にこれらのサービ
ス統合に関する知識が必要です。これらのサービスの詳細については、以下の AWS ドキュメントを参照
してください。
• AWS Lambda 開発者ガイド
• Amazon S3 開発者ガイド
• Amazon Kinesis 開発者ガイド
• Amazon DynamoDB 開発者ガイド
• Amazon CloudWatch ユーザーガイド
Note
AWS Lambda は、限定されたリージョンで使用できます。詳細については、AWS General
Reference にある AWS Lambda のリージョンのリストを参照をしてください。
API Version 2015-01-01
58
Amazon Elasticsearch Service 開発者ガイド
Amazon S3 から Amazon ES にス
トリーミングデータをロードする
Amazon S3 から Amazon ES にストリーミング
データをロードする
Amazon ES ドメインは、Amazon S3 および AWS Lambda と統合できます。S3 バケットに新しいデータ
が送信されると、Lambda へのイベント通知がトリガーされ、これによって Java または Node.js のカスタ
ムアプリケーションコードが実行されます。アプリケーションは、データを処理した後でドメインにデー
タをストリーミングします。高いレベルで、Amazon ES にストリーミングデータをロードするようセット
アップするには、以下のステップが必要になります。
1. Lambda デプロイパッケージの作成 (p. 60)
2. Lambda 関数を設定する (p. 60)
3. Amazon ES ドメインにデータを追加するアクセス権限の付与 (p. 61)
Amazon S3 バケットおよび Amazon ES ドメインも作成する必要があります。この統合パスの設定には、
以下の前提条件があります。
前提条件
説明
Amazon S3 バケット
Lambda 関数をトリガーするイベントのソース。 詳細については、
『Amazon Simple Storage Service 入門ガイド』の「バケットの作成」を参
照してください。バケットは、Amazon ES ドメインと同じ AWS リージョ
ンに存在する必要があります。
Amazon ES ドメイン
Lambda 関数のアプリケーションコードによって処理された後のデータのコ
ピー先。 詳細については、「Amazon ES ドメインの作成 (p. 16)」を参照し
てください。
Lambda 関数
S3 が Lambda にイベント通知をプッシュするときに実行する Java または
Node.js アプリケーションコード。 Amazon ES では、Node.js のサンプルア
プリケーション s3_lambda_es.js が提供されています。ユーザーは、これ
をダウンロードして作業を開始できます。「Amazon ES 用の Lambda サン
プルコード」を参照してください。
Lambda デプロイパッ
ケージ
Java または Node.js アプリケーションコードおよびすべての依存関係から
成る .zip ファイル。 必須のフォルダ階層については、「Lambda デプロイ
パッケージの作成 (p. 60)」を参照してください。特定の Lambda デプロ
イパッケージの作成については、「デプロイパッケージの作成 (Node.js)」
および「デプロイパッケージの作成 (Java)」を参照してください。
Amazon ES 権限
ドメインへのデータの追加を Lambda に許可する IAM アクセスポリシー。
このポリシーは、Lambda 関数の一部として作成する Amazon S3 実行ロー
ルにアタッチします。詳細については、「Amazon ES ドメインにデータを
追加するアクセス権限の付与 (p. 61)」を参照してください。
ストリーミングデータを Amazon S3 から Amazon ES
にロードするためのセットアップ
このセクションでは、Amazon S3 からストリーミングデータを Amazon ES にロードするための前提条件
の設定の詳細を説明します。統合の設定が終了した後は、新しいデータが Amazon S3 バケットに追加さ
れると、自動的にデータが Amazon ES ドメインにストリーミングします。
API Version 2015-01-01
59
Amazon Elasticsearch Service 開発者ガイド
ストリーミングデータを Amazon S3 から
Amazon ES にロードするためのセットアップ
Lambda デプロイパッケージの作成
Lambda アプリケーションコードおよび依存関係を含む .zip ファイルを作成します。
デプロイパッケージを作成するには。
1. 次のようなディレクトリ構造を作成します。
eslambda
\node_modules
この例では最上位フォルダの名前としてeslambda が使用されていますが、任意の名前を使用できま
す。ただし、サブフォルダは、node_modules という名前にする必要があります。
2. eslambda フォルダにアプリケーションのソースコードを配置します。
3. 次の 4 つのグローバル変数を追加、または編集します。
• endpoint、Amazon ES ドメインのエンドポイント。
• region、Amazon ES ドメインを作成した AWS リージョン。
• index、Amazon S3 からストリーミングされたデータに使用する Amazon ES インデックス名。
• doctype、ストリーミングデータの Amazon ES ドキュメントタイプ。 詳細について
は、Elasticsearch のドキュメントの「マッピングタイプ」を参照してください。
s3_lambda_es.js からの次の例では、AWS リージョン us-east-1 のドメインエンドポイント
streaming-logs を使用するようにサンプルアプリケーションを設定しています。
/* Globals */
var esDomain = {
endpoint: 'search-streaming-logs-okga24ftzsbz2a2hzhsqw73jpy.useast-1.es.example.com',
region: 'us-east-1',
index: 'streaming-logs',
doctype: 'apache'
};
4. アプリケーションで必要な依存関係をインストールします。
たとえば、Node.js を使用している場合は、アプリケーションコードの各 require ステートメントで、
次のコマンドを実行する必要があります。
npm install <dependency>
5. アプリケーションコードに必要なすべての実行時の依存関係が node_modules フォルダにあることを確
認します。
6. アプリケーションコードや相互依存性をパッケージ化する次のコマンドを実行します。
zip -r eslambda.zip *
zip ファイルの名前は最上位フォルダと一致する必要があります。
Lambda デプロイパッケージの作成の詳細については、「デプロイパッケージの作成 (Node.js)」および
「デプロイパッケージの作成 (Java)」を参照してください。
Lambda 関数を設定する
AWS Lambda を使用して、Lambda 関数を作成し、設定します。 そのためには、AWS CLI または AWS
Lambda コンソールを使用できます。AWS CLI を使用して Lambda 関数を作成および設定するチュートリ
API Version 2015-01-01
60
Amazon Elasticsearch Service 開発者ガイド
ストリーミングデータを Amazon S3 から
Amazon ES にロードするためのセットアップ
アルについては、「Amazon S3 での AWS Lambda の使用」を参照してください。AWS Lambda コンソー
ルでの設定については、次の表を参照してください。
Note
Lambda 関数の作成および設定の詳細については、「AWS Lambda Developer Guide」を参照し
てください。
Function
Configuration
説明
IAM 実行ロール
Amazon S3 でアクションを実行するために使用される IAM の名前。Lambda 関
数の作成中に、Lambda コンソールは自動的に IAM コンソールを開き、実行ロー
ルの作成をサポートします。 後で、ドメインへのデータの追加を Lambda に許
可する IAM アクセスポリシーをこのロールにアタッチする必要があります。詳
細については、「Amazon ES ドメインにデータを追加するアクセス権限の付
与 (p. 61)」を参照してください。
イベントソース
Lambda 関数に対するイベントソースとして S3 バケットを指定します。手順に
ついては、「Amazon S3 で AWS Lambda を使用する」チュートリアルを参照し
てください。 AWS Lambda は、Lambda 関数をこのイベントソースから呼び出
すために必要な、Amazon S3 のアクセス許可を自動的に追加します。必要に応じ
て、.log など、Lambda 関数をトリガーするファイルの種類をフィルタリングす
るためのファイルサフィックスを指定します。
Handler
.handler ファイルサフィックスを持ち、アプリケーションのソースコー
タイムアウト
呼び出しリクエストをキャンセルする前に Lambda が待機する時間の長さ。デ
フォルト値の 3 秒は Amazon ES のユースケースには短すぎます。タイムアウト
を 10 秒に設定することをお勧めします。
ドを含むファイルの名前。 たとえば、アプリケーションのソースコード
が s3_lambda_es.js という名前のファイルに存在する場合は、ハンドラを
s3_lambda_es.handler として設定する必要があります。詳細については、
「AWS Lambda Developer Guide」の「ご利用開始にあたって」を参照してくだ
さい。 Amazon ES は、Node.js のサンプルアプリケーションを提供し、ユーザー
はダウンロードして開始することができます。 Amazon ES 用の Lambda サンプ
ルコード。
関数の設定の詳細については、このガイドの「Lambda 関数の設定 (p. 60)」を参照してください。 一
般情報については、AWS Lambda Developer Guideの「Lambda 関数」を参照してください。
Amazon ES ドメインにデータを追加するアクセス権限の付与
S3 実行ロール を IAM ロールとして選択して S3 でアクションを実行する場合、Lambda は IAM コンソー
ルを開き、新しい実行ロールの作成をサポートします。 Lambda は、このイベントのソースから Lambda
関数を呼び出すのに必要なアクセス許可を自動的に追加します。 ロールを作成したら、IAM コンソールで
開き、このロールに以下の IAM アクセスポリシーをアタッチします。これにより、データを Amazon ES
にストリーミングするアクセス許可が Lambda に付与されます。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"es:*"
],
"Effect": "Allow",
"Resource": "arn:aws:es:us-west-2:123456789012:domain/streaming-logs/*"
API Version 2015-01-01
61
Amazon Elasticsearch Service 開発者ガイド
Amazon Kinesis から Amazon ES に
ストリーミングデータをロードする
}
]
}
ロールに IAM アクセスポリシーをアタッチする方法の詳細については、「IAM ユーザーガイド」の
「チュートリアル: はじめてのカスタマー管理ポリシーの作成とアタッチ」を参照してください。
Amazon Kinesis から Amazon ES にストリーミン
グデータをロードする
ストリーミングデータは、Amazon Kinesis から Amazon ES にロードできます。この統合は、クラウ
ド上でのイベントハンドラとして AWS Lambda に依存しています。Amazon Kinesis では、Lambda が
Amazon Kinesis ストリームをポーリングして、自動的に Lambda 関数を呼び出す新しいデータがあるか
どうかを判断する必要があります。 Lambda 関数が新しいデータを処理した後、データを Amazon ES ド
メインにストリーミングします。
高いレベルで、Amazon ES にデータをストリーミングするようセットアップするには、以下のステップが
必要になります。
1. Lambda デプロイパッケージの作成 (p. 63)。
2. Lambda 関数を設定する (p. 64)。
3. Amazon ES ドメインにデータを追加するアクセス権限の付与 (p. 64)
Amazon Kinesis ストリームおよび Amazon ES ドメインも作成する必要があります。この統合パスの設定
には、以下の前提条件があります。
前提条件
説明
Amazon Kinesis ストリーム
Lambda 関数のイベントソース。 Amazon Kinesis ストリームの作成の詳
細については、「Amazon Kinesis Streams」を参照してください。
Elasticsearch ドメイン
Lambda 関数のアプリケーションコードによって処理された後のデータ
のコピー先。 詳細については、このガイドの「Amazon ES ドメインの作
成 (p. 16)」を参照してください。
Lambda 関数
Amazon Kinesis が Lambda にイベント通知をプッシュするときに実
行する Java または Node.js アプリケーションコード。 Amazon ES
は、Node.js、kinesis_lambda_es.js のサンプルアプリケーションを
提供します。ユーザーはダウンロードして開始することができます。
Amazon ES 用の Lambda サンプルコード。
Lambda デプロイパッケー
ジ
Java または Node.js アプリケーションコードおよびすべての依存関係か
ら成る .zip ファイル。 必須のフォルダ階層については、「Lambda デプ
ロイパッケージの作成 (p. 60)」を参照してください。Lambda デプロ
イパッケージの作成の一般情報については、「デプロイパッケージの作
成 (Node.js)」および「デプロイパッケージの作成 (Java)」を参照してく
ださい。
Amazon ES 権限
ドメインへのデータの追加を Lambda に許可する IAM アクセスポリ
シー。Lambda 関数の一部として作成する Amazon Kinesis 実行ロール
に、ポリシーをアタッチします。詳細については、「Amazon ES ドメイ
ンにデータを追加するアクセス権限の付与 (p. 61)」を参照してくださ
い。
API Version 2015-01-01
62
Amazon Elasticsearch Service 開発者ガイド
Amazon Kinesis から、ストリーミングデータ
を Amazon ES にロードするためのセットアップ
Amazon Kinesis から、ストリーミングデータを
Amazon ES にロードするためのセットアップ
このセクションでは、Amazon Kinesis から Amazon ES にストリーミングデータをロードする前提条件の
セットアップについて詳しく説明します。統合の設定が終了した後は、新しいデータが Amazon Kinesis
ストリームに追加されると、Lambda は自動的に Amazon ES ドメインにデータをストリーミングしま
す。このビデオでも、Amazon Kinesis Firehose を使用してストリーミングデータを Amazon ES にロード
する方法を参照できます。
Lambda デプロイパッケージの作成
Lambda アプリケーションコードおよび依存関係を含む .zip ファイルを作成します。
デプロイパッケージを作成するには。
1. 次のようなディレクトリ構造を作成します。
eslambda
\node_modules
最上位フォルダには、eslambda 以外の任意の名前を使用することもできます。ただし、サブフォルダ
を node_modules という名前にする必要があります。
2. eslambda フォルダにアプリケーションのソースコードを配置します。
3. サンプルアプリケーションに以下のグローバル変数を追加、または編集します。
• endpoint、Amazon ES ドメインのエンドポイント。
• region、Amazon ES ドメインを作成した AWS リージョン。
• index、Amazon Kinesis からストリーミングされたデータに使用する Amazon ES インデックスの名
前。
• doctype、ストリーミングデータの Amazon ES ドキュメントタイプ。 詳細について
は、Elasticsearch のドキュメントの「マッピングタイプ」を参照してください。
kinesis_lambda_es.js からの次の例では、AWS リージョン us-east-1 の Amazon ES ドメインエンド
ポイント streaming-logs を使用するようにサンプルアプリケーションを設定しています。
/* Globals */
var esDomain = {
endpoint: 'search-streaming-logs-okga24ftzsbz2a2hzhsqw73jpy.useast-1.es.example.com',
region: 'us-east-1',
index: 'streaming-logs',
doctype: 'apache'
};
4. アプリケーションで必要な依存関係をインストールします。
たとえば、Node.js を使用している場合は、アプリケーションコードの各 require ステートメントで、
次のコマンドを実行する必要があります。
npm install <dependency>
5. アプリケーションコードに必要なすべての実行時の依存関係が node_modules フォルダにあることを確
認します。
6. アプリケーションコードや相互依存性をパッケージ化する次のコマンドを実行します。
API Version 2015-01-01
63
Amazon Elasticsearch Service 開発者ガイド
Amazon Kinesis から、ストリーミングデータ
を Amazon ES にロードするためのセットアップ
zip -r eslambda.zip *
zip ファイルの名前は最上位フォルダと一致する必要があります。
Lambda デプロイパッケージの作成の詳細については、「デプロイパッケージの作成 (Node.js)」および
「デプロイパッケージの作成 (Java)」を参照してください。
Lambda 関数を設定する
AWS Lambda を使用して、Lambda 関数を作成し、設定します。 そのためには、AWS CLI または「デプ
ロイパッケージの作成」のコンソールを使用できます。AWS CLI を使用して Lambda 関数を作成および
設定するチュートリアルについては、「Amazon Kinesis で AWS Lambda を使用する」を参照してくださ
い。AWS Lambda コンソールでの設定については、次の表を参照してください。
Note
Lambda 関数の作成および設定の詳細については、AWS Lambda 開発者ガイドのチュートリアル
「ご利用開始にあたって」を参照してください。
設定
説明
Amazon Kinesis ス
トリーム
Lambda 関数のイベントソース。手順については、「Amazon Kinesis ストリー
ム」を参照してください。
IAM 実行ロール
Amazon Kinesis でアクションを実行するために使用される IAM の名前。Lambda
関数の設定中に、Lambda コンソールは自動的に IAM コンソールを開き、実行
ロールの作成をサポートします。 後で、Lambda が Amazon ES ドメインにデー
タを送信することを許可する IAM アクセスポリシーをこのロールにアタッチする
必要があります。詳細については、「Amazon ES ドメインにデータを追加するア
クセス権限の付与 (p. 64)」を参照してください。
Handler
.handler ファイルサフィックスを持ち、アプリケーションのソースコー
タイムアウト
呼び出しリクエストをキャンセルする前に Lambda が待機する時間の長さ。デ
フォルト値の 3 秒はこのユースケースには短すぎます。 タイムアウトを 10 秒に
設定することをお勧めします。
ドを含むファイルの名前。 たとえば、アプリケーションのソースコードが
kinesis_lambda_es.js という名前のファイルにある場合は、ハンドラを
kinesis_lambda_es.handler として設定する必要があります。詳細については、
「Lambda 関数ハンドラ」を参照してください。Amazon ES は、Node.js のサン
プルアプリケーションを提供し、ユーザーはダウンロードして開始することがで
きます。 Amazon ES 用の Lambda サンプルコード。
詳細については、AWS Lambda Developer Guideの「Lambda 関数」を参照してください。
Amazon ES ドメインにデータを追加するアクセス権限の付与
Kinesis 実行ロール を Amazon Kinesis でアクションを実行する IAM ロールとして選択した場合、Lambda
は IAM コンソールを開き、ユーザーは新しい実行ロールを作成する必要があります。 Lambda は、このイ
ベントのソースから Lambda 関数を呼び出すのに必要なアクセス許可を自動的に追加します。 ロールを作
成したら、IAM コンソールで開き、このロールに以下の IAM アクセスポリシーをアタッチします。これに
より、データを Amazon ES にストリーミングするアクセス許可が Lambda に付与されます。
{
API Version 2015-01-01
64
Amazon Elasticsearch Service 開発者ガイド
Amazon DynamoDB から Amazon ES
にストリーミングデータをロードする
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"es:*"
],
"Effect": "Allow",
"Resource": "arn:aws:es:us-west-2:123456789012:domain/streaming-logs/*"
}
]
}
ロールに IAM アクセスポリシーをアタッチする方法の詳細については、「IAM ユーザーガイド」の
「チュートリアル: はじめてのカスタマー管理ポリシーの作成とアタッチ」を参照してください。
Amazon DynamoDB から Amazon ES にストリー
ミングデータをロードする
ストリーミングデータは Amazon DynamoDB ストリームから Amazon ES ドメインにロードできます。
そのためには、DynamoDB Logstash 入力プラグインと Amazon ES Logstash 出力プラグインを使用しま
す。手順については、「Amazon DynamoDB 開発者ガイド」の「Amazon DynamoDB 用 Logstash プラグ
イン」を参照してください。
Amazon CloudWatch から Amazon ES にストリー
ミングデータをロードする
CloudWatch Logs サブスクリプションを使用することにより、ストリーミングデータを CloudWatch Logs
から Amazon ES ドメインにロードできます。Amazon CloudWatch サブスクリプションの詳細について
は、「サブスクリプションを使用したログデータのリアルタイム処理」を参照してください。設定情報
については、Amazon CloudWatch 開発者ガイドの「CloudWatch Logs データを Amazon Elasticsearch
Service にストリーミング」を参照してください。
API Version 2015-01-01
65
Amazon Elasticsearch Service 開発者ガイド
別の Elasticsearch バージョンへの移
行
Amazon ES では現在、3 つの Elasticsearch バージョン (1.5、2.3、5.1) がサポートされています。バー
ジョン 5.1 では、Elasticsearch の以前のバージョンより処理速度と安全性に優れ、さらに使いやすくなっ
た強力な機能を備えています。主な特徴を次に挙げます。
• Painless スクリプティングのサポート - Painless は、Elasticsearch の組み込みスクリプト言語で
す。Painless を使用すると、データに対して高度なクエリを実行し、部分的なインデックス更新などの
操作をきわめて安全に早く自動化できます。
• 高速なインデックス作成パフォーマンス - Elasticsearch 5.1 ではインデックス作成機能が改善されてお
り、データ更新のスループットが大幅に向上しています。
• 集計機能の向上 - Elasticsearch 5.1 では、いくつかの集計機能が向上しています。たとえば、データに
変更があった場合のみ集計の再計算が行われます。さらに、クエリパフォーマンスも高速化していま
す。
Elasticsearch のバージョン間の相違点については、Elasticsearch のドキュメントを参照してくださ
い。Amazon ES で 1.5、2.3、5.1 がサポートされている Elasticsearch API の詳細については、「サポー
トされている Elasticsearch オペレーション」を参照してください。
新しい Elasticsearch プロジェクトを開始する場合は、バージョン 5.1 を選択することを強くお勧めしま
す。1.5 または 2.3 の既存ドメインがある場合は、そのドメインを維持するか、新しい 5.1 ドメインにデー
タを移行するかを選択できます。既存のドメインのバージョンは変更できないので、移行が必要です。
Note
Elasticsearch 1.5 のスナップショットは 5.1 と互換性がありません。1.5 から 5.1 にデータを移行
する場合は、まず 2.3 に移行してから 5.1 に移行する必要があります。
以下の手順は、2.3 から 5.1 または 1.5 から 2.3 にデータを移行する方法をま示しています。
2.3 ドメインから 5.1 ドメインにデータを移行するには
1.
インデックスまたはアプリケーションへの調整が必要かどうかについては、Elasticsearch のドキュメ
ントで 5.0 の重要な変更を参照してください。
Note
現在、Elasticsearch の移行プラグインは提供されていません。
API Version 2015-01-01
66
Amazon Elasticsearch Service 開発者ガイド
2.
2.3 ドメインの手動スナップショットを作成します。詳細については、「手動インデックススナップ
ショットの使用 (p. 39)」を参照してください。
3.
5.1 ドメインを作成します。詳細については、「Amazon ES ドメインの作成 (p. 16)」を参照してくだ
さい。
4.
2.3 ドメインから 5.1 ドメインにスナップショットデータをコピーします。詳細については、「手動イ
ンデックススナップショットの使用 (p. 39)」を参照してください。
5.
6.
アプリケーションを詳細にテストします。
(オプション) 2.3 ドメインが不要になった場合は、削除できます。削除しなかった場合は、ドメインの
利用料金が引き続き発生します。
1.5 ドメインから 2.3 ドメインにデータを移行するには
1.
/_plugin/migration Elasticsearch プラグインを使用し、直接バージョン 2.3 にアップグレードできるか
どうかを確認します。移行の前にデータへの変更が必要になる場合もあります。
a.
ウェブブラウザで、http://Elasticsearch_domain_endpoint/_plugin/migration/ を開きます。
b.
[Run checks now] を選択します。
c.
結果を確認し、必要に応じて、手順に従いデータを変更します。詳細については、
「Elasticsearch の画期的な変更点」を参照してください。
2.
1.5 ドメインの手動スナップショットを作成します。詳細については、「手動インデックススナップ
ショットの使用 (p. 39)」を参照してください。
3.
2.3 ドメインを作成します。詳細については、「Amazon ES ドメインの作成 (p. 16)」を参照してくだ
さい。
4.
1.5 ドメインから 2.3 ドメインにスナップショットデータをコピーします。詳細については、「手動イ
ンデックススナップショットの使用 (p. 39)」を参照してください。
5.
6.
アプリケーションを詳細にテストします。
(オプション) 1.5 ドメインが不要になった場合は、削除できます。削除しなかった場合は、ドメインの
利用料金が引き続き発生します。
API Version 2015-01-01
67
Amazon Elasticsearch Service 開発者ガイド
障害が発生したクラスターノード
AWS サービスエラー処理
このセクションでは、一般的な AWS サービスエラーへの対応方法について説明します。AWS サポートに
問い合わせる前に、このセクションの情報を参照してください。
トピック
• 障害が発生したクラスターノード (p. 68)
• 赤のクラスター状態 (p. 68)
• 黄色のクラスター状態 (p. 70)
• ClusterBlockException (p. 70)
• JVM OutOfMemoryError (p. 70)
障害が発生したクラスターノード
EC2 インスタンスでは、予期しない終了と再起動が発生する場合があります。 通常、Amazon ES はノー
ドを再起動します。 ただし、Elasticsearch クラスターの 1 つ以上のノードが失敗した状態のままであるこ
とがあります。この状態を確認するには、Amazon ES コンソールでドメインダッシュボードを開きます。
[Monitoring] タブを選択し、[Nodes] メトリクスを選択します。報告されるノード数がクラスターに設定し
た数より小さいかどうかを調べます。メトリクスが、1 つ以上のノードが 1 日以上ダウンしていることを
示している場合は、AWS サポートまでお問い合わせください。
Note
ノードメトリクスは、クラスター設定の変更中およびサービスの定期的なメンテナンス中は、正
確ではありません。 これは想定される動作です。メトリクスは、すぐに正しい数のクラスター
ノードを報告します。課金対象となるのは、クラスター用にリクエストしたノード数のみです。
クラスターを予期しないノードの終了と再起動から保護するには、Amazon ES ドメインで各インデックス
に少なくとも 1 つのレプリカを作成します。詳細については、Elasticsearch のドキュメントの「シャード
とレプリカ」を参照してください。
赤のクラスター状態
「Amazon CloudWatch を使用した、クラスターメトリクスと統計情報の監視」で説明されているよう
に、赤のクラスター状態は、プライマリとレプリカのシャードが、クラスターのノードに割り当てられて
いないことを意味します。赤のクラスター状態が保持されている間は、正常なインデックスのものであっ
ても、Amazon ES によって自動スナップショットは作成されません。
この状態は、一般的に次のような原因で発生します。
API Version 2015-01-01
68
Amazon Elasticsearch Service 開発者ガイド
空きストレージ容量の不足からの復旧
• Elasticsearch クラスターのデータノードで空きストレージ容量が不足しています
• データノードの処理の継続的な高負荷のために Elasticsearch プロセスがクラッシュしました
赤のクラスター状態の原因が、空きストレージ容量の不足や、処理の負荷が継続的に高いことである場合
は、対応が必要です。
空きストレージ容量の不足からの復旧
Elasticsearch クラスターのデータノードで空きストレージ容量が不足しないようにするに
は、FreeStorageSpace クラスターメトリクスをモニタリングします。メトリクスが 0 に到達する
と、Amazon ES は ClusterBlockException をスローします。このような場合、影響を受けるクラスター
は設定の変更を処理できず、サービスに対するソフトウェアアップグレードのメリットを得ることができ
ません。
赤のインデックスによって発生した赤のクラスター状態を解決する
1.
Amazon ES ドメインのインデックスのうち、クラスター内のノードに割り当てられていないものを確
認するには、Elasticsearch API の /_cat/indices を使用します。
curl -XGET 'http://<Elasticsearch_domain_endpoint>/_cat/indices
詳細については、Elasticsearch のドキュメントの「cat インデックス」を参照してください。
2.
EBS ベースのストレージを追加し、より大きなインスタンスタイプを使用するか、影響を受ける
インデックスからデータを削除します。 詳細については、「EBS ストレージ設定 (p. 25)」および
「Amazon ES ドメイン設定 (p. 21)」を参照してください。
クラスターが赤の状態になった場合に通知を受信できるように、Amazon CloudWatch アラームを作成で
きます。詳細については、『Amazon CloudWatch 開発者ガイド』の「Amazon CloudWatch アラームの作
成」を参照してください。
処理の継続的な高負荷からの復旧
赤のクラスター状態がデータノードの処理の継続的な高負荷によるものであるかどうかを判断するには、
次のクラスターメトリクスをモニタリングします。
関連するメトリクス
説明
復旧
JVMMemoryPressure
クラスター内のすべてのデータノード
で使用する Java ヒープのパーセンテー
ジを指定します。このメトリクスの
[Maximum] の統計を表示し、重いメモ
リプレッシャーのパターンを示す変動を
探します。このパターンは通常、複雑な
クエリまたは大きいデータフィールドが
原因です。
JVM のメモリ サーキット
ブレーカーを設定します。
詳細については、「JVM
OutOfMemoryError (p. 70)」
を参照してください。
CPUUtilization
クラスター内のデータノードで使用する
CPU リソースのパーセンテージを指定
します。このメトリクスの [Maximum]
の統計を表示し、使用量の多い継続的な
パターンを探します。
データノードを追加するか、
既存のデータノードのイン
スタンスタイプのサイズを
大きくします。詳細について
は、「Amazon ES ドメイン設
定 (p. 21)」を参照してくださ
い。
API Version 2015-01-01
69
Amazon Elasticsearch Service 開発者ガイド
黄色のクラスター状態
関連するメトリクス
説明
復旧
ノード
クラスターのノード数の指定。このメト
リクスの [Minimum] の統計を表示しま
す。 サービスがクラスターの新しいイ
ンスタンス群をデプロイすると、この値
が変動します。
データノードを追加します。詳
細については、「Amazon ES
ドメイン設定 (p. 21)」を参照
してください。
黄色のクラスター状態
黄色のクラスター状態は、すべてのインデックスのプライマリシャードがクラスター内のノードに割り当
てられ、少なくとも 1 つのインデックスのレプリカシャードは割り当てられていないことを意味します。
単一ノードクラスターでは、Amazon ES がレプリカを割り当てることができる他のノードがないため、
常に黄色のクラスター状態で初期化されることに注意してください。緑のクラスター状態を確保するに
は、ノード数を増やします。詳細については、このガイドの「Amazon ES ドメインの設定 (p. 21)」およ
び Elasticsearch ドキュメントの「インデックス設定を更新する」を参照してください。
ClusterBlockException
以下の問題の ClusterBlockException エラーを受け取る場合があります。
FreeStorageSpace を使用しない Logstash
Logstash では、書き込み可能なストレージ容量の不足など、多くの理由で ClusterBlockException
がスローされる場合があります。クラスターへバルクデータをロードするときに Logstash から
ClusterBlockException エラーを受け取った場合は、クラスターでストレージ容量が不足していないか
どうかを確認します。そのためには、Amazon ES コンソールのドメインダッシュボードを開きます。
[Monitoring] タブを選択し、[FreeStorageSpace] メトリクスを選択します。利用可能な空きストレージ容
量が 0 の場合、より大きなインスタンスタイプを使用するようクラスターを設定するか、EBS ボリュー
ムを追加してストレージを増やします。詳細については、「Amazon ES ドメイン設定 (p. 21)」および
「EBS ストレージ設定 (p. 25)」を参照してください。
メモリ不足によるディスクのブロック
t2 インスタンスでは、[JVMMemoryPressure] メトリクスが 92% を超えた場合、クラスターが赤の状態に
なるのを防ぐため、Amazon ES はすべての書き込みオペレーションをブロックすることによる保護メカ
ニズムをトリガーします。保護が有効な状態では、書き込みオペレーションは ClusterBlockException エ
ラーで失敗し、新しいインデックスは作成できず IndexCreateBlockException エラーがスローされます。
JVM OutOfMemoryError
JVM の OutOfMemoryError は、一般的に次のいずれかの JVM サーキットブレーカーに到達したことを意
味します。
サーキットブレーカー 説明
クラスター設定プロパティ
親ブレーカー
indices.breaker.total.limit
すべてのサーキットブレー
カーで JVM ヒープメモリの
パーセンテージの合計に許可
されます。 デフォルト値は
70% です。
詳細については、Elasticsearch のドキュメント
の「Cluster Update Settings」を参照してくだ
さい。
API Version 2015-01-01
70
Amazon Elasticsearch Service 開発者ガイド
JVM OutOfMemoryError
サーキットブレーカー 説明
フィールド データ ブ
レーカー
クラスター設定プロパティ
JVM ヒープメモリのパーセ
indices.breaker.fielddata.limit
ンテージは、メモリに単一の
データフィールドをロードす 詳細については、Elasticsearch のドキュメント
ることを許可します。 デフォ の「フィールドデータ」を参照してください。
ルト値は 60% です。 大きい
フィールドを使用してデータ
をアップロードする場合は、
この上限を引き上げることを
お勧めします。
リクエストブレーカー JVM ヒープメモリのパーセ
indices.breaker.request.limit
ンテージは、サービスリクエ
ストに応答するために使用さ 詳細については、Elasticsearch のドキュメント
れるデータ構造に許可されま の「フィールドデータ」を参照してください。
す。 デフォルト値は 40% で
す。 サービスリクエストが集
計の計算を含む場合は、この
上限を引き上げることをお勧
めします。
Note
/_cluster/settings オペレーションでは、HTTP GET メソッドはサポートされていません。 3
つのクラスター設定を設定できますが、取得することはできません。
API Version 2015-01-01
71
Amazon Elasticsearch Service 開発者ガイド
Kibana: Kibana サービスエンドポイントへの
AWS サービスリクエストにサインインできません
トラブルシューティング
以下のセクションでは、Amazon Elasticsearch Service (Amazon ES) と統合されるサービス (Amazon
S3、Amazon Kinesis、IAM など) および製品 (Kibana など) の使用中に発生する可能性がある一般的な問
題に対する解決策を示します。
• Kibana: Kibana サービスエンドポイントへの AWS サービスリクエストにサインインできませ
ん (p. 72)
• Kibana: Kibana 4 の Elasticsearch ドメインのインデックスが表示されません (p. 73)
• Kibana: データの表示に Kibana を使用すると、ブラウザエラーが表示されます (p. 74)
• 統合: IAM コンソールに、Amazon ES のサービスロールが表示されません (p. 75)
サービス固有のエラーの詳細については、このガイドの「AWS サービスエラー処理 (p. 68)」を参照して
ください。
Kibana: Kibana サービスエンドポイントへの AWS
サービスリクエストにサインインできません
Kibana エンドポイントは、署名付き AWS サービスリクエストをサポートしていません。 次の表に示す設
定オプションのいずれかで Kibana にアクセスすることをお勧めします。
Kibana 設定
説明
匿名の IP ベースのアク
セス
Kibana ホストがファイアウォールの内側にある場合、ファイアウォールの IP
アドレスからの匿名リクエストを受け入れるように Kibana エンドポイントを
設定します。 IP アドレスの範囲を指定する必要がある場合は、CIDR 表記を
使用します。
Amazon VPC を使用す
る NAT ゲートウェイ
Amazon VPC は NAT ゲートウェイをサポートしています。 NAT ゲートウェ
イの作成時に、NAT ゲートウェイに関連付ける Elastic IP アドレスを指定す
る必要があります。 NAT ゲートウェイは、Elastic IP アドレスをソース IP ア
ドレスとして使用し、パブリックインターネットゲートウェイにトラフィッ
クを送信します。 ゲートウェイからのすべてのリクエストを許可できるよう
に、Kibana のアクセスポリシーでこの Elastic IP アドレスを指定します。 詳
細については、Amazon Virtual Private Cloud ユーザーガイドの「NAT ゲート
ウェイの基本」および「NAT ゲートウェイの作成」を参照してください。
API Version 2015-01-01
72
Amazon Elasticsearch Service 開発者ガイド
Kibana: Kibana 4 の Elasticsearch ドメ
インのインデックスが表示されません
例
次の例は、IP アドレスの範囲および 18 ビット ルーティングプレフィックスを指定する、匿名の IP ベー
スのアクセスポリシーです。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "es:*",
"Resource": "arn:aws:es:us-west-2:123456789012:domain/mydomain/_plugin/kibana",
"Condition": {
"IpAddress": {
"aws:SourceIp": "192.240.192.0/18"
}
}
}
]
}
次の例で NAT ゲートウェイに関連付けられている Elastic IP アドレスからの匿名アクセスを指定します。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "es:*",
"Resource": "arn:aws:es:us-west-2:123456789012:domain/mydomain/_plugin/kibana",
"Condition": {
"IpAddress": {
"aws:SourceIp": "198.51.100.4"
}
}
}
]
}
Kibana: Kibana 4 の Elasticsearch ドメインのイン
デックスが表示されません
ユーザーは Kibana 3 に慣れていても、Kibana 4 を初めて利用するため、インターフェイスでインデッ
クスを見つけるのが困難な場合があります。 データを表示するデフォルトダッシュボードを提供する
Kibana 3 とは異なり、Kibana 4 では最初にインデックス名または Amazon ES ドメインのインデックス
の名前と一致するパターンを指定する必要があります。 たとえば、Amazon ES ドメインに movies-2013
という名前のインデックスが含まれる場合は、以下のいずれかのパターンがこのインデックスに一致しま
す。
• movies-2013
API Version 2015-01-01
73
Amazon Elasticsearch Service 開発者ガイド
Kibana: データの表示に Kibana を使用
すると、ブラウザエラーが表示されます
• movies-*
• mov*
インデックス名またはパターンを指定すると、Amazon ES ドメインインデックスのデータの可視化を設定
できます。 ドメインインデックスの名前は、Amazon ES コンソールの [インデックス] タブにあります。
Kibana 4 の使用の詳細については、「Kibana ユーザーガイド」を参照してください。
Note
Amazon ES は Kibana 3 もサポートしていますので、これを使用するために、ツールのその
バージョンへのアクセスを設定することもできます。 /_plugin/kibana ではなく /_plugin/
kibana3 をアクセスポリシーでリソースとして指定します。 サービスが設定変更の処理を終
了すると、Amazon ES コンソールで提供される Kibana サービスエンドポイントを手動で編
集して、Kibana 3 にアクセスできます。 たとえば、コンソールで Kibana エンドポイントが
mydomain-6w5y8xjt5ydwsrubmdk4m5kcpa.us-west-2.es.amazonaws.com/_plugin/kibana/ で
あることが示された場合、代わりにブラウザを mydomain-6w5y8xjt5ydwsrubmdk4m5kcpa.uswest-2.es.amazonaws.com/_plugin/kibana3/ にポイントします。
Kibana: データの表示に Kibana を使用すると、ブ
ラウザエラーが表示されます
Kibana を使用して、Amazon ES ドメインのデータを表示する場合、ブラウザは HTTP レスポンスオブ
ジェクトのサービスエラーメッセージをラップします。原因となるサービスエラーを表示し、デバッグを
支援するため、Chrome の開発者モードなどのウェブブラウザで一般的に利用されている開発ツールを使
用できます。
Chrome でサービスエラーを表示する
1.
2.
メニューから、[View]、[開発者]、[開発者用ツール] の順に選択します。
[Network] タブを選択します。
3.
[Status] 列で、ステータスが 500 の任意の HTTP セッションを選択します。
たとえば、次のサービスエラーメッセージは、検索リクエストが次の表に示す理由のいずれかにより
失敗したことを示します。
"Request to Elasticsearch failed: {"error":"SearchP…be larger than limit of
[5143501209/4.7gb]]; }]"}"
可能性のある原因
回避方法
JVM リクエストメモリ サーキットブレーカーに
達しました。
リクエストブレーカーは、サービスリクエ
ストに応答するために使用される JVM メ
モリの割合を指定します。 この失敗を回
避するために、JVM サーキットブレーカー
を設定できます。 JVM サーキットブレー
カーの設定の詳細については、このガイドの
『AWS サービスエラー処理 (p. 68)』の「JVM
OutOfMemoryError (p. 70)」を参照してくださ
い。
Kibana ダッシュボードで、logstash* などの汎
用的な正規表現を指定します。
過去 7 日の期間にわたるインデックスのサブ
セットに結果を制限するなど、より制限的な正
規表現を使用します。
API Version 2015-01-01
74
Amazon Elasticsearch Service 開発者ガイド
統合: IAM コンソールに、Amazon ES
のサービスロールが表示されません
Firefox でサービスエラーを表示する
1.
メニューで、[ツール]、[ウェブ開発者]、[ネットワーク] の順に選択します。
2.
3.
ステータスが 500 の任意の HTTP セッションを選択します。
[レスポンス] タブを選択して、サービス応答を表示します。
統合: IAM コンソールに、Amazon ES のサービス
ロールが表示されません
このガイドの「Amazon S3 から Amazon ES にストリーミングデータをロードする (p. 59)」および
「Amazon Kinesis から Amazon ES にストリーミングデータをロードする (p. 62)」で説明されているよう
に、Amazon ES を Amazon S3 および Amazon Kinesis などの他のサービスと統合できます。 これらの統
合の両方で AWS Lambda がクラウド上でイベントハンドラとして使用されます。 AWS Lambda コンソー
ルを使用して Lambda 関数を作成する場合、コンソールは必要な実行ロールの作成に役立つ IAM コンソー
ルを自動的に開きます。 IAM コンソールを自分で開き、サービスロールを選択する必要はありません。 た
だし、AWS Lambda が新しいロールを作成し、それに次の IAM ポリシーをアタッチした後に、IAM コン
ソールを開く必要があります。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"es:*"
],
"Effect": "Allow",
"Resource": "arn:aws:es:us-west-2:123456789012:domain/<my_domain_name>/*"
}
]
}
このガイドの「Amazon S3 から Amazon ES にストリーミングデータをロードする (p. 59)」および
「Amazon Kinesis から Amazon ES にストリーミングデータをロードする (p. 62)」を参照して手順を確認
してください。
API Version 2015-01-01
75
Amazon Elasticsearch Service 開発者ガイド
サポートされるインスタンスタイプ
Amazon Elasticsearch Service の全般
的なリファレンス
Amazon Elasticsearch Service (Amazon ES) は、さまざまなインスタンス、オペレーション、プラグイ
ン、他のリソースをサポートしています。
トピック
• サポートされるインスタンスタイプ (p. 76)
• サポートされている Elasticsearch オペレーション (p. 78)
• サポートされるプラグイン (p. 80)
• サポートされている他のリソース (p. 81)
サポートされるインスタンスタイプ
インスタンスは、仮想コンピューティング環境です。インスタンスタイプは、CPU、メモリ、ストレー
ジ、ネットワークキャパシティーの特定の構成です。Amazon ES ドメインのインスタンスタイプは、イン
スタンス上で実行するアプリケーションやソフトウェアの要件に基づいて選択します。専用マスターノー
ドを有効にした場合、データノードに選択したインスタンスタイプとは異なる専用マスターノードのイン
スタンスタイプを選択できます。
デフォルトの制限は、ドメインあたり 20 インスタンスです。ドメインあたり 100 インスタンスへの引き
上げをリクエストするには、AWS サポートセンターでサポートケースを作成してください。
各インスタンスタイプのサポートされている EBS ボリュームの最小サイズと最大サイズについては、
「EBS Volume Size Limits (p. 112)」を参照してください。
Amazon ES では、次のインスタンスタイプがサポートされています。
T2 インスタンスタイプ
• t2.micro.elasticsearch
• t2.small.elasticsearch
• t2.medium.elasticsearch
Note
• T2 インスタンスタイプは、ドメインのインスタンス数が 10 以下の場合のみ使用できます。
API Version 2015-01-01
76
Amazon Elasticsearch Service 開発者ガイド
サポートされるインスタンスタイプ
• t2.micro.elasticsearch インスタンスは、Elasticsearch バージョン 2.3 または 1.5 でのみサ
ポートされます。
M3 インスタンスタイプ
• m3.medium.elasticsearch
• m3.large.elasticsearch
• m3.xlarge.elasticsearch
• m3.2xlarge.elasticsearch
Note
• M3 インスタンスタイプは、us-east-2、ca-central-1、eu-west-2、ap-northeast-2、ap-south-1
の各リージョンでは使用できません。
M4 インスタンスタイプ
• m4.large.elasticsearch
• m4.xlarge.elasticsearch
• m4.2xlarge.elasticsearch
• m4.4xlarge.elasticsearch
• m4.10xlarge.elasticsearch
C4 インスタンスタイプ
• c4.large.elasticsearch
• c4.xlarge.elasticsearch
• c4.2xlarge.elasticsearch
• c4.4xlarge.elasticsearch
• c4.8xlarge.elasticsearch
R3 インスタンスタイプ
• r3.large.elasticsearch
• r3.xlarge.elasticsearch
• r3.2xlarge.elasticsearch
• r3.4xlarge.elasticsearch
• r3.8xlarge.elasticsearch
Note
• R3 インスタンスタイプは、ca-central-1、eu-west-2、sa-east-1 の各リージョンでは使用できま
せん。
R4 インスタンスタイプ
• r4.large.elasticsearch
• r4.xlarge.elasticsearch
• r4.2xlarge.elasticsearch
API Version 2015-01-01
77
Amazon Elasticsearch Service 開発者ガイド
サポートされている Elasticsearch オペレーション
• r4.4xlarge.elasticsearch
• r4.8xlarge.elasticsearch
• r4.16xlarge.elasticsearch
I2 インスタンスタイプ
• i2.xlarge.elasticsearch
• i2.2xlarge.elasticsearch
Note
• I2 インスタンスタイプは、sa-east-1、ca-central-1、eu-west-2、us-east-2 の各リージョンでは
使用できません。
サポートされている Elasticsearch オペレーション
Amazon ES は現在、Elasticsearch バージョン 1.5、2.3、5.1 をサポートしています。以下のトピックは、
各バージョンの場合に Amazon ES でサポートされる操作を示しています。
トピック
• バージョン 1.5 (p. 78)
• バージョン 2.3 (p. 79)
• バージョン 5.1 (p. 79)
バージョン 1.5
Elasticsearch 1.5 の場合、Amazon ES では次の操作がサポートされています。
• /_alias
• /_cluster/stats
• /_refresh
• /_aliases
• /_all
• /_analyze
• /_count
• /_flush
• /_mapping
• /_search
• /_snapshot
• /_stats
• /_bulk
• /_cat
• /_mget
• /_msearch
• /_status
• /_template
• /_cluster/health
• /_nodes
• /_cluster/settings を使用する 3 つのプロパ
ティ (PUT のみ):
• /_percolate
• /_plugin/kibana
• /_plugin/kibana3
• indices.breaker.fielddata.limit
• indices.breaker.request.limit
• indices.breaker.total.limit
Elasticsearch 1.5 オペレーションの詳細については、Elasticsearch ドキュメントを参照してください。
Note
/_cluster/settings オペレーションでは、HTTP GET メソッドはサポートされていません。 3
つのクラスター設定を設定できますが、取得することはできません。/_cluster/settings を使用
して Amazon ES に JVM ベースのメモリブレーカーを設定する方法の詳細については、このガイ
API Version 2015-01-01
78
Amazon Elasticsearch Service 開発者ガイド
バージョン 2.3
ドの「JVM OutOfMemory Error」を参照してください。サポートされる 3 つのクラスター設定の
詳細については、Elasticsearch のドキュメントの「Cluster Update Settings」と「Field Data」を
参照してください。
バージョン 2.3
Elasticsearch 2.3 の場合、Amazon ES では次の操作がサポートされています。
• /_alias
• /_cluster/stats
• /_aliases
• /_all
• /_analyze
• /_count
• /_flush
• /_forcemerge (インデッ
クスのみ)
• /_bulk
• /_cache/clear (インデックスのみ)
• /_cat
• /_cluster/health
• /_cluster_settings を使用する 3 つのプロ
パティ (PUT のみ):
• indices.breaker.fielddata.limit
• /_recovery (インデッ
クスのみ)
• /_mapping
• /_mget
• /_refresh
• /_search
• /_segments (インデッ
クスのみ)
• /_snapshot
• /_msearch
• /_nodes
• /_status
• /_percolate
• /_stats
• /_template
• /_plugin/kibana
• indices.breaker.request.limit
• indices.breaker.total.limit
Elasticsearch 2.3 オペレーションの詳細については、Elasticsearch ドキュメントを参照してください。
Note
/_cluster/settings オペレーションでは、HTTP GET メソッドはサポートされていません。 3
つのクラスター設定を設定できますが、取得することはできません。/_cluster/settings を使用
して Amazon ES に JVM ベースのメモリブレーカーを設定する方法の詳細については、このガイ
ドの「JVM OutOfMemory Error」を参照してください。サポートされる 3 つのクラスター設定の
詳細については、Elasticsearch のドキュメントの「Cluster Update Settings」と「Field Data」を
参照してください。
バージョン 5.1
Elasticsearch 5.1 の場合、Amazon ES では次の操作がサポートされています。
• /_alias
• /_cluster/state
• /_aliases
• /_all
• /_analyze
• /_cluster/stats
• /_count
• /_delete_by_query*
• /_bulk
• /_cache/clear (インデックスのみ)
• /_explain
• /_field_stats
• /_cat
• /_flush
• /_cluster/allocation/explain
• /_cluster/health
• /_cluster/pending_tasks
• /_forcemerge (インデッ
クスのみ)
• /_cluster_settings を使用する 3 つのプロ
パティ (PUT のみ):
• /_ingest
• /_mapping
• /_mget
API Version 2015-01-01
79
• /_recovery (インデッ
クスのみ)
• /_refresh
• /_reindex*
• /_rollover
• /_search
• /_search profile
• /_segments (インデッ
クスのみ)
• /_shard_stores
• /_shrink
• /_snapshot
• /_stats
Amazon Elasticsearch Service 開発者ガイド
サポートされるプラグイン
• indices.breaker.fielddata.limit
• /_msearch
• /_status
• indices.breaker.request.limit
• indices.breaker.total.limit
• /_mtermvectors
• /_nodes
• /_plugin/kibana
•
•
•
•
•
/_tasks
/_template
/_termvectors
/_update_by_query*
/_validate
* クラスター構成を変更すると、これらの操作が完了する前に中断される可能性があります。リクエスト
が正常に完了したことを確認するには、これらの操作とともに /_tasks 操作を使用することをお勧めしま
す。
Elasticsearch 5.1 オペレーションの詳細については、Elasticsearch ドキュメントを参照してください。
Note
/_cluster/settings オペレーションでは、HTTP GET メソッドはサポートされていません。 3
つのクラスター設定を設定できますが、取得することはできません。/_cluster/settings を使用
して Amazon ES に JVM ベースのメモリブレーカーを設定する方法の詳細については、このガイ
ドの「JVM OutOfMemory Error」を参照してください。サポートされる 3 つのクラスター設定の
詳細については、Elasticsearch のドキュメントの「Cluster Update Settings」と「Field Data」を
参照してください。
サポートされるプラグイン
Amazon ES には、Elasticsearch コミュニティから使用できるいくつかのプラグインがパッケージされて
います。プラグインは、自動的にデプロイされて管理されます。
Amazon ES では、Elasticsearch 5.1 の以下のプラグインがサポートされています。
• Japanese (kuromoji) Analysis
• ICU Analysis
• Phonetic Analysis
• Smart Chinese Analysis
• Stempel Polish Analysis
• Ingest Attachment Processor
• Ingest User Agent Processor
• Mapper Murmur3
Note
Kibana 5 は Elasticsearch 5.1 でサポートされますが、プラグインとしてではなく、Node.js アプ
リケーションとして実行されます。
Amazon ES では、Elasticsearch 2.3 の以下のプラグインがサポートされています。
• Japanese (kuromoji) Analysis
• ICU Analysis
• Phonetic Analysis
• Kibana 4
Amazon ES では、Elasticsearch 1.5 の以下のプラグインがサポートされています。
API Version 2015-01-01
80
Amazon Elasticsearch Service 開発者ガイド
出力プラグイン
• Japanese (kuromoji) Analysis
•
•
•
•
ICU Analysis
Phonetic Analysis
Kibana 3
Kibana 4
出力プラグイン
Amazon ES は、Amazon ES にデータをストリーミングするため、2 つの Logstash 出力プラグインをサ
ポートしています。標準の elasticsearch プラグイン、および によって提供され、Logstash イベントを
Amazon ES に署名し、エクスポートする logstash-output-amazon-es プラグイン。
Logstash の詳細については、「Logstash プラグインを使用した、データの一括読み込み」を参照してく
ださい。
サポートされている他のリソース
bootstrap.mlockall
サービスにより、elasticsearch.yml の bootstrap.mlockall が有効になります。これにより、JVM
メモリがロックされ、オペレーティングシステムがディスクにスワップされなくなります。これは、
以下を除いて、サポートされているすべてのインスタンスタイプに適用されます。
• t2.micro.elasticsearch
• t2.small.elasticsearch
• t2.medium.elasticsearch
スクリプト モジュール
このサービスは、Elasticsearch 5.1 の動的スクリプトをサポートしています。1.5 または 2.3 の動的ス
クリプトはサポートしていません。
Elasticsearch 5.1 でサポートされているスクリプトオプションには、以下が含まれます。
• Painless
• Lucene Expressions
• Mustache
TCP トランスポート
このサービスは、ポート 80 の HTTP をサポートしていますが、TCP トランスポートはサポートして
いません。
API Version 2015-01-01
81
Amazon Elasticsearch Service 開発者ガイド
アクション
Amazon Elasticsearch Service 設定
API リファレンス
このリファレンスでは、Amazon Elasticsearch Service 設定 API のアクション、データタイプ、エラーに
ついて説明します。設定 API は、HTTP 経由で Amazon ES ドメインを作成および設定するのに使用でき
る REST API です。AWS CLI とコンソールを使用して Amazon ES ドメインを設定することもできます。
詳細については、「Amazon ES ドメインの作成を設定 (p. 16)」を参照してください。
• アクション (p. 82)
• データ型 (p. 101)
• エラー (p. 109)
アクション
次の表では、Amazon Elasticsearch Service 設定 API に対して REST インターフェイスがとる各オペレー
ションに必要な、HTTP メソッドへのクイックリファレンスをご覧いただけます。各オペレーションの説
明には、必要な HTTP メソッドも記載されています。
Note
すべての設定サービスリクエストに、必ず署名してください。詳細については、このガイドの
「Amazon Elasticsearch サービスリクエストの署名 (p. 54)」および『AWS General Reference』
の「署名バージョン 4 の署名プロセス」を参照してください。
アクション
HTTP メソッド
AddTags (p. 83)
POST
CreateElasticsearchDomain (p. 84)
POST
DeleteElasticsearchDomain (p. 87)
DELETE
DescribeElasticsearchDomain (p. 89)
GET
API Version 2015-01-01
82
Amazon Elasticsearch Service 開発者ガイド
AddTags
アクション
HTTP メソッド
DescribeElasticsearchDomains (p. 90)
POST
DescribeElasticsearchDomainConfig (p. 93)
GET
ListDomainNames (p. 92)
GET
ListTags (p. 95)
GET
RemoveTags (p. 96)
POST
UpdateElasticsearchDomainConfig (p. 98)
POST
AddTags
Amazon ES ドメインにリソースタグを添付します。このオペレーションには POST HTTP メソッドを使用
します。詳細については、「Amazon ES ドメインのタグ付け (p. 55)」を参照してください。
構文
POST /2015-01-01/tags
{
"ARN": "<DOMAIN_ARN>",
"TagList": [
{
"Key": "<TAG_KEY>",
"Value": "<TAG_VALUE>"
}
]
}
リクエストパラメータ
この操作ではリクエストパラメータを使用しません。
リクエスト本文
パラメータ
データ型
必須?
説明
TagList
TagList (p. 109)
はい
リソースタグの一覧
ARN
ARN (p. 102)
はい
リソースタグを添付する
Amazon ES ドメインの
Amazon リソースネーム
(ARN)。
レスポンス要素
該当しません. AddTags オペレーションはデータ構造を返しません。
エラー
AddTags オペレーションは次のエラーを返すことができます。
API Version 2015-01-01
83
Amazon Elasticsearch Service 開発者ガイド
CreateElasticsearchDomain
• BaseException (p.
)
• LimitExceededException (p.
)
• ValidationException (p.
• InternalException (p.
)
)
例
次の例は logs Amazon ES ドメインに project のタグキーを伴う単一のリソースタグをアタッチします。
リクエスト
POST /2015-01-01/tags
{
"ARN": "<DOMAIN_ARN>",
"TagList": [
{
"Key": "project",
"Value": "trident"
}
]
}
レスポンス
HTTP/1.1 200 OK
x-amzn-RequestId: 5a6a5790-536c-11e5-9cd2-b36dbf43d89e
Content-Type: application/json
Content-Length: 0
Date: Sat, 05 Sep 2015 01:20:55 GMT
CreateElasticsearchDomain
新しい Amazon ES ドメインを作成します。このオペレーションには HTTP POST メソッドを使用します。
詳細については、「Amazon ES ドメインの作成」を参照してください。
構文
POST /2015-01-01/es/domain
{
"DomainName": "<DOMAIN_NAME>",
"ElasticsearchVersion": "<VERSION>",
"ElasticsearchClusterConfig": {
"InstanceType": "<INSTANCE_TYPE>",
"InstanceCount": <INSTANCE_COUNT>,
"DedicatedMasterEnabled": "<TRUE|FALSE>",
"DedicatedMasterCount": <INSTANCE_COUNT>,
"DedicatedMasterType": "<INSTANCE_TYPE>",
"ZoneAwarenessEnabled": "<TRUE|FALSE>"
},
"EBSOptions": {
"EBSEnabled": "<TRUE|FALSE>",
"VolumeType": "<VOLUME_TYPE>",
"VolumeSize": "<VOLUME_SIZE>",
"Iops": "<VALUE>"
},
API Version 2015-01-01
84
Amazon Elasticsearch Service 開発者ガイド
CreateElasticsearchDomain
"AccessPolicies": "<ACCESS_POLICY_DOCUMENT>",
"SnapshotOptions": {
"AutomatedSnapshotStartHour": <START_HOUR>
},
"AdvancedOptions": {
"rest.action.multi.allow_explicit_index": "<TRUE|FALSE>",
"indices.fielddata.cache.size": "<PERCENTAGE_OF_HEAP>"
}
}
リクエストパラメータ
このオペレーションでは HTTP リクエストパラメータを使用しません。
リクエスト本文
パラメータ
データ型
必須?
説明
DomainName
DomainName (p. 103)
はい
作成する Amazon ES ドメイン
名。
ElasticsearchVersion
文字列
いいえ
Elasticsearch のバージョ
ン。現在、Amazon ES
は、1.5、2.3、5.1 をサポートし
ています。指定されない場合、デ
フォルトとして 1.5 が使用されま
す。
ElasticsearchClusterConfig
ElasticsearchClusterConfig (p.いいえ
104)
Amazon ES ドメインのクラスター
設定のコンテナ。
EBSOptions
EBSOptions (p. 103)
いいえ
Amazon ES ドメインの EBS
ベースのストレージを有効に
するために必要な、パラメー
タのコンテナ。詳細について
は、「Configuring EBS-based
Storage (p. 25)」を参照してくだ
さい。
AccessPolicies
文字列
いいえ
新しい Amazon ES ドメインのア
クセスポリシーを指定する IAM
ポリシードキュメント。詳細に
ついては、「Configuring Access
Policies (p. 27)」を参照してくださ
い。
SnapshotOptions
SnapshotOptionsStatus (p. 108)いいえ
ドメインインデックスの自動ス
ナップショットを設定するために
必要なパラメータのコンテナ。詳
細については、「スナップショッ
トの設定 (p. 31)」を参照してくだ
さい。
AdvancedOptions
AdvancedOptionsStatus (p. 102)いいえ
以下の詳細オプションを指定する
キーと値のペア:
• rest.action.multi.allow_explicit_index
• indices.fielddata.cache.size
API Version 2015-01-01
85
Amazon Elasticsearch Service 開発者ガイド
CreateElasticsearchDomain
パラメータ
データ型
必須?
説明
詳細については「Configuring
Advanced Options (p. 32)」を参照
してください。
レスポンス要素
フィールド
データ型
説明
DomainStatus
ElasticsearchDomainStatus (p.新しい
105) Amazon ES ドメインのステータス
と設定を指定します。
エラー
CreateElasticsearchDomain は次のエラーを返すことができます。
• BaseException (p.
)
• DisabledOperationException (p.
• InternalException (p.
)
)
• InvalidTypeException (p.
)
• LimitExceededException (p.
)
• ResourceAlreadyExistsException (p.
• ValidationException (p.
)
)
例
以下に
• streaming-logs という名前の Amazon ES ドメインを作成します。
• m3.medium.elasticsearch インスタンスタイプのインスタンス 6 つと、同じタイプの専用マスターノー
ド 3 つで、クラスターを設定します。
• ゾーン対応を有効にする
リクエスト
POST /2015-01-01/es/domain
{
"DomainName": "streaming-logs",
"ElasticsearchVersion": "5.1",
"ElasticsearchClusterConfig": {
"InstanceType": ""m3.medium.elasticsearch"",
"InstanceCount": 6,
"DedicatedMasterEnabled": "true",
"DedicatedMasterCount": 3,
"DedicatedMasterType": "m3.medium.elasticsearch",
"ZoneAwarenessEnabled": "true"
}
}
レスポンス
API Version 2015-01-01
86
Amazon Elasticsearch Service 開発者ガイド
DeleteElasticsearchDomain
HTTP/1.1 200 OK
x-amzn-RequestId: 30b03e92-536f-11e5-9cd2-b36dbf43d89e
Content-Type: application/json
Content-Length: 645
Date: Sat, 05 Sep 2015 01:41:15 GMT
{
"DomainStatus": {
"ARN": "arn:aws:es:us-east-1:123456789012:domain/streaming-logs",
"AccessPolicies": "",
"AdvancedOptions": {
"rest.action.multi.allow_explicit_index": "true"
},
"Created": true,
"Deleted": false,
"DomainId": "123456789012/streaming-logs",
"DomainName": "streaming-logs",
"EBSOptions": {
"EBSEnabled": false,
"Iops": null,
"VolumeSize": null,
"VolumeType": null
},
"ElasticsearchClusterConfig": {
"DedicatedMasterCount": 3,
"DedicatedMasterEnabled": true,
"DedicatedMasterType": "m3.medium.elasticsearch",
"InstanceCount": 6,
"InstanceType": "m3.medium.elasticsearch",
"ZoneAwarenessEnabled": true
},
"ElasticsearchVersion": "5.1",
"Endpoint": null,
"Processing": true,
"SnapshotOptions": {
"AutomatedSnapshotStartHour": 0
}
}
}
DeleteElasticsearchDomain
Amazon ES ドメインと、ドメインにあるすべてのデータを削除します。ドメインは削除された後、復元で
きません。このオペレーションには DELETE HTTP メソッドを使用します。
構文
DELETE /2015-01-01/es/domain/<DOMAIN_NAME>
リクエストパラメータ
パラメータ
データ型
必須?
説明
DomainName
DomainName (p. 103)
はい
削除する Amazon ES ドメインの
名前。
リクエスト本文
このオペレーションでは HTTP リクエスト本文を使用しません。
API Version 2015-01-01
87
Amazon Elasticsearch Service 開発者ガイド
DeleteElasticsearchDomain
レスポンス要素
フィールド
データ型
説明
DomainStatus
ElasticsearchDomainStatus (p. 105)
指定した Amazon ES ドメインの設定を
指定します。
エラー
DeleteElasticsearchDomain オペレーションは次のエラーを返すことができます。
• BaseException (p.
)
• InternalException (p.
)
• ResourceNotFoundException (p.
• ValidationException (p.
)
)
例
次の例では、weblogs ドメインが削除されます。
リクエスト
DELETE /2015-01-01/es/domain/weblogs
レスポンス
HTTP/1.1 200 OK
{
"DomainStatus": {
"ElasticsearchClusterConfig": {
"DedicatedMasterEnabled": true,
"InstanceCount": 6,
"ZoneAwarenessEnabled": true,
"DedicatedMasterType": "m3.medium.elasticsearch",
"InstanceType": "m3.medium.elasticsearch",
"DedicatedMasterCount": 3
},
"ElasticsearchVersion": "5.1",
"Endpoint": "search-weblogs-6qjchdvprdi2v2d2ga5apylts4.us-east-1.es.example.com",
"Created": true,
"Deleted": true,
"DomainName": "test-logs",
"EBSOptions": {
"EBSEnabled": false
},
"SnapshotOptions": {
"AutomatedSnapshotStartHour": 0
},
"DomainId": "123456789012/weblogs",
"AccessPolicies": "",
"Processing": true,
"AdvancedOptions": {
"rest.action.multi.allow_explicit_index": "true"
},
"ARN": "arn:aws:es:us-east-1:123456789012:domain/weblogs"
}
API Version 2015-01-01
88
Amazon Elasticsearch Service 開発者ガイド
DescribeElasticsearchDomain
}
DescribeElasticsearchDomain
ドメイン ID、ドメインサービスエンドポイント、ドメイン ARN など、指定された Amazon ES ドメイン
の設定を説明します。このオペレーションには HTTP GET メソッドを使用します。
構文
GET /2015-01-01/es/domain/<DOMAIN_NAME>
リクエストパラメータ
パラメータ
データ型
必須?
説明
DomainName
DomainName (p. 103)
はい
説明する
Amazon ES ドメ
インの名前。
リクエスト本文
このオペレーションでは HTTP リクエスト本文を使用しません。
レスポンス要素
フィールド
データ型
説明
DomainStatus
ElasticsearchDomainStatus (p. 105)
指定された Amazon ES ドメインの構
成。
エラー
DescribeElasticsearchDomain は次のエラーを返すことができます。
• BaseException (p.
)
• InternalException (p.
)
• ResourceNotFoundException (p.
• ValidationException (p.
)
)
例
次のサンプルは、streaming-logs ドメインの詳細を返します。
リクエスト
GET es.<AWS_DOMAIN>.amazonaws.com/2015-01-01/es/domain/streaming-logs
レスポンス
HTTP/1.1 200 OK
API Version 2015-01-01
89
Amazon Elasticsearch Service 開発者ガイド
DescribeElasticsearchDomains
{
"DomainStatus": {
"ElasticsearchClusterConfig": {
"DedicatedMasterEnabled": true,
"InstanceCount": 3,
"ZoneAwarenessEnabled": false,
"DedicatedMasterType": "m3.medium.elasticsearch",
"InstanceType": "m3.medium.elasticsearch",
"DedicatedMasterCount": 3
},
"ElasticsearchVersion": "5.1",
"Endpoint": "search-streaming-logs-okga24ftzsbz2a2hzhsqw73jpy.useast-1.es.example.com",
"Created": true,
"Deleted": false,
"DomainName": "streaming-logs",
"EBSOptions": {
"EBSEnabled": false
},
"SnapshotOptions": {
"AutomatedSnapshotStartHour": 0
},
"DomainId": "123456789012/streaming-logs",
"AccessPolicies": "",
"Processing": false,
"AdvancedOptions": {
"rest.action.multi.allow_explicit_index": "true",
"indices.fielddata.cache.size": ""
},
"ARN": "arn:aws:es:us-east-1:123456789012:domain/streaming-logs"
}
}
DescribeElasticsearchDomains
最大 5 つの指定 Amazon ES ドメインの、ドメイン設定を説明します。情報には、ドメイン ID、ドメイン
のサービスエンドポイント、ドメイン ARN が含まれます。このオペレーションには HTTP POST メソッド
を使用します。
構文
POST /2015-01-01/es/domain-info
{
"DomainNames": [
"<DOMAIN_NAME>",
"<DOMAIN_NAME>",
]
}
リクエストパラメータ
このオペレーションでは HTTP リクエストパラメータを使用しません。
リクエスト本文
フィールド
データ型
必須?
DomainNames
DomainNameList (p. 103)
はい
説明
次の形式の Amazon ES ドメインの配列:
API Version 2015-01-01
90
Amazon Elasticsearch Service 開発者ガイド
DescribeElasticsearchDomains
フィールド
データ型
必須?
説明
{"DomainNames":
["<Domain_Name>","<Domain_Name>"...]
レスポンス要素
フィールド
データ型
説明
DomainStatusList
ElasticsearchDomainStatusList
リクエストされた各
(p. 107)
Amazon ES ドメイ
ンのステータスを格納するリスト。
エラー
DescribeElasticsearchDomains オペレーションは次のエラーを返すことができます。
• BaseException (p.
)
• InternalException (p.
• ValidationException (p.
)
)
例
次のサンプルは、logs ドメインと streaming-logs ドメインの詳細を返します。
リクエスト
POST es.<AWS_DOMAIN>.amazonaws.com/2015-01-01/es/domain-info/
{
"DomainNames": [
"logs",
"streaming-logs"
]
}
レスポンス
HTTP/1.1 200 OK
{
"DomainStatusList": [
{
"ElasticsearchClusterConfig": {
"DedicatedMasterEnabled": true,
"InstanceCount": 3,
"ZoneAwarenessEnabled": false,
"DedicatedMasterType": "m3.medium.elasticsearch",
"InstanceType": "m3.medium.elasticsearch",
"DedicatedMasterCount": 3
},
"ElasticsearchVersion": "5.1",
"Endpoint": "search-streaming-logs-okga24ftzsbz2a2hzhsqw73jpy.useast-1.es.example.com",
"Created": true,
"Deleted": false,
"DomainName": "streaming-logs",
"EBSOptions": {
API Version 2015-01-01
91
Amazon Elasticsearch Service 開発者ガイド
ListDomainNames
"EBSEnabled": false
},
"SnapshotOptions": {
"AutomatedSnapshotStartHour": 0
},
"DomainId": "123456789012/streaming-logs",
"AccessPolicies": "",
"Processing": false,
"AdvancedOptions": {
"rest.action.multi.allow_explicit_index": "true",
"indices.fielddata.cache.size": ""
},
"ARN": "arn:aws:es:us-east-1:123456789012:domain/streaming-logs"
},
{
"ElasticsearchClusterConfig": {
"DedicatedMasterEnabled": true,
"InstanceCount": 1,
"ZoneAwarenessEnabled": false,
"DedicatedMasterType": "search.m3.medium",
"InstanceType": "search.m3.xlarge",
"DedicatedMasterCount": 3
},
"ElasticsearchVersion": "5.1",
"Endpoint": "search-logs-p5st2kbt77diuihoqi6omd7jiu.us-east-1.es.example.com",
"Created": true,
"Deleted": false,
"DomainName": "logs",
"EBSOptions": {
"Iops": 4000,
"VolumeSize": 512,
"VolumeType": "io1",
"EBSEnabled": true
},
"SnapshotOptions": {
"AutomatedSnapshotStartHour": 0
},
"DomainId": "123456789012/logs",
"AccessPolicies": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"\",
\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":\"es:*\",\"Resource\":
\"arn:aws:es:us-east-1:123456789012:domain/logs/*\"}]}",
"Processing": false,
"AdvancedOptions": {
"rest.action.multi.allow_explicit_index": "true"
},
"ARN": "arn:aws:es:us-east-1:123456789012:domain/logs"
}
]
}
ListDomainNames
現在のユーザーが所有するすべての Amazon ES ドメイン名が表示されます。
構文
GET /2015-01-01/domain
リクエストパラメータ
この操作ではリクエストパラメータを使用しません。
API Version 2015-01-01
92
Amazon Elasticsearch Service 開発者ガイド
DescribeElasticsearchDomainConfig
リクエスト本文
このオペレーションでは HTTP リクエスト本文を使用しません。
レスポンス要素
フィールド
データ型
説明
DomainNameList
DomainNameList (p. 103)
現在のユーザーが所有するすべ
ての Amazon ES ドメイン名。
エラー
ListDomainNames オペレーションは次のエラーを返すことができます。
• BaseException (p.
)
• ValidationException (p.
)
例
次の例には、現在のユーザーが所有するドメイン 3 つすべてが記載されています。
リクエスト
GET es.<AWS_REGION>.amazonaws.com/2015-01-01/domain
レスポンス
{"DomainNames":[{"DomainName":"logs"},{"DomainName":"streaming-logs"},
{"DomainName":"movies"}]}%
DescribeElasticsearchDomainConfig
Amazon ES ドメインの構成を表示します。このオペレーションには HTTP GET メソッドを使用します。
構文
GET /2015-01-01/es/domain/<DOMAIN_NAME>/config
リクエストパラメータ
パラメータ
データ型
必須?
説明
DomainName
DomainName (p. 103)
はい
Amazon ES ドメインの名前。
リクエスト本文
このオペレーションでは HTTP リクエスト本文を使用しません。
API Version 2015-01-01
93
Amazon Elasticsearch Service 開発者ガイド
DescribeElasticsearchDomainConfig
レスポンス要素
フィールド
データ型
説明
DomainConfig
ElasticsearchDomainConfig (p. 104)
Amazon ES ドメインの設定。
エラー
DescribeElasticsearchDomainConfig オペレーションは次のエラーを返すことができます。
• BaseException (p.
• InternalException (p.
)
)
• ResourceNotFoundException (p.
)
例
次の例は、logs ドメインの構成の詳細を返します。
リクエスト
GET es.<AWS_REGION>.amazonaws.com/2015-01-01/es/domain/logs/config
レスポンス
HTTP/1.1 200 OK
{
"DomainConfig": {
"ElasticsearchClusterConfig": {
"Status": {
"PendingDeletion": false,
"State": "Active",
"CreationDate": 1436913638.995,
"UpdateVersion": 15,
"UpdateDate": 1437078577.8
},
"Options": {
"DedicatedMasterEnabled": true,
"InstanceCount": 1,
"ZoneAwarenessEnabled": false,
"DedicatedMasterType": "search.m3.medium",
"InstanceType": "search.m3.xlarge",
"DedicatedMasterCount": 3
}
},
"AdvancedOptions": {
"Status": {
"PendingDeletion": false,
"State": "Active",
"CreationDate": 1436913638.995,
"UpdateVersion": 6,
"UpdateDate": 1436914324.278
},
"Options": {
"rest.action.multi.allow_explicit_index": "true"
}
API Version 2015-01-01
94
Amazon Elasticsearch Service 開発者ガイド
ListTags
},
"EBSOptions": {
"Status": {
"PendingDeletion": false,
"State": "Active",
"CreationDate": 1436913638.995,
"UpdateVersion": 15,
"UpdateDate": 1437078577.8
},
"Options": {
"Iops": 4000,
"VolumeSize": 512,
"VolumeType": "io1",
"EBSEnabled": true
}
},
"AccessPolicies": {
"Status": {
"PendingDeletion": false,
"State": "Active",
"CreationDate": 1436913638.995,
"UpdateVersion": 6,
"UpdateDate": 1436914324.278
},
"Options": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"\",
\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":\"es:*\",\"Resource\":
\"arn:aws:es:us-east-1:123456789012:domain/logs/*\"}]}"
},
"SnapshotOptions": {
"Status": {
"PendingDeletion": false,
"State": "Active",
"CreationDate": 1436913638.995,
"UpdateVersion": 6,
"UpdateDate": 1436914324.278
},
"Options": {
"AutomatedSnapshotStartHour": 0
}
}
}
}
ListTags
Amazon ES ドメインのタグをすべて表示します。このオペレーションには GET HTTP メソッドを使用しま
す。
構文
GET /2015-01-01/tags?arn=<DOMAIN_ARN>
リクエストパラメータ
パラメータ
データ型
必須?
説明
ARN
ARN (p. 102)
はい
Amazon ES ドメイン用 Amazon リソー
スネーム (ARN)。
API Version 2015-01-01
95
Amazon Elasticsearch Service 開発者ガイド
RemoveTags
リクエスト本文
このオペレーションでは HTTP リクエスト本文を使用しません。
レスポンス要素
フィールド
データ型
説明
TagList
TagList (p. 109)
リソースタグの一覧。詳細については、「Amazon
Elasticsearch Service ドメインのタグ付け (p. 55)」を参
照してください。
エラー
ListTags オペレーションは次のエラーを返すことができます。
• BaseException (p.
)
• ResourceNotFoundException (p.
• ValidationException (p.
• InternalException (p.
)
)
)
例
次の例は、logs ドメインにアタッチされるタグを一覧にしています。
リクエスト
GET es.<AWS_REGION>.amazonaws.com/2015-01-01/tags?arn=aws:es:us-east-1:123456789012:domain/
logs/
レスポンス
HTTP/1.1 200 OK
{
"TagList": [
{
"Key": "Environment",
"Value": "MacOS"
},
{
"Key": "project",
"Value": "trident"
}
]
}
RemoveTags
Amazon Amazon ES ドメインから指定したリソースタグを削除します。このオペレーションには POST
HTTP メソッドを使用します。
構文
POST es.<AWS_REGION>.amazonaws.com/2015-01-01/tags-removal
API Version 2015-01-01
96
Amazon Elasticsearch Service 開発者ガイド
RemoveTags
{
"ARN": "<DOMAIN_ARN>",
"TagKeys": [
"<TAG_KEY>",
"<TAG_KEY>",
...
]
}
リクエストパラメータ
このオペレーションでは HTTP リクエストパラメータを使用しません。
リクエスト本文
パラメータ
データ型
必須?
説明
ARN
ARN (p. 102)
はい
Amazon ES ドメインの Amazon リソース
ネーム (ARN)。詳細については、『AWS
Identity and Access Management の使用』の
「IAM エンティティのための ID」を参照し
てください。
TagKeys
TagKey (p. 109)
はい
Amazon ES ドメインから削除するリソース
タグのタグキーのリスト。
レスポンス要素
該当しません. RemoveTags オペレーションでは、レスポンス要素は返しません。
エラー
RemoveTags オペレーションは次のエラーを返すことができます。
• BaseException (p.
)
• ValidationException (p.
• InternalException (p.
)
)
例
次の例では、Amazon ES ドメインから project のタグキーを持つリソースタグを削除します。
リクエスト
POST /2015-01-01/tags-removal
{
"ARN": "<DOMAIN_ARN>",
"TagKeys": [
"project"
]
}
このオペレーションでは、レスポンス要素は返しません。
API Version 2015-01-01
97
Amazon Elasticsearch Service 開発者ガイド
UpdateElasticsearchDomainConfig
UpdateElasticsearchDomainConfig
インスタンスタイプや数など、Amazon ES ドメインの構成を調整します。このオペレーションには POST
HTTP メソッドを使用します。
構文
POST /2015-01-01/es/domain/<DOMAIN_NAME>/config
{
"ElasticsearchClusterConfig": {
"InstanceType": "<INSTANCE_TYPE>",
"Instance_Count": <INSTANCE_COUNT>,
"DedicatedMasterEnabled": "<TRUE|FALSE>",
"DedicatedMasterCount": <INSTANCE_COUNT>,
"DedicatedMasterType": "<INSTANCE_COUNT>",
"ZoneAwarenessEnabled": "<TRUE|FALSE>"
},
"EBSOptions": {
"EBSEnabled": "<TRUE|FALSE>",
"VolumeType": "<VOLUME_TYPE>",
"VolumeSize": "<VOLUME_SIZE>",
"Iops": "<VALUE>"
},
"AccessPolicies": "<ACCESS_POLICY_DOCUMENT>",
"SnapshotOptions": {
"AutomatedSnapshotStartHour": <START_HOUR>,
"AdvancedOptions": {
"rest.action.multi.allow_explicit_index": "<TRUE|FALSE>",
"indices.fielddata.cache.size": "<PERCENTAGE_OF_HEAP>"
}
}
リクエストパラメータ
このオペレーションでは HTTP リクエストパラメータを使用しません。
リクエスト本文
パラメータ
データ型
必須?
説明
DomainName
DomainName (p. 103)
はい
設定を更新する Amazon ES ドメイ
ンの名前。
ElasticsearchClusterConfig
ElasticsearchClusterConfig (p.いいえ
104)
いいえ
インスタンスタイプや EC2 インスタ
ンスの数など、クラスター設定に必
要な変更。
EBSOptions
EBSOptions (p. 103)
データノードにアタッチされた EBS
ボリュームのサイズ。
SnapshotOptions
SnapshotOptionsStatus (p. 108) いいえ
Amazon ES ドメインでサービスがイ
ンデックスの自動スナップショット
を毎日作成する時間。
AdvancedOptions
AdvancedOptionsStatus (p. 102) いいえ
以下の詳細オプションを指定する
キーと値のペア:
• rest.action.multi.allow_explicit_index
- HTTP リクエスト本文中で、イ
API Version 2015-01-01
98
Amazon Elasticsearch Service 開発者ガイド
UpdateElasticsearchDomainConfig
パラメータ
データ型
必須?
説明
ンデックスへの明示参照を許可
するかどうかを指定します。特
定のインデックスやドメイン API
など、ドメインのサブリソース
のアクセスポリシーを設定する
場合、このプロパティを無効に
する必要があります。詳細につ
いては、「Configuring Access
Policies (p. 27)」を参照してくださ
い。
• indices.fielddata.cache.size フィールドデータに割り当てられ
る Java ヒープスペースの割合を指
定します。デフォルトでは、この
設定は unbounded です。詳細につ
いては、Elasticsearch のドキュメ
ントの「フィールドデータ」を参
照してください。
AccessPolicies
文字列
いいえ
Amazon ES ドメインへのアクセ
スポリシーを指定します。詳細に
ついては、「Configuring Access
Policies (p. 27)」を参照してくださ
い。
レスポンス要素
フィールド
データ型
説明
DomainConfig
文字列
設定を更新した後の Amazon ES ドメインのステータス。
エラー
UpdateElasticsearchDomainConfig は次のエラーを返すことができます。
• BaseException (p.
)
• InternalException (p.
• InvalidTypeException (p.
• LimitExceededException (p.
• ValidationException (p.
)
)
)
)
例
次の例では、毎日午前 3:00 (GMT) からの 1 時間に発生する、streaming-logs ドメインの自動スナップ
ショットを設定します。
リクエスト
POST es.<AWS_REGION>.amazonaws.com/2015-01-01/es/domain/streaming-logs/config
{
API Version 2015-01-01
99
Amazon Elasticsearch Service 開発者ガイド
UpdateElasticsearchDomainConfig
"SnapshotOptions": {
"AutomatedSnapshotStartHour": 3
}
}
レスポンス
{
"DomainConfig": {
"AccessPolicies": {
"Options": "",
"Status": {
"CreationDate": 1441929121.098,
"PendingDeletion": false,
"State": "Active",
"UpdateDate": 1441929121.098,
"UpdateVersion": 22
}
},
"AdvancedOptions": {
"Options": {
"indices.fielddata.cache.size": "",
"rest.action.multi.allow_explicit_index": "true"
},
"Status": {
"CreationDate": 1441230557.921,
"PendingDeletion": false,
"State": "Active",
"UpdateDate": 1441231536.923,
"UpdateVersion": 19
}
},
"EBSOptions": {
"Options": {
"EBSEnabled": false,
"Iops": null,
"VolumeSize": null,
"VolumeType": null
},
"Status": {
"CreationDate": 1440706652.618,
"PendingDeletion": false,
"State": "Active",
"UpdateDate": 1440707401.259,
"UpdateVersion": 6
}
},
"ElasticsearchClusterConfig": {
"Options": {
"DedicatedMasterCount": 3,
"DedicatedMasterEnabled": true,
"DedicatedMasterType": "m3.medium.elasticsearch",
"InstanceCount": 3,
"InstanceType": "m3.medium.elasticsearch",
"ZoneAwarenessEnabled": false
},
"Status": {
"CreationDate": 1440706652.618,
"PendingDeletion": false,
"State": "Active",
"UpdateDate": 1441231536.923,
"UpdateVersion": 19
}
},
"SnapshotOptions": {
API Version 2015-01-01
100
Amazon Elasticsearch Service 開発者ガイド
データ型
"Options": {
"AutomatedSnapshotStartHour": 3
},
"Status": {
"CreationDate": 1440706652.618,
"PendingDeletion": false,
"State": "Active",
"UpdateDate": 1441929119.716,
"UpdateVersion": 22
}
}
}
}
データ型
このセクションでは、REST 設定 APIで使用されるデータタイプについて説明します。
AdvancedOptions
Elasticsearch の詳細設定オプションを指定する、キーと値の文字列のペア。
フィールド
データ型
説明
rest.action.multi.allow_explicit_index
キー値文字列のペア:
HTTP リクエスト本文
中で、インデックス
rest.action.multi.allow_explicit_index=<true|
への明示参照を許可す
false>
るかどうかを指定しま
す。特定のインデック
スやドメイン API な
ど、ドメインのサブリ
ソースのアクセスポリ
シーを設定する場合、
このプロパティを無効
にする必要がありま
す。詳細については、
「URL-based Access
Control」を参照して
ください。サブリソー
スのためのアクセス
ポリシーについては、
「Configuring Access
Policies (p. 27)」を参照
してください。
indices.fielddata.cache.size
キー値文字列のペア:
フィールドデータに
割り当てられる Java
indices.fielddata.cache.size=<percentage_of_heap>
ヒープスペースの割
合を指定します。デ
フォルトでは、この
設定は unbounded
です。詳細について
は、Elasticsearch のド
キュメントの「フィー
ルドデータ」を参照し
てください。
API Version 2015-01-01
101
Amazon Elasticsearch Service 開発者ガイド
AdvancedOptionsStatus
AdvancedOptionsStatus
Amazon ES ドメイン用詳細設定オプションの更新のステータス。
フィールド
データ型
説明
オプション
AdvancedOptions (p. 101)
Elasticsearch の詳細設定オプ
ションを指定する、キーと値の
文字列のペア。
ステータス
OptionStatus (p. 107)
Amazon ES ドメイン用詳細設定
オプションの更新のステータス
ARN
フィールド
データ型
説明
ARN
文字列
Amazon ES ドメインの Amazon リソース
ネーム (ARN)。詳細については、『AWS
Identity and Access Management』の
「IAM ARN」を参照してください。
CreateElasticsearchDomainRequest
CreateElasticsearchDomainサービス運用
フィールド
データ型
説明
DomainName
DomainName (p. 103)
作成する Amazon ES ドメイン名。
ElasticsearchClusterConfigElasticsearchClusterConfig (p.
Amazon
104) ES ドメインのクラスター設定の
コンテナ。
EBSOptions
EBSOptions (p. 103)
Amazon ES ドメインの EBS ベース
のストレージを有効にするために必
要な、パラメータのコンテナ。詳細に
ついては、「Configuring EBS-based
Storage (p. 25)」を参照してください。
AccessPolicies
文字列
新しい Amazon ES ドメインのアクセス
ポリシーを指定する IAM ポリシードキュ
メント。詳細については、「Configuring
Access Policies (p. 27)」を参照してくださ
い。
SnapshotOptions
SnapshotOptionsStatus (p. 108)
ドメインインデックスの自動スナップ
AdvancedOptions
AdvancedOptionsStatus (p. 102)
以下の詳細オプションを指定するキーと値
ショットを設定するために必要なパラメー
タのコンテナ。詳細については、「スナッ
プショットの設定 (p. 31)」を参照してく
ださい。
のペア:
API Version 2015-01-01
102
Amazon Elasticsearch Service 開発者ガイド
DomainID
フィールド
データ型
説明
• rest.action.multi.allow_explicit_index
• indices.fielddata.cache.size
詳細については「Configuring Advanced
Options (p. 32)」を参照してください。
DomainID
データ型
説明
文字列
Amazon ES ドメイン用の一意の識別子
DomainName
Amazon ES ドメインの名前。
データ型
説明
文字列
Amazon ES ドメインの名前。ドメイン名は、AWS リージョン内の同じア
カウントによって所有されるドメイン間で一意です。ドメイン名は小文字
で始まり、3 ~ 28 文字で構成される必要があります。有効な文字は、a ~
z (小文字のみ)、0 ~ 9、– (ハイフン) です。
DomainNameList
Amazon ES ドメイン名の文字列。
データ型
説明
文字列配列
次の形式の Amazon ES ドメインの配列:
["<Domain_Name>","<Domain_Name>"...]
EBSOptions
Amazon ES ドメインの EBS ベースのストレージを有効にするために必要な、パラメータのコンテナ。詳
細については、「Configuring EBS-based Storage (p. 25)」を参照してください。
フィールド
データ型
説明
EBSEnabled
Boolean
EBS ボリュームを Amazon ES ドメインのデータノー
ドにアタッチするかどうかを表します。
VolumeType
文字列
データノードにアタッチされた EBS ボリュームのタイ
プを指定します。
API Version 2015-01-01
103
Amazon Elasticsearch Service 開発者ガイド
ElasticsearchClusterConfig
フィールド
データ型
説明
VolumeSize
文字列
データノードにアタッチされた EBS ボリュームのサイ
ズを指定します。
Iops
文字列
データノードにアタッチされた EBS ボリュームのベー
スライン入出力 (I/O) パフォーマンスを指定します。プ
ロビジョニングされた IOPS EBS ボリュームタイプに
対してのみ適用できます。
ElasticsearchClusterConfig
Amazon ES ドメインのクラスター設定のコンテナ。
フィールド
データ型
説明
InstanceType
文字列
クラスターのデータノードのインスタンスタイ
プ。
InstanceCount
整数
クラスターのインスタンスの数。
DedicatedMasterEnabled
Boolean
専用マスターノードがクラスターに対して有効か
どうかを表します。クラスターが専用マスター
ノードを使用する場合は、True。クラスターが専
用マスターノードを使用しない場合は、False。
詳細については、「専用マスターノードについ
て (p. 35)」を参照してください。
DedicatedMasterType
文字列
クラスターの専用マスターノードの Amazon ES イ
ンスタンスタイプ。
DedicatedMasterCount
整数
クラスター内の専用マスターノードの数。
ZoneAwarenessEnabled
Boolean
ゾーン意識が有効かどうかを表します。ゾーン対
応は、1 つのクラスターに属するノードと複製イ
ンデックスシャードを、同じリージョン内の 2 つ
のアベイラビリティーゾーンにわたり割り当てま
す。
ゾーン対応を有効にする場合、Elasticsearch クラ
スターのデータを複製するために、インスタンス
数に偶数のインスタンスを持ち、Amazon ES 設定
API を使用する必要があります。
詳細については、「Enabling Zone
Awareness (p. 38)」を参照してください。
ElasticsearchDomainConfig
Amazon ES ドメイン設定のコンテナ。
フィールド
データ型
説明
ElasticsearchClusterConfig
ElasticsearchClusterConfig (p.
Amazon
104) ES ドメインのクラス
ター設定のコンテナ。
API Version 2015-01-01
104
Amazon Elasticsearch Service 開発者ガイド
ElasticsearchDomainStatus
フィールド
データ型
説明
EBSOptions
EBSOptions (p. 103)
Amazon ES ドメイン用に設定
された EBS オプションのコン
テナ。
AccessPolicies
文字列
Amazon ES ドメインへのアク
セスポリシーを指定します。詳
細については、「Configuring
Access Policies (p. 27)」を参照
してください。
SnapshotOptions
SnapshotOptionsStatus (p. 108)Amazon ES ドメインでサービ
AdvancedOptions
AdvancedOptionsStatus (p. 101)以下の詳細オプションを指定す
スがインデックスの自動スナッ
プショットを毎日作成する時
間。詳細については、「スナッ
プショットの設定 (p. 31)」を参
照してください。
るキーと値のペア:
• rest.action.multi.allow_explicit_index
- HTTP リクエスト本文中
で、インデックスへの明示参
照を許可するかどうかを指定
します。特定のインデックス
やドメイン API など、ドメ
インのサブリソースのアクセ
スポリシーを設定する場合、
このプロパティを無効にする
必要があります。詳細につい
ては、「Configuring Access
Policies (p. 27)」を参照して
ください。
• indices.fielddata.cache.size
- フィールドデータに割り当
てられる Java ヒープスペー
スの割合を指定します。デ
フォルトでは、この設定は
unbounded です。詳細につい
ては、Elasticsearch のドキュ
メントの「フィールドデー
タ」を参照してください。
ElasticsearchDomainStatus
DomainStatusデータ構造
フィールド
データ型
説明
DomainID
DomainID (p. 103)
Amazon ES ドメイン用の一意の
識別子。
DomainName
DomainName (p. 103)
Amazon ES ドメインの名前。ド
メイン名は、AWS リージョン内
API Version 2015-01-01
105
Amazon Elasticsearch Service 開発者ガイド
ElasticsearchDomainStatus
フィールド
データ型
説明
の同じアカウントによって所有
されるドメイン間で一意です。
ドメイン名は小文字で始まり、3
~ 28 文字で構成される必要が
あります。有効な文字は、a ~ z
(小文字のみ)、0 ~ 9、– (ハイフ
ン) です。
ElasticsearchVersion
文字列
Elasticsearch のバージョ
ン。現在、Amazon ES では
1.5、2.3、5.1 をサポートしてい
ます。
ARN
ARN (p. 102)
Amazon ES ドメインの Amazon
リソースネーム (ARN)。詳細に
ついては、『AWS Identity and
Access Management の使用』
の「IAM エンティティのための
ID」を参照してください。
Created
Boolean
Amazon ES ドメインの作成のス
テータス。ドメイン作成が完了
している場合、True。ドメイン
作成が進行中の場合、False。
Deleted
Boolean
Amazon ES ドメインの削除の
ステータス。ドメインの削除
が完了している場合、True。
ドメインの削除が進行中の場
合、False。
Endpoint
ServiceUrl (p. 108)
インデックス、検索、データ
アップロードのリクエストを
Amazon ES ドメインに送信する
ために使用されるドメイン固有
のエンドポイント。
Processing
Boolean
Amazon ES ドメインの構成変
更のステータス。サービスが、
まだ構成変更を処理している場
合、True。構成変更がアクティ
ブである場合、False。ドメイン
のステータスがアクティブにな
るのを待ってから、インデック
ス、検索、データアップロード
のリクエストを送信する必要が
あります。
ElasticsearchClusterConfig
ElasticsearchClusterConfig (p. 104)
Amazon ES ドメインのクラス
ター設定のコンテナ。
API Version 2015-01-01
106
Amazon Elasticsearch Service 開発者ガイド
ElasticsearchDomainStatusList
フィールド
データ型
説明
EBSOptions
EBSOptions (p. 103)
Amazon ES ドメインの EBS
ベースのストレージを有効に
するために必要な、パラメー
タのコンテナ。詳細について
は、「Configuring EBS-based
Storage (p. 25)」を参照してくだ
さい。
AccessPolicies
文字列
新しい Amazon ES ドメインのア
クセスポリシーを指定する IAM
ポリシードキュメント。詳細に
ついては、「Configuring Access
Policies (p. 27)」を参照してくだ
さい。
SnapshotOptions
SnapshotOptions (p. 108)
毎日実行される、Amazon ES ド
メインのインデックスの自動ス
ナップショットの時刻を設定す
るために必要なパラメータのコ
ンテナ。
AdvancedOptions
AdvancedOptions (p. 101)
Elasticsearch の詳細設定オプ
ションを指定する、キーと値の
文字列のペア。
ElasticsearchDomainStatusList
指定された各 Amazon ES ドメインのステータスを格納するリスト。
フィールド
データ型
説明
DomainStatusList
ElasticsearchDomainStatus (p. 105)
指定された各 Amazon ES ド
メインのステータスを格納す
るリスト。
OptionState
Amazon ES ドメインの詳細オプションの更新のステータス。
フィールド
データ型
説明
OptionStatus
文字列
3 つの有効な値のうちの 1 つ:
• RequiresIndexDocuments
• Processing
• アクティブ
OptionStatus
Amazon ES ドメイン用設定オプションの更新のステータス。
API Version 2015-01-01
107
Amazon Elasticsearch Service 開発者ガイド
ServiceURL
フィールド
データ型
説明
CreationDate
タイムスタンプ
Amazon ES ドメインが作成された日時
UpdateDate
タイムスタンプ
Amazon ES ドメインが更新された日時
UpdateVersion
整数
エンティティの最新バージョンを指定する
整数
State
OptionState (p. 107)
Amazon ES ドメイン用設定オプションの更
新のステータス
PendingDeletion
Boolean
Amazon ES ドメインとそのリソースすべて
を完全に削除するリクエストを、サービス
が処理しているかどうかを表します
ServiceURL
インデックス、検索、データアップロードのリクエストを Amazon ES ドメインに送信するために使用さ
れるドメイン固有のエンドポイント。
フィールド
データ型
説明
ServiceURL
文字列
インデックス、検索、データアップロードのリクエストを
Amazon ES ドメインに送信するために使用されるドメイン固有
のエンドポイント
SnapshotOptions
Amazon ES ドメインで、毎日実行されるインデックスの自動スナップショットの時刻を設定するために必
要なパラメータのコンテナ。
フィールド
データ型
説明
AutomatedSnapshotStartHour
整数
Amazon ES ドメインでサービスがイン
デックスの自動スナップショットを毎日
作成する時間
SnapshotOptionsStatus
毎日実行される、Amazon ES ドメイン用の自動スナップショットの設定に対する更新のステータス。
フィールド
データ型
説明
Options
SnapshotOptions (p. 108)
Amazon ES ドメインで、毎日実行され
るインデックスの自動スナップショット
の時刻を設定するために必要なパラメー
タのコンテナ
Status
OptionStatus (p. 107)
Amazon ES ドメイン用スナップショッ
トオプションの更新のステータス
API Version 2015-01-01
108
Amazon Elasticsearch Service 開発者ガイド
Tag
Tag
フィールド
データ型
説明
Key
TagKey (p. 109)
タグに必要な名前。タグキーは添付される
Amazon ES ドメインで一意にする必要がありま
す。詳細については、「Amazon Elasticsearch
Service ドメインのタグ付け (p. 55)」を参照して
ください。
Value
TagValue (p. 109)
タグの文字列値 (オプション)。タグ値は null を指
定できます。また、タグセット内で一意である必
要はありません。例えば、project/Trinity と costcenter/Trinity のタグセット内に 1 つのキーと値の
ペアを使用できます。
TagKey
フィールド
データ型
説明
Key
文字列
タグの名前。文字列は 128 文字まで設定できま
す。
TagList
フィールド
データ型
説明
Tag
Tag (p. 109)
Amazon ES ドメインに添付されたリソースタグ。
フィールド
データ型
説明
Value
文字列
TagKey に対し、値を保持します。文字列は 256
TagValue
文字まで設定できます。
エラー
Amazon ES は次のエラーをスローします。
例外
説明
BaseException
すべてのサービスエラーにスローされます。エラーの HTTP ス
テータスコードを格納します。
API Version 2015-01-01
109
Amazon Elasticsearch Service 開発者ガイド
エラー
例外
説明
HTTP リクエストに無効な入力が含まれているか、必要な入力が
欠けていると、スローされます。HTTP ステータスコード 400 が
返されます。
ValidationException
クライアントがサポート対象外のオペレーションを実行しようと
するとスローされます。HTTP ステータスコード 409 が返されま
す。
DisabledOperationException
リクエストの処理中にサービスの内部エラーが発生するとスロー
されます。HTTP ステータスコード 500 が返されます。
InternalException
Amazon ES ドメインの、無効、またはサポートされていないサ
ブリソースを作成、またはアクセスしようとするとスローされま
す。HTTP ステータスコード 409 が返されます。
InvalidTypeException
Amazon ES ドメインのリソースとサブリソースを、許可された
数以上作成しようとしたり、許可されていないタイプを作成しよ
うとすると、スローされます。HTTP ステータスコード 409 が返
されます。
LimitExceededException
存在しないリソースにアクセスしたり、削除すると、スローされ
ます。HTTP ステータスコード 400 が返されます。
ResourceNotFoundException
ResourceAlreadyExistsException
クライアントが、Amazon ES ドメイン内にすでに存在するリ
ソースを作成しようとすると、スローされます。HTTP ステータ
スコード 400 が返されます。
API Version 2015-01-01
110
Amazon Elasticsearch Service 開発者ガイド
クラスターとインスタンスの制限
Amazon Elasticsearch Service の制限
次の表は、クラスターあたりのインスタンス数、EBS ボリュームの最小サイズと最大サイズ、ネットワー
ク制限など、Amazon Elasticsearch Service (Amazon ES) リソースの制限を示しています。
トピック
• クラスターとインスタンスの制限 (p. 111)
• EBS ボリュームサイズの制限 (p. 112)
• ネットワークの制限 (p. 113)
• Java プロセス制限 (p. 114)
クラスターとインスタンスの制限
次の表は、Amazon ES におけるクラスターとインスタンスの制限について示しています。
クラスターとインスタンス
制限
クラスターあたりのインスタンス (イ
ンスタンス数) の最大数
20 (最大 10 の T2 インスタンスタイプを除く)。
Note
デフォルトの制限は、ドメインあたり 20 インスタン
スです。ドメインあたり 100 インスタンスへの引き上
げをリクエストするには、AWS サポートセンターでサ
ポートケースを作成してください。
引き上げのリクエストの詳細については、「AWS サー
ビスの制限」を参照してください。
専用マスターノードの最大数
5
Note
インスタンス数が 10 以下の場合にのみ、T2 インスタ
ンスタイプを専用マスターノードとして使用できます。
クラスターあたりの予約ストレージ
領域
Amazon ES は、セグメント マージ、ログ、およびその他の内部
オペレーションに対して、各インスタンスで 10% から 20% の
ストレージ領域を予約します。
Elasticsearch のバージョンでサポー
トされる最小インスタンスタイプ
t2.micro.elasticsearch (バージョン 1.5 および 2.3) と
t2.small.elasticsearch (バージョン 5.1)。
API Version 2015-01-01
111
Amazon Elasticsearch Service 開発者ガイド
EBS ボリュームサイズの制限
Amazon ES がサポートするインスタンスタイプのリストについては、「サポートされるインスタンスタイ
プ (p. 76)」を参照してください。
EBS ボリュームサイズの制限
次の表は、Amazon ES がサポートする各インスタンスタイプの EBS ボリュームの最小サイズと最大サイ
ズを示しています。
インスタンスタイプ
最小 EBS サイズ
最大 EBS サイズ
t2.micro.elasticsearch
10 GB
35 GB
t2.small.elasticsearch
10 GB
35 GB
t2.medium.elasticsearch
10 GB
35 GB
m3.medium.elasticsearch
10 GB
100 GB
m3.large.elasticsearch
10 GB
512 GB
m3.xlarge.elasticsearch
10 GB
512 GB
m3.2xlarge.elasticsearch
10 GB
512 GB
m4.large.elasticsearch
10 GB
512 GB
m4.xlarge.elasticsearch
10 GB
1 TB*
m4.2xlarge.elasticsearch
10 GB
1.5 TB*
m4.4xlarge.elasticsearch
10 GB
1.5 TB*
m4.10xlarge.elasticsearch
10 GB
1.5 TB*
c4.large.elasticsearch
10 GB
100 GB
c4.xlarge.elasticsearch
10 GB
512 GB
c4.2xlarge.elasticsearch
10 GB
1 TB*
c4.4xlarge.elasticsearch
10 GB
1.5 TB*
c4.8xlarge.elasticsearch
10 GB
1.5 TB*
r3.large.elasticsearch
10 GB
512 GB
r3.xlarge.elasticsearch
10 GB
512 GB
r3.2xlarge.elasticsearch
10 GB
512 GB
r3.4xlarge.elasticsearch
10 GB
512 GB
r3.8xlarge.elasticsearch
10 GB
512 GB
r4.large.elasticsearch
10 GB
1 TB*
r4.xlarge.elasticsearch
10 GB
1.5 TB*
r4.2xlarge.elasticsearch
10 GB
1.5 TB*
r4.4xlarge.elasticsearch
10 GB
1.5 TB*
API Version 2015-01-01
112
Amazon Elasticsearch Service 開発者ガイド
ネットワークの制限
インスタンスタイプ
最小 EBS サイズ
最大 EBS サイズ
r4.8xlarge.elasticsearch
10 GB
1.5 TB*
r4.16xlarge.elasticsearch
10 GB
1.5 TB*
i2.xlarge.elasticsearch
10 GB
512 GB
i2.2xlarge.elasticsearch
10 GB
512 GB
* 512 GB は、Elasticsearch バージョン 1.5 でサポートされる最大ボリュームサイズです。
ネットワークの制限
次の表は、HTTP リクエストペイロードの最大サイズを示しています。
サービスリクエスト
制限
HTTP リクエストペイロードの最大
サイズ
サポートされているインスタンスタイプごとに、サポートされて
いる最大の HTTP リクエストペイロードがあります。
• t2.micro.elasticsearch: 10 MB
• t2.small.elasticsearch: 10 MB
• t2.medium.elasticsearch: 10 MB
• m3.medium.elasticsearch: 10 MB
• m3.large.elasticsearch: 10 MB
• m3.xlarge.elasticsearch: 100 MB
• m3.2xlarge.elasticsearch: 100 MB
• m4.large.elasticsearch: 10 MB
• m4.xlarge.elasticsearch: 100 MB
• m4.2xlarge.elasticsearch: 100 MB
• m4.4xlarge.elasticsearch: 100 MB
• m4.10xlarge.elasticsearch: 100 MB
• c4.large.elasticsearch: 10 MB
• c4.xlarge.elasticsearch: 100 MB
• c4.2xlarge.elasticsearch: 100 MB
• c4.4xlarge.elasticsearch: 100 MB
• c4.8xlarge.elasticsearch: 100 MB
• r3.large.elasticsearch: 100 MB
• r3.xlarge.elasticsearch: 100 MB
• r3.2xlarge.elasticsearch: 100 MB
• r3.4xlarge.elasticsearch: 100 MB
• r3.8xlarge.elasticsearch: 100 MB
• r4.large.elasticsearch: 100 MB
• r4.xlarge.elasticsearch: 100 MB
• r4.2xlarge.elasticsearch: 100 MB
• r4.4xlarge.elasticsearch: 100 MB
• r4.8xlarge.elasticsearch: 100 MB
API Version 2015-01-01
113
Amazon Elasticsearch Service 開発者ガイド
Java プロセス制限
サービスリクエスト
制限
• r4.16xlarge.elasticsearch: 100 MB
• i2.xlarge.elasticsearch: 100 MB
• i2.2xlarge.elasticsearch: 100 MB
Java プロセス制限
ヒープサイズは、ES_HEAP_SIZE という環境変数を設定することで変更できます。このサービスは、Java
プロセスを 32 GB のヒープサイズに制限します。詳細については、「詳細オプションの設定」と「JVM
OutOfMemory Error」を参照してください。
API Version 2015-01-01
114
Amazon Elasticsearch Service 開発者ガイド
Amazon Elasticsearch Service のド
キュメント履歴
このトピックでは、Amazon Elasticsearch Service (Amazon ES) のドキュメントに対する重要な変更につ
いて説明します。
この履歴に関連する日付:
• 現在の製品バージョン – 2015-01-01
• 最新の製品リリース日 – 2017 年 4 月 5 日
• ドキュメント最新更新日—2017-4-5
変更
説明
リリース日
クラスターあたりの
Amazon Elasticsearch Service では、クラスターあたり最大
インスタンスと EBS
100 個のノードと 150 TB の EBS キャパシティーがサポートさ
キャパシティーが増加 れるようになりました。
2017 年 4 月
5日
カナダ (中部) と欧州
(ロンドン) のサポート
2017 年 3 月
20 日
Amazon Elasticsearch Service は、カナダ (中部) ca-central-1
と欧州 (ロンドン) eu-west-2 のリージョンのサポートを追加し
ました。
より多くのインスタン Amazon Elasticsearch Service に、より多くのインスタンスと
スと拡大した EBS ボ 拡大した EBS ボリュームのサポートが追加されました。
リューム
2017 年 2 月
21 日
Elasticsearch 5.1 のサ
ポート
Amazon Elasticsearch Service に、Elasticsearch のバージョン
5.1 のサポートが追加されました。
2017 年 1 月
30 日
Phonetic Analysis プ
ラグインのサポート
Amazon Elasticsearch Service には、Phonetic Analysis プラグ
インとの統合が組み込まれています。これにより、データに対
して同音異義のクエリ実行が可能になります。
2016 年 22 月
12 日
米国東部 (オハイオ)
のサポート
Amazon Elasticsearch Service は、次のリージョンのサポート
を追加しました: 米国東部 (オハイオ)、us-east-2。Amazon
Elasticsearch Service でサポートされるリージョンのリストに
ついては、「AWS General Reference」の「AWS のリージョ
ンとエンドポイント」を参照してください。
2016 年 10 月
17 日
API Version 2015-01-01
115
Amazon Elasticsearch Service 開発者ガイド
変更
説明
リリース日
新しいパフォーマンス Amazon Elasticsearch Service にパフォーマンスメトリク
メトリクス
ス、ClusterUsedSpace が追加されました。
2016 年 7 月
29 日
Elasticsearch 2.3 のサ
ポート
Amazon Elasticsearch Service に、Elasticsearch のバージョン
2.3 のサポートが追加されました。
2016 年 7 月
27 日
アジアパシフィック
(ムンバイ) のサポート
Amazon Elasticsearch Service は、次のリージョンのサポー
トを追加しました。アジアパシフィック (ムンバイ)、apsouth-1。 Amazon Elasticsearch Service でサポートされる
リージョンのリストについては、「AWS General Reference」
の「AWS のリージョンとエンドポイント」を参照してくださ
い。
2016 年 6 月
27 日
クラスターあたりのさ Amazon Elasticsearch Service は、クラスターごとのインス
らなるインスタンス
タンス (インスタンス数) の最大数を 10 から 20 に増やしまし
た。
2016 年 5 月
18 日
アジアパシフィック
(ソウル) のサポート
Amazon Elasticsearch Service は、次のリージョンのサ
ポートを追加しました。アジアパシフィック (ソウル)、apnortheast-2。 Amazon Elasticsearch Service でサポート
されるリージョンのリストについては、「AWS General
Reference」の「AWS のリージョンとエンドポイント」を参照
してください。
2016 年 1 月
28 日
Amazon Elasticsearch
Service
初回リリース.
2015 年 10 月
1日
API Version 2015-01-01
116
Amazon Elasticsearch Service 開発者ガイド
AWS の用語集
最新の AWS の用語については、『AWS General Reference』の「AWS の用語集」を参照してください。
API Version 2015-01-01
117