【初心者向け】Amazon Elasticsearch Serviceの特徴と使い方について

はじめに

Elasticsearchは、ログ分析、リアルタイムのアプリケーションモニタリング、クリックストリーム分析などのユースケース向けのオープンソース検索・分析エンジンです。本記事では、Amazonが提供するAmazon Elasticsearch Serviceについて、概要や特徴、使い方について紹介します。(※使い方は使用開始までの手順紹介になります。)

Amazon Elasticsearch Serviceとは

Amazon Elasticsearch Serviceは、AWSクラウドでElasticsearchを、大規模かつ高いコスト効率で容易にデプロイ、保護、実行を行うことができるフルマネージド型サービスです。ハードウェアプロビジョニングやソフトウェアのインストールとパッチ適用、障害復旧、バックアップ、モニタリングなどの管理タスクを簡素化してくれます。Amazon Elasticsearch Serviceでは、オープンソースのElasticsearch APIやマネージドKibana、Logstashとその他のAWSサービスとの統合、組込みアラート、SQLクエリのサポートが提供されています。以下では、特徴を紹介します。

容易なデプロイと管理

  • セットアップと設定 - Amazon Elasticsearch Serviceクラスターのセットアップと設定には、AWS マネジメントコンソールもしくはAWS CLIを介したAPIコールを使用します。インスタンス数やインスタンスタイプ、ストレージオプションを指定し、既存のクラスターの変更と削除も可能です。
  • In-place upgrades - In-place version upgradesを利用すると、Elasticsearch クラスターをダウンタイムなしで簡単にアップグレードできます。これにより、手動でスナップショットをとり、新しいバージョンのElasticsearchを実行するクラスタに保存し、すべてのEPR(Endpoint References)を更新する作業が不要となります。
  • イベント監視とアラート - 組み込みのイベント監視とアラートにより、クラスターに保存されているデータを監視し、事前に設定したしきい値を基に、自動的に通知を送信できます。Open Distroによって構築されているため、KibanaインターフェースとREST APIを使用してアラートの設定と管理を行い、カスタムWebhookやSlack、Amazon SNS、Amazon Chimeを介して通知を受信できます。
  • SQLクエリ - SQL構文を利用したElasticsearchクラスターのクエリをサポートしています。40個以上のSQL関数やデータ型、コマンドを提供しており、JDBCドライバーを介して、既存のSQLベースのビジネスインテリジェンスやETLツールに接続することもできます。
  • オープンソースツールとの統合 - 組み込みのKibanaとLogstashとの統合によって、好きなオープンソースツールを使用してデータを取り組み、視覚化をすることができます。既存のコードを引き続き使用して、Elasticsearch APIに直接アクセスし、KuromojiやPhonetic Analysisをはじめとする、プラグインに直接アクセスできます。

高いスケーラビリティと可用性

  • スケーラビリティ - 1つのElasticsearchクラスターに最大3PBのデータを保存し、ニーズに応じて容易にスケールアップ / スケールダウンできます。Amazon CloudWatchメトリックを利用すると、クラスターの状態を監視し、シンプルなAPIコールまたはAWSコンソールによってインスタンスの追加と削除ができます。
  • 可用性 - Elasticsearchのマスターノード(Elasticsearchの管理と制御を実施)とデータノード(分散配置が可能なデータを格納するノード)を任意のインスタンスタイプ、インスタンス数で指定できます。3つのAZゾーンデプロイをサポートし、複数のAZにインスタンスをデプロイして、可用性と耐障害性を向上させすることができます。AWS コンソール、AWS CLI、SDKを使用すると、追加費用なしで3つのAZデプロイを有効にできます。また、インデックスのレプリカを有効にすると、プライマリとレプリカの断片が自動的にノード間で分散され、クロスゾーンレプリケーションが提供されます。
  • 耐久性 - 自動もしくは手動のスナップショットによって、Amazon Elasticsearch Serviceクラスターのデータの耐久性を構築できます。スナップショットを使用することで、事前にロードされたデータを用いてクラスターの復旧や、新規クラスターの作成ができます。デフォルトでは、各ドメインのスナップショットは1時間毎に自動生成され、追加料金なしで14日間保持されます。これらのスナップショットはAmazon S3に保存されます。

