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
© Copyright 2024 ExpyDoc