[翻訳] OpenSearch をシンプルに: アプリケーションベーステンプレートの力
OpenSearch は、ログ、メトリクス、トレース、Web サイト検索、ベクトルなど、幅広いユースケースをサポートしており、ユースケースに基づいてさまざまなアプリケーション向けのソリューションを構築できます。OpenSearch のユースケースが増え続けるにつれて、インデックスの管理と適切な設定の構成は、経験豊富なユーザーにとっても新規ユーザーにとっても困難な作業になる可能性があります。OpenSearch は、スループット、レイテンシ、ディスク使用率など、さまざまなパフォーマンスとユーザビリティの側面に合わせてインデックスを微調整するために使用できる多数の設定を提供しています。しかし、新規ユーザーにとって、最適な設定を見つけるには広範な実験と開発者の労力が必要になることが多く、オンボーディングプロセスで摩擦が生じます。新機能が開発・リリースされると、経験豊富な OpenSearch ユーザーもそれらを見落とす可能性があります。
この課題に対処するため、OpenSearch 2.17 では実験的機能として「アプリケーションベース設定 (ABC) テンプレート」の概念が導入されました。この機能により、特定のユースケースに基づいてインデックスを簡単に設定でき、手動更新の必要性を減らしながら、シームレスなオンボーディング体験を促進し、新機能が導入されるにつれてインデックスとその設定およびマッピングのライフサイクルを管理できます。
ABC テンプレートとは?
OpenSearch において、ABC テンプレートは、さまざまなユースケース向けにインデックスを設定するプロセスを簡素化するために設計された、事前定義されたシステムテンプレートです。これらのテンプレートは、さまざまなユースケースに合わせて調整された最適化された設定、マッピング、構成をカプセル化し、各設定を個別に手動で処理する必要をなくします。
ABC テンプレートは、インデックスまたはインデックステンプレートを作成するときにリクエストで context フィールドを指定することで、インデックスまたはインデックステンプレートに適用できます。これにより、インデックスまたはインデックステンプレートが指定されたユースケース (例: ログやメトリクス) に関連付けられ、ABC テンプレートから対応する設定とマッピングがインデックスまたはインデックステンプレートに自動的に適用されます。
ABC テンプレートは、インデックスをユースケース対応にし、インデックス作成からデータの可視化 (例: Simple Schema for Observability) まで、すべての段階でパフォーマンスとエンドツーエンドのサポートの観点から最適な設定を適用します。適用可能な設定の基本的な構成要素を提供するために、コンポーザブルインデックステンプレートとコンポーネントテンプレートに依存できます。ABC テンプレートは、ユースケース固有の設定を公開するためのリソースとしてコンポーネントテンプレートを使用します。このソリューションは、既存のインデックス定義とうまく連携するように設計されており、利用可能な最適化はすぐに使用できます。
なぜ ABC テンプレートを使用するのか?
OpenSearch ABC テンプレートには以下の利点があります。
- 設定の簡素化: ABC テンプレートは、多数の設定をナビゲートする必要をなくし、インデックス設定の複雑さを軽減します。
- 最適化されたパフォーマンス: テンプレート内の事前定義された設定とマッピングは、特定のユースケース向けに最適化されており、すぐに使用できる優れたパフォーマンスを保証します。
- 自動更新: OpenSearch が新しい最適化と機能を導入すると、それらは ABC テンプレートに追加され、最小限の労力で新しく作成されたインデックスに使用を開始できます。
最適化された ABC テンプレートの設定とそのパフォーマンス上の利点を理解するために、HTTP ログデータセットを使用して logs テンプレートに依存するインデックス (同じリフレッシュ間隔) を使用した比較演習を実施し、以下の結果を得ました。
- ストレージが 20% 改善 (保存フィールドのデフォルトの
qat_lz4圧縮と比較してzstd_no_dictを使用した場合) - 生成されるセグメントが小さくなり、マージが少なくなるため、インデックス作成の p99 レイテンシが 6% 改善
- テンプレートはインデックスに
log_byte_sizeマージポリシーの使用を要求するため、一緒に取り込まれたデータはセグメントマージ後も一緒に保持され、時間範囲フィルタークエリのパフォーマンスが向上
以下の図は、ストレージと p99 レイテンシのパフォーマンスを比較しています。

ABC テンプレートの使用方法
ABC テンプレートを使い始めるには、インデックスコンテキストを参照してください。
以下のアニメーションは、ABC テンプレートを使用してインデックスを作成する様子を示しています。テンプレートは必要なインデックスマッピングと設定を設定します。さらに、その後に取り込まれるデータのために OpenSearch Dashboards との直接統合を設定します。

利用可能なテンプレート
opensearch-system-templates の最初のバージョンでは、OpenSearch 2.17 時点で context パラメータで使用できる以下のテンプレートが利用可能です。
logsmetricsnginx-logsamazon-cloudtrail-logsamazon-elb-logsamazon-s3-logsapache-web-logsk8s-logs
制限事項
多くの利点を提供する一方で、ABC テンプレートには以下の制限事項があります。
- インデックスに ABC テンプレートを使用する場合、インデックスコンテキストをサポートするテンプレートで定義されている設定を、インデックスの作成時または動的設定の更新時に含めることはできません。
- インデックスに設定されると、コンテキストは永続的になり、削除できません。
まとめ
OpenSearch が進化し続けるにつれて、既存の ABC テンプレートにシームレスに統合された新しい最適化と機能の恩恵を受けることができ、さまざまなユースケースで一貫した最適化された体験を保証します。事前定義された最適化された設定と構成をすぐに使用できる形で提供することで、この機能はオンボーディングプロセスで必要な摩擦と開発者の労力を軽減します。OpenSearch フォーラムでのフィードバックをお待ちしており、すべてのバージョンリリースで OpenSearch をより使いやすくするために協力できることを楽しみにしています。
OpenSearch Project(OSS) の Publicationです。 OpenSearch Tokyo User Group : meetup.com/opensearch-project-tokyo/
Discussion