OpenSearch

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

AWSデータベース

OpenSearch とは

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

主な用途

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

DynamoDB との使い分け

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

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

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" } }
  }
}

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

関連用語