【生成AI】Amazon OpenSearch Serverless と Amazon Aurora を RAG 用途で比較してみた

AWS

2024.12.12

Topics

この記事はNHN テコラス Advent Calendar 2024の12日目の記事です。

はじめに

こんにちは、フクナガです。
生成AIを企業で活用する際、「RAG」を実装し、企業のユースケースに最適化することが多いかと思います。
AWS では、だれでもクイックにRAGを含んだ生成AI利用環境をデプロイできるように「Generative AI Use Cases JP (略称:GenU)」というサンプルアプリケーションを無料提供しています。

私も自身でデプロイし、生成AI環境のスムーズな構築を体験し、とても良いツールだなと感じています。
しかし、「ランニングコストが高い」と感じる方も少なくないのではないでしょうか?
参考:社内知識を活用した生成 AI チャットボットを構築したい

特にRAGの部分で利用されている「Amazon Kendra」のコストが非常に大きな割合を占めています。
月額:821.25 USD(日本円で約12.6万円)
※1ドル153.5円で計算しております。

様々なデータソースに対応したコネクタを利用できる非常に優れたソリューションではありますが、PoC用途のスモールスタートを計画しているお客様には不向きなケースもございます。

今回は、RAGシステムのランニングコストを抑えるための選択肢として、「Amazon OpenSearch Serverless」と「Amazon Aurora」を採用した場合のコストや利用方法の違いをご紹介していきたいと思います。

前提

本記事では、アプリケーションの実装については触れず、「RAG」の実装のみに着目しています。
アプリケーションの実装コスト(時間、お金)を踏まえると、「Generative AI Use Case JP」は非常に有用な選択肢であると思います。

また、「Pinecone」などの 3rd Party 製のツールについても紹介の対象外としております。
(非常に興味があるので、別の機会にご紹介します)

今すぐに試したい方は、下記をご参照ください。
AWS Marketplace の Pinecone を Amazon Bedrock のナレッジベースとして利用する

Amazon Bedrock のナレッジベースについて

本記事では、Amazon OpenSearch Serverless と Amazon Aurora を使った RAG システムを構築するのに、
ナレッジベースという機能を利用します。

ナレッジベースでは、下記のデータソースを利用することが可能です。

Amazon S3 の場合は、S3 にドキュメントを格納し、マネジメントコンソールを数クリックするのみで RAG システムが作れてしまうため、非常に簡単に構築ができます。
対応しているドキュメントの形式については、下記を参照してください。
参考:Amazon Bedrock ナレッジベースデータの前提条件

各データベースの料金について

(1) Amazon OpenSearch Serverless

Amazon OpenSearch Serverless では、「OpenSearch Compute Units(OCU)」という単位で料金を計算していきます。

OpenSearch Serverless は、現在のワークロードに基づいて、アカウントのコンピューティング性能を自動的にスケーリングします。Serverless のコンピューティング性能は、OpenSearch Compute Units (OCU) で測定されます。各 OCU は、6 GiB のメモリと対応する仮想 CPU (vCPU)、および Amazon S3 へのデータ転送を組み合わせたものです。
出典:Amazon OpenSearch Serverless でのキャパシティ制限の管理

リソースタイプごとの料金については下記となります。

リソースタイプ 料金
OpenSearch Compute Unit (OCU) – インデックス作成 0.24 USD / 1 OCU・1 時間
OpenSearch Compute Unit (OCU) – 検索とクエリ 0.24 USD / 1 OCU・1 時間
マネージドストレージ 0.024 USD / 1 GB・1か月

Amazon OpenSearch Serverless は、冗長化の有無を選択することが可能です。
本番環境などの冗長化の必要があるワークロードでは最低 OCU が 2OCU となり、開発や検証用途では冗長スタンバイノードなしで起動することができるため最低 OCU が 1OCU となります。
詳細な説明が見たい方は下記を参照してください。
参考:
Amazon OpenSearch Service の料金
Amazon OpenSearch Serverless slashes entry cost in half for all collection types

上記を踏まえると、ストレージを除いた最低の月額ランニングコストは下記となります。
月額:172.8 USD (日本円で約2.7万円)
※日本円は、2024年11月時点のレートで計算しております。

注意点

Amazon OpenSearch Serverless は自動的にスケールし、必要なリソースを提供する仕組みを備えています。
逆に言うと「気づかぬうちにスケールし、予期せぬコストが発生する可能性がある」サービスですので、
料金の推移は継続的にモニタリングする必要があります。
参考:Amazon OpenSearch Serverless

(2) Amazon Aurora

スケールの仕組みやリソースの考え方がかなり違うので単純に比較することは難しいですが、Amazon OpenSearch Serverless の最低スペックに近いもので試算してみます。
Amazon Aurora は利用しているインスタンスの稼働時間に比例した従量課金とストレージ料金、I/O に対する課金があります。
Amazon OpenSearch Serverless のメモリが 6GiB でしたので、それを下回らない「db.t4g.large」(2vCPU、8GiB)を前提に試算してみます。

