OpenSearch

全文検索、ログ分析、可視化を提供するオープンソースの検索・分析エンジン

AWSデータベース
OpenSearch」の技術書を見る (14 冊) →

OpenSearch とは

OpenSearch は、Elasticsearch からフォークされたオープンソースの検索・分析エンジンで、全文検索、ログ分析、リアルタイムダッシュボードを提供する。2021 年に AWS が Elasticsearch のライセンス変更を受けてフォークした。Amazon OpenSearch Service としてマネージドサービスが提供されている。

主な用途

主な用途を以下にまとめる。

用途具体例
全文検索EC サイトの商品検索、ドキュメント検索
ログ分析CloudWatch Logs → OpenSearch → ダッシュボード
メトリクス可視化OpenSearch Dashboards (旧 Kibana)
セキュリティ分析SIEM (Security Information and Event Management)

DynamoDB との使い分け

DynamoDB との使い分けを以下に整理する。

観点DynamoDBOpenSearch
クエリキーベースの検索全文検索、ファジー検索、集計
データモデルキーバリュー / ドキュメント転置インデックス
適するケースCRUD、トランザクション検索、ログ分析
一貫性強い整合性結果整合性

DynamoDB は「userId = 123 の注文を取得」に適し、OpenSearch は「"TypeScript 入門" を含む記事を検索」に適している。

CDC で DynamoDB と同期

CDC で DynamoDB と同期を図で示す。

[DynamoDB][DynamoDB Streams][Lambda][OpenSearch]

DynamoDB をプライマリデータストアとし、DynamoDB Streams + Lambda で OpenSearch に同期する。検索は OpenSearch、CRUD は DynamoDB で行う。

OpenSearch Serverless

OpenSearch Serverless は、クラスターの管理が不要なサーバーレスモードだ。OCU (OpenSearch Compute Unit) 単位で課金される。

クエリ例

クエリ例の例を示す。

// 全文検索
GET /products/_search
{
  "query": {
    "multi_match": {
      "query": "TypeScript 入門",
      "fields": ["title^2", "description", "tags"]
    }
  }
}

// ファジー検索 (タイポ許容)
{
  "query": {
    "fuzzy": { "title": { "value": "TypeScrpt", "fuzziness": "AUTO" } }
  }
}

さらに掘り下げるなら関連書籍が参考になる。

この記事は役に立ちましたか?

関連用語

関連する記事