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 の使用を開始するには、ドメインを作成します。An Amazon ES domain is synonymous with an Elasticsearch cluster. Domains are clusters with the settings, instance types, instance counts, and storage resources that you specify.

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

Amazon Elasticsearch Service の機能

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

Scale

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

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

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

セキュリティ

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

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

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

  • Kibana の Amazon Cognito 認証

安定性

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

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

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

  • ゾーン対応と呼ばれる、同じリージョン内の 2 つのアベイラビリティーゾーンにまたがるクラスターノード割り当て

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

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

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

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

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

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

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

  • 6.3、6.2、6.0

  • 5.6、5.5、5.3、5.1

  • 2.3

  • 1.5

Elasticsearch の以前のバージョンと比較して、6.x バージョンには、処理速度、安全性、使いやすさを向上するための強力な機能が含まれています。主な特徴を以下に紹介します。

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

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

  • ランク付けの評価_rank_eval API では、検索が予期したとおりに実行されるようにするため、一連のクエリに対してランク付けされた検索結果の実行を測定、追跡することができます。

  • 複合集計 – これらの集計では、1 つ以上のフィールドから複合バケットを構築し、「自然な順序」(用語のアルファベット順、数値順、またはヒストグラムの日付順) でそれらを並べ替えます。

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

  • より良い安全対策 – 6.xバージョンの Elasticsearch は、過度に広範囲または複雑なクエリがクラスターのパフォーマンスと安定性に悪影響を与えることを防ぐように設計された、多くの安全対策を提供します。

  • Kibana オートコンプリート – Kibana 6.3 以降のクエリのオートコンプリート機能により、日常的なユーザーエクスペリエンスを大幅に向上させることができます。

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

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

Amazon Elasticsearch Service の料金表

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

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

料金詳細 (AWS 無料利用枠の詳細を含む) については、「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 呼び出しとアカウントの関連するイベントの履歴を取得します。詳細については、「AWS CloudTrail を使用した Amazon Elasticsearch Service​ 設定 API 呼び出しのログ記録」を参照してください。

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 アクセスコントロール」を参照してください。

AWS Lambda

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

Amazon DynamoDB

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