Amazon OpenSearch Serviceとは?何ができるのか初心者向けに解説
AWSで検索やログ分析について調べていると、Amazon OpenSearch Serviceというサービスが出てきます。
Amazon OpenSearch Serviceは、大量のデータを検索・分析するためのマネージドサービスです。
Webサイトの検索機能だけでなく、ログ分析やデータの可視化、ベクトル検索などにも利用できます。
OpenSearchとは?
OpenSearchは、オープンソースの検索・分析エンジンです。
大量のデータを登録しておき、必要なデータを検索できます。
例えば、ECサイトの商品検索では次のように使います。
商品データ
↓
OpenSearch
↓
「ワイヤレスイヤホン」で検索
↓
関連する商品を取得
検索に適した形で商品データを登録することで、大量の商品から目的のものを探せます。
Amazon OpenSearch Serviceとは?
OpenSearchを自分で構築する場合は、サーバーの用意、インストール、クラスタの管理などが必要です。
Amazon OpenSearch Serviceでは、AWSがOpenSearchを実行するための基盤を管理します。
アプリケーション
↓
Amazon OpenSearch Service
↓
検索・分析
以下は、AWS公式ブログに掲載されたOpenSearch Serviceのドメイン詳細画面です。
ドメインとは、OpenSearchを動かすために作成する環境です。画面にはドメインの状態やOpenSearch DashboardsへのURLなどが表示されています。
画像出典:AWS Big Data Blog
何に使われる?
代表的な用途は次のとおりです。
- Webサイト・ECサイトの検索
- アプリケーション内検索
- ログ分析
- システム監視
- データの可視化
- ベクトル検索
- AIを利用した検索
Webサイトの検索
分かりやすい用途の一つが、Webサイト内の検索機能です。
例えばECサイトでは、商品データをOpenSearchに登録し、ユーザーが入力したキーワードに合う商品を探します。
商品DB
↓
検索用の商品データを登録
↓
OpenSearch
↓
ユーザーの商品検索
ログ分析
OpenSearchはログ分析にも利用できます。
アプリケーションやサーバーのログを登録し、必要な情報を検索・分析します。
アプリケーション
↓
ログ
↓
OpenSearch
↓
検索・分析・可視化
例えば、次のような調査ができます。
- エラーログを検索する
- 特定のHTTPステータスコードを調べる
- エラー件数の推移を確認する
- 特定ユーザーの処理を追跡する
OpenSearch Dashboardsとは?
OpenSearch Dashboardsは、OpenSearchのデータを検索したり、グラフやダッシュボードで表示したりするための画面です。
OpenSearchに保存されたデータ
↓
OpenSearch Dashboards
↓
グラフ・ダッシュボード
以下は、AWS公式ブログに掲載されたダッシュボードの例です。複数のグラフを一つの画面にまとめています。
画像出典:AWS Big Data Blog
ログを一件ずつ読むだけでなく、発生件数や時間ごとの変化も確認できます。
RDSとの違い
RDSなどのリレーショナルデータベースでも、SQLを使ってデータを検索できます。
ただし、主に得意とする処理が異なります。
| サービス | 得意なこと |
|---|---|
| Amazon RDS | 業務データの保存・更新、トランザクション処理 |
| Amazon OpenSearch Service | 全文検索、大量データの検索・分析 |
例えば、商品や注文の元データをRDSで管理し、商品検索に使うデータをOpenSearchへ登録する構成があります。
RDSで商品データを管理
↓
検索用データをOpenSearchに登録
↓
ユーザーが商品を検索
OpenSearchを導入すると、RDSからOpenSearchへ検索用データを反映する仕組みも必要です。
ベクトル検索にも利用できる
OpenSearchでは、キーワード検索に加えてベクトル検索も利用できます。
ベクトル検索では、文章や画像などを数値の集合であるベクトルとして扱い、近いデータを探します。
例えば、次のような使い方です。
「AWSの料金を安くしたい」
↓
文章をベクトルに変換
↓
OpenSearchで検索
↓
関連するドキュメントを取得
生成AIと組み合わせる場合は、RAGの検索部分にOpenSearchを利用することもできます。
Amazon OpenSearch Serverless
Amazon OpenSearch Serviceには、OpenSearch Serverlessという選択肢もあります。
通常のドメインでは、クラスタの構成やインスタンスなどを設計します。
Serverlessでは、そうしたインフラ管理をさらにAWSへ任せられます。
OpenSearchを導入した効果はどう確認する?
検索機能にOpenSearchを導入したら、実際の効果を確認します。
- 検索結果が返るまでの時間
- 検索APIのエラー率
- 検索件数
- OpenSearchのリソース使用状況
- 必要な検索結果が返っているか
例えば、同じ検索条件で導入前後の応答時間を測ります。
導入前:RDSで検索
平均レスポンス 800ms
↓
導入後:OpenSearchで検索
平均レスポンス 200ms
この数値は説明用の例です。
実際の効果を判断する際は、同じ条件・同じ指標で比較します。速度だけでなく、必要な商品が検索結果に表示されるかも確認します。
CloudWatchでOpenSearchを監視する
Amazon OpenSearch Serviceは、メトリクスをAmazon CloudWatchへ送信します。
例えば、次のような状態を確認できます。
- CPU使用率
- JVMのメモリ使用状況
- ストレージの空き容量
- クラスタの状態
以下は、AWS公式ドキュメントに掲載されたOpenSearch Serviceのインスタンス状態画面です。検索数やCPU使用率をノードごとに確認できます。
画像出典:Amazon OpenSearch Service開発者ガイド
CloudWatch Alarmを設定すれば、異常な状態になったときに通知することもできます。
DatadogでOpenSearchの効果を確認する
Datadogを利用している環境では、OpenSearchの状態に加え、アプリケーション側の処理も確認できます。
検索機能の効果を見る場合は、ユーザーのリクエストから検索結果が返るまでの時間が重要です。
ユーザー
↓
Web / API
↓
OpenSearch
例えばDatadog APMで検索APIを確認し、導入前後のレスポンスタイムを比較します。
導入前
/search:平均 800ms
導入後
/search:平均 200ms
この数値も説明用の例です。
平均値に加えてp95やp99を確認すると、一部の遅いリクエストも把握できます。
確認する項目は次のようなものです。
| 確認するもの | 分かること |
|---|---|
| APIレスポンスタイム | 検索APIが速くなったか |
| p95・p99 | 遅いリクエストが改善したか |
| エラー率 | 導入後にエラーが増えていないか |
| OpenSearch処理時間 | 検索処理自体に時間がかかっていないか |
| リクエスト数 | 検索へのアクセス量 |
| CPU・JVM・ストレージ | OpenSearch側に負荷の問題がないか |
検索APIが遅いときも、APMで処理を確認すれば、アプリケーション側とOpenSearchへの問い合わせのどちらに時間がかかっているかを調べやすくなります。
Datadogの画面キャプチャを追加する場合は、実際の検索APIの応答時間が分かる画面をここに載せると、導入効果の説明につながります。
CloudWatchとDatadogの使い分け
CloudWatchでは、OpenSearchのCPU、JVM、ストレージなど、AWSリソースの状態を確認できます。
Datadogでは、検索APIを含むアプリケーション全体の処理を確認できます。
CloudWatch
→ OpenSearchの状態を確認
Datadog
→ 検索APIを含む処理を確認
両方を利用している場合は、検索が遅くなった時間帯のAPI応答時間とOpenSearchのメトリクスを照らし合わせます。
まとめ
Amazon OpenSearch Serviceは、大量のデータを検索・分析するためのAWSのマネージドサービスです。
Webサイト検索、ログ分析、データの可視化、ベクトル検索などに利用できます。
業務データの保存・更新
→ RDSなど
全文検索・大量データの分析
→ OpenSearch
導入後は、OpenSearchの状態だけでなく、実際の検索速度、エラー率、検索結果も確認します。
CloudWatchでOpenSearchの状態を監視し、Datadogを利用している場合は、アプリケーション側から見た検索の応答時間も確認できます。