種別 料金
インスタンス(db.t4g.large) 0.146 USD / 1 時間
ストレージ 0.10 USD / 1 GB・1か月
I/O 料金 0.20 USD / 100万リクエスト

ストレージ、I/O 料金については利用されるケースによると思いますので、いったんインスタンスのみ月額ランニングコストを試算してみます。
月額:105.12 USD(日本円で約1.6万円)
※日本円は、2024年11月時点のレートで計算しております。

安価に見えますが、格納するデータ量によっては OpenSearch Serverless を上回る可能性もございます。

注意点

Amazon Aurora を利用する場合、付随してネットワークリソース(VPCやゲートウェイなど)や踏み台サーバーなど様々なリソースが必要になります。
そういったリソースがすでにある環境をお使いの場合はトータルのコストが安価になる可能性がございますが、「Amazon Aurora が一番安い選択肢だ」と考えず、とりうる選択肢の一つとご認識ください。

各データベースのコスト以外の違い

ここまでの話だと、投入するデータ量が少ないなら「Amazon Aurora」、多いなら「Amazon OpenSearch Serverless」というように見えてしまったかと思います。
ただ、価格以外にも差がありますので、特徴をご紹介していきたいと思います。

時間が許す方は、下記から閲覧できる「RAG on AWS dive deep」が非常にわかりやすかったのでお勧めです!
【開催報告 & 資料公開】RAG の困りごとは今日で一気に解決! AWS 生成 AI Dive Deep

ハイブリッド検索

Amazon OpenSearch Serverless を利用すると、ハイブリッド検索をマネージドで実現することが可能です。
ハイブリッド検索とは「ベクトル検索」と「キーワード検索」を組み合わせた手法となります。
参考:
ハイブリッド検索
Amazon OpenSearch Service の検索機能強化: 2023年のまとめ

ただ、他のデータベースでもハイブリッド検索を実装する予定のようですので、動向は要チェックですね!

ハイブリッド検索の利点
キーワード検索とセマンティック検索は、それぞれ別の関連度スコア付きの結果セットを返しますが、これらを組み合わせて最も適合性の高い結果を返します。Knowledge Bases for Amazon Bedrock は現在、Amazon OpenSearch Serverless、Amazon Aurora PostgreSQL 互換エディション、Pinecone、Redis Enterprise Cloud の 4 つのベクトルストアをサポートしています。この記事の執筆時点では、ハイブリッド検索機能は OpenSearch Serverless でご利用いただけますが、他のベクトルストアのサポートも間もなく追加される予定です。
出典:Knowledge Bases for Amazon Bedrock がハイブリッド検索をサポート

実装コスト

今回利用するナレッジベースですが、Amazon OpenSearch Serverless については自動作成が可能となり、非常に簡単に利用を開始できます。
「ちりつも」ではありますが、「月1万円程度の差額で、手軽さが手に入るならそっちを選ぼう!」となる方も少なくはないのでしょうか。
私は完全にそっちのタイプです。
どのくらい大変かは、後半に実装ブログをご紹介するのでそちらで感じてみてください!!

その他

私が価値や差を実感できたのは上述した2つですが、他にも「既存 DB に相乗りできるから RDS がよい」とか「日本語に特化した形態素解析が可能だから OpenSearch がよい」など細かな違いはたくさんあるようです。
一度リリースすると DB のリプレイスはかなりの手間ですから、PoC フェーズなどで比較・検討し、十分な時間をかけて選択していくのがよさそうですね。

Amazon OpenSearch Serverless で RAG を実装する

弊社で4月ごろに出したこのブログを見ると、実装のイメージがわくと思いますのでご覧ください。

関連記事
Amazon BedrockのKnowledge Baseを構築し、Claude 3 Haikuを使ってみた

RAG 機能を非常に簡単に構築できてすばらしいですね!
冗長化せず、最小コストで運用する場合、Amazon Kendra と比べて非常に安価に使えるため、ぜひ検討してみてください。

Amazon Aurora で RAG を実装する

こちらについては、下記のブログでご案内しております。

関連記事
【生成AI】Amazon Aurora をベクトルデータベースとして RAG システムを構築してみた

Amazon OpenSearch Serverless で実装した場合に比べると色々と実装時の注意点が多いことがわかると思います。
しかし、既存ワークロードとの関係性によってはコスト面などで優位性が出る場合があるので、選択肢の一つとして覚えておきましょう!

まとめ

今回のブログでは、AWS で RAG 構成を実装する際のデータベースの選択肢についてご紹介しました。
コスト面、性能面様々な差がありますので、それぞれの特徴を理解し、ユースケースごとに選択していく必要がありそうです。

テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!

フクナガ

インフラエンジニア歴5年のフクナガです。2024 Japan AWS Top Engineers / Google Cloud Partner Top Engineer 2025 に選出されました! 生成 AI 多めで発信していますが、CI/CDやIaCへの関心も高いです。休日はベースを弾いてます。

Recommends

こちらもおすすめ

Special Topics

注目記事はこちら