このチュートリアルでは、Alibaba Cloud Elasticsearch (ES) を初めて利用する開発者向けに、クラスターの作成からデータ取得までの全プロセスを解説します。このチュートリアルの所要時間は約 45 分で、そのうちクラスター作成の待機時間は約 20 分です。
学習内容
ES クラスターを作成し、設定します。
Kibana の開発ツールを使用してデータをモデル化します。 Kibana は ES のコアコンポーネントの 1 つです。ES に保存されているデータをグラフィカルかつ直感的に探索、分析、表示できます。Kibana は ES コンソールに組み込まれているため、手動でインストールする必要はありません。
サンプルデータを挿入し、さまざまな検索操作を実行します。
このチュートリアルを完了すると、ES でインデックスの作成、データの読み書き、検索を実行できるようになります。
ES のバージョンと費用
開始する前に、このトライアルに関する以下の重要な情報をご確認ください:
ES のタイプとバージョン:Vector Enhanced Edition 8.17.0。
このエディションは、ドキュメント解析、チャンキング、テキスト埋め込み、クエリ分析、取得、ランキング、大規模言語モデル (LLM) 統合など、AI 検索パイプラインのコアアルゴリズムサービスをモジュール化します。セマンティック検索、検索拡張生成 (RAG)、マルチモーダル検索をサポートします。
推定費用:このチュートリアルでは、全体を通して従量課金の請求方式を使用し、トライアル費用を低く抑えるために最小構成を適用します。具体的には、単一ゾーン、最小のノード仕様とストレージ容量、専用マスターノードなし、追加料金が発生する高度な拡張機能なしの構成です。このトピックの手順には約 45 分かかります。完了後すぐにクラスターをリリースすれば、推定合計費用は 5 米ドル 未満になります。
このトピックで推奨される構成では、データノード仕様、データノードストレージ容量、Kibana ノード仕様の 3 つの従量課金項目のみが課金対象となります。課金項目と各項目の単価は、購入ページの下部で確認できます。
ES クラスターは時間単位で課金され、クラスターが実行されている限り料金が発生し続けます。トライアル終了後は、不要な料金を避けるため、このトピックの「リソースのクリーンアップと次のステップ」に従って、すぐにクラスターをリリースしてください。
前提条件
登録して Alibaba Cloud アカウントにログインしてください。アカウントに Elasticsearch や Virtual Private Cloud (VPC) などのリソースを作成および管理する権限があることを確認してください。
VPC と vSwitch を作成し、VPC と vSwitch が存在するリージョンとゾーンを記録しておいてください。後で ES クラスターを作成する際に、同じリージョンとゾーンを選択する必要があります。そうしないと、クラスターを VPC と vSwitch に関連付けることができません。
操作手順
ステップ 1:クラスターの作成 (約 20 分)
Alibaba Cloud Elasticsearch コンソールにログインします。Elasticsearch クラスター ページで、作成 をクリックしてクラスター購入ページに移動します。次の主要なパラメーターを設定し、その他のパラメーターはデフォルト値のままにします。
| パラメーター | 説明 |
| [支払い方法] | 従量課金。いつでもクラスターをリリースできます。 |
リージョンとゾーン |
3 つまたは 2 つのゾーンを維持する場合、データノードの数は 3 以上かつ 3 の倍数である必要があるため、このチュートリアルで設定する 2 つのデータノードは使用できません。 |
| [ネットワークタイプ] | 作成した VPC と vSwitch を選択します。 |
[インスタンスタイプ]と [Elasticsearch Version] | Vector Enhanced Edition 8.17.0。このチュートリアルはこのバージョンに基づいています。 |
シナリオと高度な機能 | デフォルトの検索シナリオを維持します。このシナリオでは、デフォルトで 2 つの高度な拡張機能が有効になっています。次のように処理します:
|
| [データノード仕様] |
|
[専用マスターノード] | デフォルトで選択されており、それぞれ 2 vCPU と 4 GiB のメモリを持つ 3 つのノードで構成されています。このチュートリアルはトライアルシナリオであるため、コストを削減するために専用マスターノードのチェックボックスをオフにします。 専用マスターノードは、クラスターメタデータを含むクラスター管理を担当します。チェックボックスをオフにすると、2 つのデータノードにスプリットブレインのリスクがあるという警告がページに表示されます。短い機能トライアルではこの警告を無視できますが、本番ワークロードを起動する前に専用マスターノードを有効にしてください。 |
| [クラスター名] |
|
| [パスワード] | カスタムパスワードを設定します。このパスワードは、後で Kibana にログインしてインデックスを構築し、データを探索する際に使用します。 |
Buy Now をクリックし、クラスターのステータスが[アクティブ]に変わるまで約 20 分間待ちます。その後、次のステップに進むことができます。
ステップ 2:Kibana の設定とログイン
Kibana のパブリックエンドポイントはデフォルトで有効になっています。セキュリティ上の理由から、パブリックネットワークアクセスはデフォルトですべての IP アドレスを拒否します。Kibana にアクセスするには、まず使用したいデバイスの IP アドレスをホワイトリストに追加する必要があります。
アクセス認証には、2要素認証が使用されます。まず、Alibaba Cloud アカウントにログオンします。次に、ES クラスターのアクセス資格情報を使用して2回目のログオンを行います。ユーザー名は elastic に固定されており、そのログオンパスワードを使用します。
左側のナビゲーションペインで、データ可視化 をクリックします。Kibana セクションで、設定の編集 をクリックします。
ネットワークアクセス設定 セクションで、Kibana パブリックアクセスホワイトリストを設定します。
お使いのデバイスの IP アドレスの取得
以下のシナリオに基づいて、使用したいデバイスの IP アドレスを取得します。
| シナリオ | 取得する IP アドレス | 取得方法 |
オンプレミスデバイスからインターネット経由で Kibana にアクセスする。 | オンプレミスデバイスのパブリック IP アドレス。デバイスがホームネットワークまたは企業のローカルエリアネットワーク (LAN) 上にある場合は、代わりに LAN のパブリック出口 IP アドレスを追加します。 |
|
Elastic Compute Service (ECS) インスタンスからインターネット経由で Kibana にアクセスする。 | ECS インスタンスと ES クラスターが異なる VPC にある場合、ECS インスタンスのパブリック IP アドレスを介して Kibana にアクセスできます。ECS インスタンスのパブリック IP アドレスを取得し、ES クラスターのパブリックアクセスホワイトリストに追加します。 | ECS コンソールにログインし、インスタンスリストでインスタンスのパブリック IP アドレスを表示します。 |
パブリックアクセスホワイトリストへの追加
お使いのデバイスの IP アドレスを取得し、パブリックアクセスホワイトリストに追加します。
default グループの右側にある設定をクリックし、表示されるダイアログボックスでホワイトリストに IP アドレスを追加します。
設定タイプ 形式と例 重要な注意事項 IPv4 アドレス形式
単一 IP アドレス:
192.168.0.1CIDR ブロック:
192.168.0.0/24。(推奨) 散在する IP アドレスを CIDR ブロックに集約します。
1 つのクラスターで最大 300 個の IP アドレスまたは CIDR ブロックをサポートします。複数の IP アドレスまたは CIDR ブロックはカンマ (,) で区切り、カンマの前後にスペースを追加しないでください。
デフォルトのパブリックアドレス:
127.0.0.1。すべての IPv4 アドレスからのアクセスが拒否されます。0.0.0.0/0: すべての IPv4 アドレスからのアクセスを許可します。0.0.0.0/0は、高いセキュリティリスクをもたらすため、設定しないでください。クラスターやリージョンによっては、
0.0.0.0/0がサポートされていない場合があります。正確な情報については、コンソールまたはエラーメッセージをご参照ください。
設定が完了したら、OK をクリックします。
インターネットからのアクセス をクリックします。 Kibana ログインページで、ユーザー名とパスワードを入力します。 正常にログインすると、Kibana コンソールが表示され、ES データを探索できます。
[ユーザー名]:
elasticに固定されています。[パスワード]:ES クラスター作成時に設定したパスワード。忘れた場合は、パスワードをリセットできます。
Developer Tools コンソールに移動し、
検証:右側のペインにバージョン番号やクラスター名などの情報を含む JSON オブジェクトが返された場合、接続は成功です。GET /コマンドを実行してクラスター情報を照会します。
ステップ 3:インデックスの作成
Kibana 開発者ツールで RESTful API 操作を実行して、資産管理製品データ用の product_info という名前のインデックス (マッピング) を作成します。
PUT /product_info
{
"settings": {
"number_of_shards": 5,
"number_of_replicas": 1
},
"mappings": {
"properties": {
"productName": {
"type": "text",
"analyzer": "ik_smart"
},
"annual_rate":{
"type":"keyword"
},
"describe": {
"type": "text",
"analyzer": "ik_smart"
}
}
}
}主要なパラメーターの説明:
settings: インデックスのシャード設定を定義します。 たとえば、この設定では 5 つのプライマリシャードと、各プライマリシャードに 1 つのレプリカを定義します。 mappings: インデックスフィールドを定義します。 たとえば、この設定では productName、annual_rate、describe の 3 つのフィールドを定義します。 text 型のフィールドはトークン化とあいまい検索をサポートし、keyword 型のフィールドは完全一致に使用されます。 フィールドタイプの詳細については、「フィールドデータ型」をご参照ください。 検証: レスポンスに "acknowledged": true と "shards_acknowledged": true が含まれている場合、インデックスは正常に作成されています。
ステップ 4:データの挿入
次のコードを実行して、テストデータを一括挿入します:
POST /product_info/_bulk
{"index":{}}
{"productName":"Wealth Management Product A","annual_rate":"3.2200%","describe":"180-day fixed-term product. Minimum investment: 20,000. Stable returns. Optional push notifications."}
{"index":{}}
{"productName":"Wealth Management Product B","annual_rate":"3.1100%","describe":"90-day scheduled investment product. Minimum investment: 10,000. Daily push notifications for credited returns."}
{"index":{}}
{"productName":"Wealth Management Product C","annual_rate":"3.3500%","describe":"270-day scheduled investment product. Minimum investment: 40,000. Daily push notifications for immediately credited returns."}
{"index":{}}
{"productName":"Wealth Management Product D","annual_rate":"3.1200%","describe":"90-day scheduled investment product. Minimum investment: 12,000. Daily push notifications for credited returns."}
{"index":{}}
{"productName":"Wealth Management Product E","annual_rate":"3.0100%","describe":"Recommended 30-day scheduled investment product. Minimum investment: 8,000. Daily return message notifications."}
{"index":{}}
{"productName":"Wealth Management Product F","annual_rate":"2.7500%","describe":"Popular short-term product. 3-day term, without any service fee. Minimum investment: 500. Return notifications by SMS."}確認:レスポンスに "errors": false が含まれている場合、データは正常に挿入されました。
ステップ 5:データの検索
全文検索 (あいまい検索)
describe フィールドに "credited returns" が含まれる資産運用商品を検索します:
GET /product_info/_search
{
"query": {
"match": {
"describe": "Daily push notifications for credited returns"
}
}
}検証:結果は関連性スコアでソートされ、スコアが高い結果が先に表示されます。
条件付き検索 (完全一致)
annual_rate (年換算利率) が 3.00%~3.13% の資産運用商品を検索します:
GET /product_info/_search
{
"query": {
"range": {
"annual_rate": {
"gte": "3.0000%",
"lte": "3.1300%"
}
}
}
}検証:クエリは数値範囲に完全に一致し、条件を満たす結果を返します。クエリ句の詳細については、Query DSL をご参照ください。
リソースのクリーンアップと次のステップ
データ削除と ES クラスターのリリース
次のコードを実行して、このトピックで作成したテストインデックスを削除します。
DELETE /product_info次のレスポンスが返されます:
{
"acknowledged" : true
}Elasticsearch コンソールのクラスターリストに戻ります。
クラスターリストでリリースするクラスターを見つけ、操作 列で をクリックし、直ちに削除 を選択したあと、 OK をクリックしてクラスターをリリースします。
クラスターをリリースすると、クラスターとその中のすべてのデータが完全に削除されます。この操作は元に戻すことができないため、注意して進めてください。
次のステップ
ES の詳細については、以下のトピックをご参照ください:
データインジェストまたは移行:ビジネスデータを ES に収集または移行する。
移行の前に、データ量を評価して、クラスター構成をアップグレードする必要があるかどうかを判断してください。