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

Amazon Elasticsearch Service とは

Amazon Elasticsearch Service (Amazon ES) は、AWS クラウドの Elasticsearch クラスターを、簡単にデプロイ、運用、スケールするマネージド型サービスです。Elasticsearch はログ分析、リアルタイムのアプリケーションモニタリング、クリックストリーム分析などのユースケース向けの、人気の高いオープンソースの検索および分析エンジンです。Amazon ES を使用すると、Elasticsearch の API に直接アクセスできるため、既存のコードとアプリケーションがこのサービスとシームレスに連携します。

Amazon ES は、Elasticsearch クラスターのすべてのリソースをプロビジョンして、クラスターを起動します。また、障害が発生した Elasticsearch ノードを自動的に検出して置き換え、自己管理型インフラストラクチャに関連するオーバーヘッドを減らします。また、単一の API 呼び出しを使用するか、コンソールで数回クリックするだけで、クラスターを簡単にスケーリングできます。

Amazon ES の使用を開始するには、ドメインを作成します。Amazon ES ドメインは、Elasticsearch クラスターと同義です。ドメインは、指定した設定、インスタンスタイプ、インスタンス数、およびストレージリソースを含むクラスターです。

Amazon ES コンソールを使用すると、ドメインを数分でセットアップして設定できます。プログラムによるアクセスを希望する場合、AWS CLIAWS SDK を使用できます。

Amazon Elasticsearch Service の機能

Amazon ES は、以下の特徴を含みます。

Scale

  • インスタンスタイプと呼ばれる、CPU、メモリ、ストレージ容量の多数の設定

  • 最大 3 PB のインスタンスストレージ

  • Amazon EBS ストレージボリューム

セキュリティ

  • AWS Identity and Access Management (IAM) アクセスコントロール

  • Amazon VPC および VPC セキュリティグループと簡単に統合

  • 保管時のデータの暗号化およびノード間の暗号化

  • Kibana の Amazon Cognito 認証

安定性

  • リージョンおよびアベイラビリティーゾーンと呼ばれる、リソース用の複数の地理的場所

  • マルチ AZ と呼ばれる、同じリージョン内の 2 つまたは 3 つのアベイラビリティーゾーンにまたがるノード割り当て

  • クラスター管理タスクをオフロードする専用マスターノード

  • Amazon ES ドメインをバックアップおよび復元する自動スナップショット

人気のあるサービスとの統合

  • Kibana を使用したデータの可視化

  • Amazon ES ドメインメトリクスのモニタリングとアラームの設定のための Amazon CloudWatch との統合

  • Amazon ES ドメインへの設定 API 呼び出しを監査するための AWS CloudTrail との統合

  • Amazon ES にストリーミングデータをロードするための Amazon S3、Amazon Kinesis、Amazon DynamoDB との統合

サポートされる Elasticsearch バージョン

Amazon ES は、現在、Elasticsearch の以下のバージョンをサポートしています。

  • 7.1

  • 6.8、6.7、6.5、6.4、6.3、6.2、6.0

  • 5.6、5.5、5.3、5.1

  • 2.3

  • 1.5

Elasticsearch の以前のバージョンと比較して、7.x バージョンおよび 6.x バージョンには、処理速度、安全性、使いやすさを向上するための強力な機能が含まれています。いくつかの重要な部分を以下に示します。

  • インデックスの分割 – インデックスが元のシャードの数を超えた場合、_split API には、各プライマリシャードを新しいインデックスの 2 つ以上のシャードに分割する便利な機能があります。

  • Vega の可視化 – Kibana 6.2 は Vega 可視化言語をサポートしています。これにより、コンテキストに応じた Elasticsearch クエリの実行、複数のデータソースの単一のグラフへの統合、ユーザーのインタラクティブ性のグラフへの追加などが可能になります。

  • Java 高レベル REST クライアント – 低レベルクライアントと比べて、このクライアントでは開発エクスペリエンスが簡略化されており、多くの Elasticsearch API がサポートされます。コード例については、「HTTP リクエストの署名」を参照してください。

  • 加重平均 – この集計により、ドキュメントに重みを割り当て、それらの重みを指定された値の平均で考慮に入れることができます。

  • 高速なインデックス作成パフォーマンス – 新しいバージョンの Elasticsearch は優れたインデックス作成機能を備えており、データ更新のスループットが大幅に向上しています。

  • 安全対策の強化 – Elasticsearch の新しいバージョンでは、クラスターの調整が改善され、過度に広範囲または複雑なクエリがパフォーマンスと安定性に悪影響を及ぼすのを防ぐための多くの安全対策が施されています。