高い安全性

  • Elasticsearch環境への接続 - VPCセキュリティグループまたはIPベースのアクセスポリシーを利用してネットワークアクセスを設定し、VPCもしくはパブリックインターネット経由で管理対象のElasticsearch環境にアプリケーションを安全に接続できます。
  • アクセス制御 - ユーザーを安全に認証し、Amazon CognitoやAWS IAM、ユーザー名とパスワードによる基本認証でアクセス制御できます。
  • Kibanaの拡張 - Open Distro for Elasticsearchセキュリティプラグインを活用して、インデックスやドキュメント、フィールドのきめ細かい権限を定義し、読み取り専用ビューと安全なマルチテナントサポートでKibanaの拡張ができます。
  • データ保護 - Amazon Elasticsearch Serviceにはデータの暗号化機能が内蔵されているため、ドメインもしくはスナップショットに保存されている場合や、ドメイン内のノード間でデータが転送される場合でも、データを保護することができます。Amazon Elasticsearch ServiceはHIPAAに適格で、PCI DSS、SOC、ISO、FedRampに準拠しているため、コンプライアンス要件を満たすアプリケーションを容易に構築できます。

高いコスト効率

支払い方法は、オンデマンドインスタンスの場合と、リザーブドインスタンスのものがあります。前者は、実際に使用したAmazon Elasticsearch Serviceインスタンスの時間とデータ転送に対して料金が発生します。オプションのSSDを搭載したAmazon EBSストレージを使用した場合は、そちらも料金が発生します。後者は、1年間もしくは3年間単位でインスタンスを予約する方法です。オンデマンドインスタンスの場合よりも使用コストを大幅に削減できます。

以上がAmazon Elasticsearch Serviceの特徴です。次に使い方を紹介します。

Amazon Elasticsearch Serviceの使い方

AWS CLI上でも可能ですが、ここではAmazon Elasticsearch Serviceの使い方として、AWSマネジメントコンソールからの開始方法の手順を紹介します。(※事前準備としてAmazon Elasticsearch Serviceを使うには、AWSアカウントが必要です。

1. サービス画面へ移動

AWSマネジメントコンソール画面から「Elasticsearch Service」を選択し、Amazon Elasticsearch Serviceのサービス画面へ移動すると、[新しいドメインの作成]をクリックします。

2. デプロイタイプとバージョンの選択

デプロイタイプは[本番環境用]、[開発およびテスト]、[カスタム]の中から選択可能です。次に、ドメインのElasticsearch エンジンのバージョンを選択します。

3. ドメインの名の入力

ドメイン名はドメインエンドポイントの一部になります。名前は、小文字で始まり、小文字のa~z、0~9、-(ハイフン)による3~28文字で構成する必要があります。

4. データのインスタンスの設定

アプリケーションのコンピューティング、メモリ、ストレージのニーズを基に、インスタンスタイプとインスタンス数を選択します。

5. 専用マスターインスタンスの設定

こちらはオプションです。有効化にすることで、ドメインの安定性を向上させます。インスタンス数が10を超えるドメインには必要で、本番稼働用ドメインにおいても3つの専用マスターインスタンスが推奨されています。

6. ストレージの設定

データノードのストレージタイプを選択します。EBSストレージタイプを選択する場合、クラスターで使用できる合計ストレージは、ノード当たりのEBSストレージサイズをクラスターのデータノード数で乗算することによって得ることができます。

7. 暗号化

[ノード間の暗号化]と[保管時のデータの暗号化の有効化]があります。ドメインの作成後は、暗号化の設定は変更できません。きめ細かなアクセスコントロールを使用する場合は、いずれも有効にする必要があります。

8. スナップショットの設定

1日1回、自動で行われるクラスターのスナップショットの開始時間を設定します。

9. アクセス設定

  • ネットワーク構成 - [VPCアクセス(推奨)]または[パブリックアクセス]を選択します。
  • Kibana認証 - Kibanaでお Cognito認証を使用する場合に[認証用にAmazon Cognitoを有効化]を選択します。Amazon Cognitoは、ユーザー名とパスワード認証について、多数のIDプロバイダをサポートしています。
  • アクセスポリシー - テンプレートを選択する、もしくは、[アクセスポリシーの追加または編集]ボックスで1つ以上のIAMポリシーステートメントを追加することで、ドメインへのアクセスの許可およびブロックの設定を行います。

10. 確認画面

確認画面で設定内容を確認し、作成を実行します。しばらくすると、インスタンスの作成され、各機能が利用可能になります。

以上がAmazon Elasticsearch Serviceの使い方および使用開始するまでの手順です。

まとめ

本記事では、Amazon Elasticsearch Serviceの概要や特徴、使い方について紹介しました。Amazon Elasticsearch Serviceには、他のAWSサービスと同様に使い方についてのチュートリアルが用意されており、実際に試しながら使い方を学習することができます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です