この記事の目次
AWSのElasticsearch Serviceとは
Amazon Web Services(AWS)のElasticsearch Service(ES)は、Elasticsearchの運用管理をサポートするサービスです。
セットアップや設定、バックアップなど、Elasticsearchの管理に関するタスクを簡易化する機能が搭載されています。これらにより、運用管理にかける手間を減らし、ワークロードを効率化させられます。
Elasticsearchとは
Elasticsearchは、Apache Luceneをベースとした分散型の検索・分析エンジンです。アメリカのIT会社「Elastic」が提供しています。
テキスト、ログ、地理情報、メトリクス、構造化データ、非構造化データなど、さまざまなタイプのデータを検索・分析できます。
さらに、同じ会社が提供する可視化ツールのKibanaと組み合わせることで、抽出したデータをグラフとして可視化することも可能です。AWSはKibanaにも対応しているため、AWSおよびES上でもこの機能を使用できます。
AWSのElasticsearch Serviceの特徴
この項目では、AWSのElasticsearch Service(ES)の特徴についてご紹介します。
従来のElasticsearchでは、クラスターのセットアップや管理に専門の知識が必要となる場面があり、実行が容易ではないという問題点があります。ESでは、それらのタスクを自動化する機能を搭載しており、この問題点を解消できます。
さらに、他のAWSサービスと統合することで、さまざまな機能を取り入れられます。
特徴1:セットアップを簡易化できる
ESは、Elasticsearchのセットアップを簡易化します。
コンソールから作成画面に入り、そこで必要事項や詳細設定を入力することで、クラスターのセットアップが開始され、すぐに使用可能になります。
セットアップのために必要な手作業を減らし、効率を高められます。
特徴2:インプレースアップグレード
ESにはインプレースアップグレード機能があり、アップグレードを高速化します。
Elasticsearchの最新版がリリースされたことを発見すると、ダッシュボードにアップグレードがある旨が表示されます。その後、更新ページに入り、内容を確認して[Submit]をクリックすることで、アップグレードが実施されます。
バックアップを取る、新しいクラスターを作成するといった事前作業が不要になり、作業に伴うダウンタイムも減らせます。
また、アップグレードによって何らかの不具合が発生しないかをチェックする機能もあります。こちらも実施しておくことで、より安全にアップデートできます。
特徴3:モニタリング
ESには、クラスターをモニタリングする機能があります。
データの状態を常に確認し、一定のしきい値を超えたり、異常が発見されたりすると、Kibanaを介して通知を発信します。これにより、データ変更の確認やトラブルシューティングなどを素早く実行できます。
通知の受信先として、Webhook、Slack、Amazon Chime、Simple Notification Service(SNS)があります。
特徴4:スケーリングが容易
ESは、スケーリングが容易です。
APIまたはコンソールからインスタンスを追加あるいは削除して、容量を増減させられます。保存されているデータの量に応じて調節していくことで、コストやパフォーマンスを最適化できます。
また、クラスターを保存するストレージとしてElastic Block Store(EBS)を選択できます。EBSにもスケーリング機能が搭載されており、上記と合わせてより強固な体制を整えられます。
特徴5:可用性や耐久性を高められる
ESは、可用性や耐久性を高める機能が充実しています。
作成されたインスタンスは、複数のアベイラビリティーゾーン(AZ)にレプリケーションされ、データを複数箇所に分散します。
また、1時間ごとにスナップショットが自動で作成され、Simple Storage Service(S3)に送られます。S3も高い可用性と耐久性を備え、安全にデータを保存できます。
これらにより、データの可用性や耐久性を高め、障害が発生した時にも復旧しやすくなります。
特徴6:UltraWarmストレージ
UltraWarmは、ES向けのウォームストレージです。
あまり使わなくなった過去のデータを移行して低コストで保存できるようにしたり、Kibanaを用いて過去のデータを収集・分析したりできます。既存のストレージを補完するツールとして役立ちます。
AWSのElasticsearch Serviceのドメインの作成方法
この項目では、AWSのElasticsearch Service(ES)のドメインを作成する手順について、流れを簡単にご紹介します。
デプロイタイプの選択→ドメインの詳細設定→ネットワークやアクセスの設定の3ステップとなります。選択したデプロイタイプによって、設定可能なオプションは若干異なります。
なお、ESにおけるドメインの意義は、Elasticsearchクラスターと同様です。
デプロイタイプの選択
最初に、デプロイタイプを選択します。
Production(本番稼働用)、Development and testing(開発・テスト用)、Custom(カスタム)の3種類があり、それらから1つを選択します。
Productionタイプでは複数のAZと専用マスターノード、Development and testingタイプでは単一のAZが使用されます。Customを選択した場合は、AZやノードを含めた設定をすべて手動で行います。
同じページで、Elasticsearchのバージョンも選択します。こちらについては、基本的に最新版の適用が推奨されています。
ドメインの設定
次に、ドメインの詳細設定をします。
カスタムエンドポイントやノードの自動調整、専用マスターノード、UltraWarmの有効/無効、ドメイン名、ノードのタイプや数、ストレージタイプなどを入力していきます。
カスタムエンドポイントを有効化する場合は、ホスト名とAWSの証明書も必要になります。あらかじめ用意しておきましょう。
ネットワーク、アクセスの設定
次に、ネットワークやアクセス関連の設定を行います。
ネットワークでは、Virtual Private Cloud(VPC)またはパブリックアクセスから選択します。VPCを選択した場合は、サブネットとセキュリティグループも設定します。
アクセス関連では、ユーザー管理の方法、暗号化機能、KibanaにおけるSAMLおよびCognito認証などの有効/無効を設定します。
ドメインの作成
ここまでの設定をすべて終えたら、ドメインを作成します。
作成前にレビューが表示されるので、そこで設定に問題がないかどうかをチェックします。
その後、[Confirm(確認)]ボタンをクリックすれば、ドメインが作成されます。正常に作成されているか確認しておきましょう。
AWSのElasticsearch Serviceの料金
AWSのElasticsearch Service(ES)の料金は、インスタンスやストレージなどの使用量によって決定します。
無料利用枠が存在し、t2.micro.elasticsearchおよびt3.small.elasticsearchインスタンスを月750時間、EBSボリュームを月10GBまで無料で使用できます。
見積もりの際は、併用するAWSサービスの料金も加味しておきましょう。
なお、以下の項目で紹介する例は、すべて東京リージョンに準じます。詳細は公式ページの料金表をご覧ください。
出典:Amazon Elasticsearch Service の料金
参照:https://aws.amazon.com/jp/elasticsearch-service/pricing/
インスタンス
インスタンスの料金は、タイプによって異なります。
通常のオンデマンド版に加え、一部のタイプにはリザーブド版が存在しています。リザーブド版は、長期的な契約を結ぶことで料金がオンデマンド版より安くなります。
例えば、t3.medium.elasticsearchを使用した場合、オンデマンド版では1時間ごとに0.112USDが発生します。一方、リザーブド版で1年契約を結び、かつ前払いをした場合、1時間ごとの料金は0.087USDとなります。3年契約であれば0.076USDとさらに値下がりします。
出典:Amazon Elasticsearch Service の料金
参照:https://aws.amazon.com/jp/elasticsearch-service/pricing/
EBSボリューム
EBSボリュームを使用する場合、その料金が発生します。ボリュームのタイプによって、料金は異なります。
汎用SSDボリュームを使用した場合、1GBにつき0.162USDが月ごとに課金されます。プロビジョンドIOPSボリュームでは、ストレージ1GBにつき0.192USD、1IOPSにつき0.10USDが月ごとに発生します。
出典:Amazon Elasticsearch Service の料金
参照:https://aws.amazon.com/jp/elasticsearch-service/pricing/
UltraWarm
UltraWarmを使用する場合にも、料金が発生します。インスタンスタイプ2種類とマネージドストレージが存在し、料金はそれぞれ異なります。
ultrawarm1.medium.elasticsearchを使用した場合、1時間ごとに0.279USDが課金されます。もう一方のultrawarm1.large.elasticsearchでは、1時間ごとの料金は3.144USDとなります。
マネージドストレージでは、1GBあたり0.026USDの料金が発生します。上記と異なり、こちらは月ごとの課金となります。
出典:Amazon Elasticsearch Service の料金
参照:https://aws.amazon.com/jp/elasticsearch-service/pricing/
AWSのElasticsearch Serviceを活用してみよう
この記事では、AWSのElasticsearch Service(ES)についてご紹介しました。
Elasticsearchのセットアップや管理、バックアップなどのタスクを自動化し、従来のツールの課題を解消すると共に、データの可用性や耐久性も高められます。
Elasticsearchの運用効率を高めたいという方は、利用を検討するとよいでしょう。