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 ドメインは指定したコンピューティングおよびストレージリソースがある AWS クラウドの Elasticsearch クラスターです。たとえば、インスタンス数、インスタンスタイプ、およびストレージのオプションを指定できます。

さらに、Amazon ES には、次のようなマネージド型サービスのメリットがあります。

  • クラスタースケーリングオプション

  • 自己修復クラスター

  • データの耐久性のためのレプリケーション

  • 強化されたセキュリティ

  • ノードモニタリング

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

クラスターをセットアップするための初期費用は不要で、使用するサービスリソースに対してのみお支払いいただきます。

Amazon Elasticsearch Service の機能

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

スケール

  • インスタンスタイプと呼ばれる、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.2

  • 6.0

  • 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 は、過度に広範囲または複雑なクエリがクラスターのパフォーマンスと安定性に悪影響を与えることを防ぐように設計された、多くの安全対策を提供します。

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

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

Amazon Elasticsearch Service の使用開始

開始するには、AWS アカウントをまだお持ちでない場合はサインアップします。詳細については、「AWS にサインアップする」を参照してください。

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

起動と実行

基本を学習します

インスタンスタイプとストレージの選択

安全性を維持する

AWS へのサインアップ

すでに AWS のお客様ではない場合、最初のステップは AWS アカウントの作成になります。すでに AWS アカウントがあるお客様は、自動的に Amazon ES にサインアップされます。AWS アカウントがあると、Amazon ES にアクセスできるほか、Amazon S3 や Amazon EC2 などの他の AWS サービスにアクセスできます。サインアップは無料で、ドメインを作成するまで料金は発生しません。その他の AWS サービスと同様に、お客様が使用するリソースに対してのみ請求されます。

AWS アカウントを作成するには

  1. https://aws.amazon.com/ を開き、[Create an AWS Account] を選択します。

    注記

    過去に AWS マネジメントコンソール にサインインした場合は、お使いのブラウザで使用できないことがあります。その場合は、[Sign in to a different account] を選択し、次に [Create a new AWS account] を選択します。

  2. オンラインの手順に従います。

    サインアップ手順の一環として、通話呼び出しを受け取り、電話のキーパッドを用いて PIN を入力することが求められます。

Amazon ES の使用を開始する前に、支払情報を入力する必要があります。後で必要になるので、AWS アカウント番号を書き留めておきます。

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 の認証情報を使用して必要に応じて自動的にリクエストに署名します。

Amazon Elasticsearch Service のリージョンとエンドポイント

Amazon ES では、設定 API にアクセスするためのリージョンのエンドポイントと、Elasticsearch API にアクセスするためのドメイン固有のエンドポイントを提供します。ドメインを作成して管理するには、設定サービスを使用します。リージョンの設定サービスエンドポイントの形式は、次のとおりです。

es.region.amazonaws.com

サポートされているリージョンのリストについては、『AWS General Reference』の「リージョンとエンドポイント」を参照してください。

ドメインのエンドポイントは、次の形式です。

http://search-domainname-domainid.us-east-1.es.amazonaws.com

データをアップロードしたり、検索リクエストを送信したり、他のサポートされている Elasticsearch オペレーションを実行したりするには、ドメインのエンドポイントを使用します。

インスタンスタイプの選択

インスタンスタイプにより、インスタンス、つまり AWS クラウドで仮想サーバーとして実行される Amazon Machine Image (AMI) の CPU、RAM、ストレージ容量、1 時間あたりのコストが定義されます。インスタンスタイプとドメインで使用するインスタンス数を、データの量と予測されるリクエスト数に基づいて選択します。ガイダンスについては、「Amazon ES ドメインのサイジング」を参照してください。

インスタンスタイプの一般的な情報については、Amazon Elasticsearch Service の料金表を参照してください。

Amazon Elasticsearch Service でのスケーリング

ドメインを作成するときは、Elasticsearch インスタンスの初期数とインスタンスタイプを選択します。ただし、時間が経つにつれて、これらの最初の選択が適切でなくなることがあります。Amazon ES ドメインを水平 (インスタンスの増加) または垂直 (インスタンスタイプの拡大) にスケーリングすることで、増加に容易に対応できます。スケーリングは簡単で、ダウンタイムは必要ありません。詳細については、「Amazon ES ドメインの設定」と「設定変更について」を参照してください。

ストレージとしての Amazon EBS ボリュームの使用

インスタンスにより提供されるデフォルトストレージではなく、インデックスを保存するために Amazon EBS ボリュームを使用するように Amazon ES ドメインを設定するオプションがあります。Amazon EBS ボリュームは、1 つの インスタンスにアタッチできる、耐久性に優れたブロックレベルのストレージボリュームです。Amazon ES では、以下の EBS ボリュームタイプがサポートされています。

  • マグネティック

  • 汎用 (SSD)

  • プロビジョンド IOPS (SSD)

概要については、Amazon EC2 のドキュメントの「Amazon EBS ボリューム」を参照してください。Amazon ES ドメイン用に Amazon EBS ボリュームを使用する方法を示す手順については、「EBS ベースのストレージの設定」を参照してください。Amazon ES ドメインでサポートされる EBS ボリュームの最小サイズと最大サイズについては、「EBS Volume Size Limits」を参照してください。

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

AWS CloudTrail

AWS CloudTrail を使用して Amazon ES API 呼び出しとアカウントの関連するイベントの履歴を取得します。CloudTrail は、アカウントからの API コールを記録し、そのログファイルを Amazon S3 バケットへ出力するウェブサービスです。さらに、AWS リソースへ加えられた変更の追跡に CloudTrail を使うこともできます。詳細については、「AWS CloudTrail での Amazon Elasticsearch Service ドメインの監査」を参照してください。

Amazon CloudWatch

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

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

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 を使用すると、データの大きさにかかわらず、ウェブ上のどんな場所からでもいつでも保存、取得することができます。Amazon ES には、Amazon S3 との統合のための Lambda サンプルコードが用意されています。詳細については、「Amazon S3 から Amazon ES にストリーミングデータをロードする」を参照してください。

AWS IAM

AWS Identity and Access Management (IAM) は AWS のユーザーとそのアクセス権限を管理できるウェブサービスです。IAM を使用すると、Amazon ES ドメインのユーザーベースのアクセスポリシーを作成できます。詳細については、IAM ドキュメントと「Amazon Elasticsearch Service アクセスコントロール」を参照してください。

Amazon ES は、データ取り込みを行うために次のサービスと統合されています。

AWS Lambda

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

Amazon DynamoDB

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

Amazon Elasticsearch Service の料金表

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

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

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

AWS 無料利用枠の対象のお客様は、t2.micro.elasticsearch または t2.small.elasticsearch インスタンスタイプを 1 か月あたり最大 750 時間ご利用いただけます。最大 10 GB の Amazon EBS ストレージ (マグネティックまたは汎用) もご利用いただけます。詳細については、「AWS Free Tier」を参照してください。

注記

このガイドでは、1 MB は 1,0242 または 1,048,576 バイトです。同様に、1 GB は 1,0243、または 1,073,741,824 バイトです。