Elasticsearch のバージョン間の違いと Amazon ES でサポートされている API の詳細については、「サポートされている Elasticsearch オペレーション」を参照してください。

新しい Elasticsearch プロジェクトを開始する場合、サポートされている最新 Elasticsearch バージョンの選択を強くお勧めします。既存のドメインで以前の Elasticsearch バージョンを使用している場合は、ドメインの維持またはデータの移行を選択できます。詳細については、「Elasticsearch のアップグレード」を参照してください。

Amazon Elasticsearch Service の料金表

AWS では、ご利用分のみがお支払いの対象になります。Amazon ES の場合、1 時間ごとの EC2 インスタンスの使用およびインスタンスにアタッチされたすべての EBS ストレージボリュームの累積サイズに対して料金が発生します。スタンダード AWS データ転送料金も適用されます。

ただし、重要なデータ転送例外が存在します。ドメインが複数のアベイラビリティーゾーンを使用する場合、Amazon ES では 2 つのアベイラビリティゾーン間のトラフィックに対して課金されません。シャードの割り当てと再分散中にドメイン内で大量のデータ転送が発生します。Amazon ES では、このトラフィックに対して測定も課金も行いません。

料金の詳細については、「Amazon Elasticsearch Service の料金表」を参照してください。設定変更中に発生する料金については、「設定変更に関連する料金」を参照してください。

Amazon Elasticsearch Service の使用開始

開始するには、AWS アカウントをまだお持ちでない場合はサインアップします。アカウントのセットアップが終了したら、Amazon Elasticsearch Service の開始方法チュートリアルを完了します。サービスについて学習中に詳しい情報が必要になった場合は、以下の概要トピックを参照してください。

Amazon ES は、次のサービスでよく使用されます。

Amazon CloudWatch

ドメインの状態やパフォーマンスをモニタリングできるように、メトリクスは、Amazon ES ドメインから CloudWatch に自動的に送信されます。詳細については、「Amazon CloudWatch を使用した、クラスターメトリクスと統計情報の監視 (コンソール)」を参照してください。

CloudWatch Logs は、他の方向に進むこともできます。分析のために Amazon ES にデータをストリーミングするように CloudWatch Logs を設定できます。詳細については、「Amazon CloudWatch から Amazon ES にストリーミングデータをロードする」を参照してください。

AWS CloudTrail

AWS CloudTrail を使用して、Amazon ES 設定 API 呼び出しとアカウントの関連するイベントの履歴を取得します。詳細については、「Amazon Elasticsearch Service のログ記録とモニタリング」を参照してください。

Amazon Kinesis

Kinesis は、大規模なストリーミングデータをリアルタイムで処理するマネージドサービスです。詳細については、「Amazon Kinesis Data Streams から Amazon ES にストリーミングデータをロードする」および「Amazon Kinesis Data Firehose から Amazon ES にストリーミングデータをロードする」を参照してください。

Amazon S3

Amazon Simple Storage Service (Amazon S3) は、インターネット用のストレージです。このガイドでは、Amazon S3 と統合するための Lambda サンプルコードが提供されています。詳細については、「Amazon S3 から Amazon ES にストリーミングデータをロードする」を参照してください。

AWSIAM

AWS Identity and Access Management (IAM) は、Amazon ES ドメインへのアクセスの管理に使用できるウェブサービスです。詳細については、「Amazon Elasticsearch Service の Identity and Access Management」を参照してください。

AWS Lambda

AWS Lambda はサーバーをプロビジョニングしたり管理しなくてもコードを実行できるコンピューティングサービスです。このガイドでは、DynamoDB、Amazon S3、Kinesis からデータをストリーミングする Lambda サンプルコードが提供されています。詳細については、「Amazon Elasticsearch Service にストリーミングデータをロードする」を参照してください。

Amazon DynamoDB

Amazon DynamoDB は、完全に管理された NoSQL データベースサービスで、高速かつ予測可能なパフォーマンスとシームレスな拡張性を提供します。Amazon ES へのデータのストリーミングの詳細については、「Amazon DynamoDB から Amazon ES にストリーミングデータをロードする」を参照してください。