このチュートリアルでは、Alibaba Cloud Elasticsearch Agent Engine Edition インスタンスを準備して接続します。この手順はすべてのユースケースで共通です。接続後、ビジネス要件に応じて、ベクトル検索、コレクションとスライスのデータ管理、およびその他の機能を使用できます。
インスタンスの準備
前提条件
Alibaba Cloud Elasticsearch が有効化されていること。
インスタンスの仮想プライベートクラウド (VPC)、vSwitch、アクセスホワイトリスト、およびクライアントネットワークを計画済みであること。
使用するアカウントには、必要な権限が必要です。たとえば、コレクションを使用する場合、管理操作には通常
manage、データの読み取りにはread、データの書き込みにはwriteが必要です。詳細については、「コレクションの権限」をご参照ください。
インスタンスの作成
インスタンスを作成するときは、Elasticsearch Version を [Agent Engine Edition] に設定します。本番環境では、単一のクエリノードに障害が発生した場合でもクエリが利用できるように、少なくとも 2 つのクエリノードを設定します。パラメーター設定の詳細については、「Alibaba Cloud Elasticsearch クラスターの作成」をご参照ください。
書き込みスループット、クエリの同時実行性、ベクトルインデックスの構築、アクティブなデータセット、およびキャッシュ要件に基づいて、ノードの数と仕様を決定します。永続データは、従量課金制のオブジェクトストレージを使用します。事前にストレージ容量をプロビジョニングしたり、お客様自身でストレージをスケールアップしたりする必要はありません。
インスタンスへの接続
Agent Engine Edition インスタンスを作成した後、Kibana Dev Tools、Elasticsearch 互換クライアント、または任意の HTTP クライアントを使用してアクセスできます。インスタンスの詳細ページから接続パラメーターをコピーします。詳細については、「クラスターへの接続」をご参照ください。
Agent Engine Edition のアクセスドメイン名は、ネットワークの種類によって異なります。ドメイン名は、リクエストを最初に受信するノードロールのみを決定します。リクエストの種類を制限するものではありません。クラスターは、各リクエストを処理するノードロールに転送します。
ネットワークタイプ | ドメイン名 | エントリノード | リクエスト処理 |
VPC | コンソールに表示されるデフォルトの Elasticsearch VPC ドメイン名 | クエリノード | 読み取りおよび書き込みリクエストをサポートします。書き込みリクエストは、処理のためにインデックスノードに転送されます。 |
VPC |
| インデックスノード | 読み取りおよび書き込みリクエストをサポートします。クエリリクエストは、処理のためにクエリノードに転送されます。 |
インターネット | コンソールに表示されるデフォルトの Elasticsearch パブリックドメイン名 | クエリノード | インターネット経由で利用できるのはこのドメイン名のみです。読み取りおよび書き込みリクエストをサポートします。書き込みリクエストは、処理のためにインデックスノードに転送されます。 |
本番環境では、読み取りリクエストにはデフォルトの VPC ドメイン名を、書き込みリクエストにはインデックスノードの VPC ドメイン名を使用します。この分離により、クエリノードのネットワーク帯域幅の使用量が削減され、特に一括書き込み、大量の結果を返すクエリ、および高同時実行シナリオで重要です。インターネット経由でインスタンスにアクセスする場合は、読み取りリクエストと書き込みリクエストの両方にデフォルトのパブリックドメイン名を使用します。たとえば、インスタンス ID が es-cn-xxx の場合、インデックスノードの VPC ドメイン名は es-cn-xxx-index.elasticsearch.aliyuncs.com です。
インスタンスはデフォルトで HTTP を使用します。インターネット経由でインスタンスにアクセスしたり、認証情報を送信したりする前に、HTTPS を有効にする必要があります。このセクションの cURL の例では HTTPS を使用しています。管理下にある VPC 環境で接続を確認する場合にのみ、コンソールで提供される HTTP エンドポイントを使用してください。
Kibana Dev Tools で次のリクエストを実行して、接続を確認します。
GET /レスポンス内の version.number は Elasticsearch エンジンのバージョン番号です。これは、コンソールに表示される製品バージョン番号とは異なります。代わりに cURL を使用して接続を検証するには、<elasticsearch-endpoint> をインスタンス詳細ページからコピーしたエンドポイントに、<username> をお使いのユーザー名に置き換えます。コマンドを実行した後、パスワードがコマンド履歴に書き込まれないように、プロンプトでパスワードを入力します:
curl --user '<username>' 'https://<elasticsearch-endpoint>/'クライアントの選択
Agent Engine Edition はエンジンバージョン 9.99.0 に対応しています。既存のインスタンスでは、GET / を実行してエンジンバージョンを確認できます。
ベストプラクティスとして、マイナーバージョンがエンジンのマイナーバージョン (現在は 9.5.x) と一致するクライアントを使用することを推奨します。同じメジャーバージョン内では、マイナーバージョンがエンジンのマイナーバージョン以前であるクライアント (例えば、バージョン 9.0 から 9.5) は、期待どおりにサービスを呼び出すことができます。マイナーバージョンがエンジンのマイナーバージョンより後のクライアントは、互換性が保証されません。呼び出すことができる API は、常にサーバー側のエンジンバージョンによって決まります。クライアントをアップグレードしても、より新しいサーバー側のエンジンバージョンを必要とする機能、API、またはリクエストパラメーターは提供されません。詳細については、「Elasticsearch クライアントの互換性」をご参照ください。
Custom plugin compatibility
When you package or upload a custom plugin, use a plugin package that is built and verified for Agent Engine Edition. In the plugin descriptor file plugin-descriptor.properties, elasticsearch.version=9.99.0 is a plugin compatibility identifier reserved for Agent Engine Edition. When you declare this value, nodes skip the engine version check and load the plugin. The value does not verify binary or API compatibility between the plugin and the engine, and it is not the engine version used as a compile-time dependency. Changing only this field does not guarantee that a plugin of any version works. You must still rebuild and test the plugin for Agent Engine Edition.
Next steps
To run your first vector search, see Vector search example for a standard index.
To organize data by tenant, knowledge base, or code repository, see Vector fields and KNN.
To learn how index nodes, query nodes, and the cache work together, see Stateless architecture and resource planning.