こんにちは~ 浮田です。
前回、次世代の OpenSearch Serverless で自分のブログを意味検索できるようにしました。そのとき CloudWatch で OCU を 1 分刻みで追って、「アイドルで本当に 0 OCU」「最後の操作から約 10 分で 0 に戻る」まで確認しています。検証で動いたのは最大 3 OCU、時間にして十数分でした。
その数字を持ったまま、「S3 Vectors vs OpenSearch」のコスト比較記事をいくつか読んでみたんです。書いてあることが、自分の実測と噛み合いません。「OpenSearch は月 350 ドルの固定費がかかる」と書いてありますが、私が払ったのは数十円です。
調べたら、噛み合わないのは当然でした。私が読んでいた記事は、私が使ったのとは別の世代の OpenSearch の話をしていたからです。
■ 前回の実測値を、東京の単価で出し直す
まず前回の数字を再掲します。CloudWatch の SearchOCU と IndexingOCU を 1 分刻みで見た値です。
|
状態 |
IndexingOCU |
SearchOCU |
|
触る前(アイドル) |
0 |
0 |
|
投入・検索中 |
1 |
2 |
|
最後の操作から約 10 分後 |
0 |
0 |
公式の idle timeout が 10 分で、実測もそのとおりでした。
ここで訂正があります。
前回「3 OCU × 0.25 時間 × $0.24 ≒ $0.18、約 27 円」と書きましたが、$0.24 は us-east-1 の単価です。私が使っているのは東京で、東京の OCU は $0.334/時。計算し直すと 3 × 0.25 × 0.334 = $0.25、約 38 円になります。
以降の数字はすべて東京の単価です。
■ よく見る比較表と、その賞味期限
「S3 Vectors OpenSearch コスト」で検索すると、だいたいこういう表に行き着きます。
|
|
月額 |
根拠 |
|
OpenSearch Serverless |
約 $350 |
最低 2 OCU × 24 時間 × 30 日 × $0.24 |
|
S3 Vectors |
$11.38 |
公式の試算例(1,000 万ベクトル、月 100 万クエリ) |
30 倍の差です。これだけ違えば S3 Vectors 一択、という結論になります。
そして私はその表を、古い話だと気づかずに読んでいました。
S3 Vectors のプレビューが 2025 年 7 月、GA が 12 月。
比較記事が集中して書かれたのはこの時期です。
当時の OpenSearch Serverless は、いま Classic と呼ばれている世代で、本番構成では最低 2 OCU が常時課金されました。東京の単価なら 2 × 730 時間 × $0.334 で月 $488、us-east-1 なら $350。「月 350 ドルの固定費」は、この時点では正しい数字でした。
2026 年 5 月末に次世代版が GA になり、最低 OCU の要件がなくなりました。10 分間リクエストがなければ Search も Indexing も 0 に落ち、請求も止まります。Classic の「最低 2 OCU」は次世代版には存在しません。
記事が書かれた時点では、どちらの数字も正しいものでした。ただ、前提が変わったあとも記事はそのまま残ります。
■ S3 Vectors 側も GA で変わっている
S3 Vectors 側も、GA で上限が大きく変わっています。
|
項目 |
プレビュー |
GA(2025 年 12 月) |
|
1 インデックスあたりのベクトル数 |
5,000 万 |
20 億 |
|
書き込みリクエスト/秒(1 インデックス) |
5 |
1,000 |
|
メタデータキー数 |
10 |
50 |
|
1 クエリで返せる件数 |
30 |
100(2026 年 6 月から最大 10,000。1 ページ 100 件) |
■ 課金の構造を並べる
金額を出す前に、何に課金されるかを並べておきます。ここを飛ばすと試算が外れます。
次世代版は「動いていた時間」への課金です。OCU が 3 種類と、ストレージがあります。
|
項目 |
東京の単価 |
|
Search OCU |
$0.334 / OCU 時 |
|
Indexing OCU |
$0.334 / OCU 時 |
|
Vector Index Acceleration OCU |
$0.334 / OCU 時 |
|
ホットストレージ |
$0.36 / GB-月 |
OCU の 3 つ目は知りませんでした。次世代版のベクトル検索コレクションでは、HNSW のインデックス構築を GPU で加速する処理が自動で走ることがあり、それが別項目で請求されます。Classic ではコレクション単位でオン・オフを選んでいたものが、次世代版では勝手に効いて、勝手に請求書に出ます。インデックス単位で無効にはできます。
前回の実測で面白かったのは、Indexing と Search が別々に idle 判定されていたことです。先に使い終わった投入側が先に 0 になり、検索側が後から 0 になる。これは課金でもそのまま効きます。RAG のワークロードでは投入と検索のパターンがまったく違うからです。
投入は初回に一括で、あとは記事を書いたときだけ動きます。検索はユーザーが使う時間帯に張り付きます。両方まとめて「月◯ OCU」と見積もると外します。
S3 Vectors は「置いたバイトと投げたリクエスト」への課金です。
|
項目 |
東京の単価 |
|
ストレージ |
$0.066 / GB-月 |
|
PUT |
$0.219 / GB(1 回 128 KB 最低) |
|
クエリのリクエスト |
$2.7 / 百万 |
|
クエリの処理データ量 |
索引内 10 万ベクトルまで $0.004278 / TB、1,000 万まで $0.002139 / TB、それ以上 $0.000428 / TB |
|
クエリの返却データ量 |
$0.01 / GB(1 クエリ 500 KB まで無料) |
処理データ量の計算が独特なので書いておきます。1 クエリごとに「索引にあるベクトル数 × 平均ベクトルサイズ(ベクトル本体 + キー + フィルタ可能メタデータ)」を処理したものとして課金されます。1,024 次元なら本体だけで 4 KB なので、100 万ベクトルの索引に 1 回クエリを投げると 4.6 GB ぶん処理した扱いです。
これを見て公式の試算例を読み直すと、1,000 万ベクトルをわざわざ 25 万ずつ 40 個の索引に分けている理由が分かります。処理データ量の課金は索引ごとに数えられるので、小さな索引に分けたほうが安くなります。試算例の $11.38 は、その分け方をした上での数字です。
■ 試算し直す
前提を揃えて 3 パターン出します。
- ベクトル: 1,024 次元(4 KB)、キー 0.1 KB、フィルタ可能メタデータ 0.5 KB、本文(非フィルタ)1.5 KB。保存で 6.1 KB、クエリ処理で 4.6 KB
- S3 Vectors の PUT は 6 か月に 1 回の全量再投入を月割り
- 次世代版の OCU 数は「起きている時間 × Search OCU 数」。前回の実測では検索中 2 OCU だったので、1 と 2 の両方を出す
- Indexing OCU と GPU 加速は投入時だけなので、月額からは除いた(初回投入で 1 OCU × 1 時間なら $0.33)
先に S3 Vectors。
|
ベクトル数 |
クエリ/月 |
ストレージ |
PUT |
クエリ |
合計(USD) |
|
10 万 |
3,000 |
0.04 |
0.02 |
0.01 |
0.08 |
|
10 万 |
10 万 |
0.04 |
0.02 |
0.47 |
0.53 |
|
10 万 |
100 万 |
0.04 |
0.02 |
4.67 |
4.73 |
|
100 万 |
3,000 |
0.40 |
0.22 |
0.04 |
0.67 |
|
100 万 |
10 万 |
0.40 |
0.22 |
1.35 |
1.98 |
|
100 万 |
100 万 |
0.40 |
0.22 |
13.52 |
14.15 |
|
1,000 万 |
3,000 |
4.03 |
2.23 |
0.31 |
6.56 |
|
1,000 万 |
10 万 |
4.03 |
2.23 |
10.21 |
16.46 |
|
1,000 万 |
100 万 |
4.03 |
2.23 |
102.08 |
108.33 |
クエリ費だけを見ると、100 万クエリあたり 10 万ベクトルで $4.7、100 万で $13.5、1,000 万で $102 です。S3 Vectors では、ベクトル数に比例して 1 クエリの値段が上がっていきます。
次に次世代版です。こちらの月額はクエリ数ではなく、起きている時間で決まります。
|
ベクトル数 |
使い方 |
起きている時間/月 |
OCU |
合計(USD) |
|
100 万 |
1 日 3 回まとまって使う(15 分 × 3) |
16 時間 |
1 |
7 |
|
100 万 |
平日日中ずっと(9 時間 × 21 日) |
189 時間 |
1 |
65 |
|
100 万 |
平日日中ずっと、負荷高め |
189 時間 |
2 |
128 |
|
100 万 |
24 時間 365 日 |
730 時間 |
1 |
246 |
|
100 万 |
24 時間 365 日、負荷高め |
730 時間 |
2 |
490 |
10 万ベクトルでも数字はほぼ同じです(ストレージが $2.2 から $0.22 に減るだけ)。次世代版の月額はデータ量にほとんど依存せず、起きている時間で決まります。

2 本の線が交わるところを計算しました。
|
S3 Vectors 側のベクトル数 |
次世代版を常時 1 OCU($244)で動かした場合と並ぶクエリ数/月 |
|
10 万 |
約 5,200 万 |
|
100 万 |
約 1,800 万 |
|
1,000 万 |
約 240 万 |
1,000 万ベクトルで月 240 万クエリは、1 秒に 1 回ずつひと月投げ続けるあたりです。
10 万ベクトルなら毎秒 20 回で、そこまで来ると次世代版も 1 OCU では足りません。
次世代版を 24 時間起こしておく構成と比べる限り、この線まで S3 Vectors のほうが安くなります。
ただし次世代版の線は、起きている時間を減らせば下がります。
1 日 3 回まとめて使う月 $7 の構成と比べると、S3 Vectors が安いのは 10 万ベクトルで月 150 万クエリ、100 万ベクトルで 47 万クエリまでです。
1,000 万ベクトルでは置いておくだけで月 $6 かかるので、月 7,000 クエリで並びます。
大きな索引をたまにしか叩かないなら、寝かせた次世代版のほうが安いという結果です。
次世代版の月額を決めるのはクエリの数ではなく、クエリがどれだけ固まっているかです。同じ 3,000 クエリでも、朝昼晩にまとまっていれば月 $7、9 時間の業務時間中に散らばっていれば $65 になります。
■ なぜこうなったのか
次世代版が「エージェント向けに作り直した」と言われる理由は、前回書いたとおり、AI エージェントの検索が不規則でバースト的だからです。
S3 Vectors が狙っている「たまにしか叩かない RAG」も、使われ方としてはこれとかなり重なります。
似た使われ方を想定していても、料金の形は出どころで決まっています。
S3 Vectors は S3 の一部なので、置いたバイト数と投げたリクエスト数で課金されます。OpenSearch Serverless は検索エンジンなので、動いていた時間で課金されます。
同じ用途に見えても、片方はストレージの料金表で、もう片方は計算リソースの料金表です。前の章に並べた 2 つの表の違いは、そのまま出どころの違いです。
課金モデルが動くのはこの 2 つに限りません。Lambda も Fargate も Aurora Serverless も、最低構成や課金の刻みは何度も変わってきました。機能は増える一方なのに対して課金モデルは書き換わるので、サーバーレスの比較記事は課金の部分から先に古くなります。
● 早見表
|
条件 |
有利 |
理由 |
|
クエリが 1 日数十回、時間帯がまとまっている |
どちらでも |
次世代版も起きている時間が短いので月数ドル |
|
クエリが 1 日数十回、業務時間中に散らばる |
S3 Vectors |
次世代版は 10 分ごとに起こされて張り付く |
|
業務時間中ずっと使う |
S3 Vectors |
差は 60 倍前後。ただし機能面の差は次回 |
|
24 時間ずっと使う |
S3 Vectors |
1,000 万ベクトルで月 240 万クエリまでは S3 Vectors |
|
月に数百万クエリ以上を大きな索引に投げる |
要計算 |
S3 Vectors のクエリ費が OCU の固定費に追いつく |
|
大量再インデックスが定期的にある |
要計算 |
次世代版は Indexing OCU と GPU 加速が別勘定 |
|
ハイブリッド検索や完全一致が要る |
比較にならない |
S3 Vectors 単体ではできない |
最後の行がこの記事で書けなかったことです。
■ まとめ
「OpenSearch は月 350 ドルの固定費」という前提は次世代版で消えました。私の実測は 38 円で、前回 27 円と書いたのは us-east-1 の単価で計算していたからです。
ただしそれはアイドル時間がある場合の話で、ずっと使い続けるなら OCU は 0 に落ちません。S3 Vectors 側も GA で書き込みが 200 倍になっています。どちらが安いかは、クエリの数ではなく密度で決まります。
比較記事を読むときは、まず公開日を見てください。今回私が読んだ記事はどれも、書かれた時点では正しかったんです。この記事も、たぶん半年後には同じことを言われます。
表を作り直しながら気になっていたのは、コストで並べている記事はこれだけあるのに、検索結果が同じかどうかを測った記事がほとんどないことです。安いのは分かりましたが、同じものが返ってくるのかは、まだ分かっていません。
次回、同じデータを両方に入れて精度を測ります。前回の記事で作った次世代版のコレクションは、実は engine を指定できず、既定でディスク上の 32 倍圧縮になっていました。その話もそこで書きます。
※この記事は 2026 年 9 月時点の料金に基づきます。単価はすべて東京リージョン。試算は前提を明記した概算で、実際の請求は必ず最新の料金ページで取り直してください。
■ 参考
- Amazon OpenSearch Service 料金(公式)
- Amazon S3 料金 Vectors タブ(公式。試算例 3 つを含む)
- The next generation of Amazon OpenSearch Serverless: Built from the ground up for agents(AWS Big Data Blog、2026-05-28)
- Amazon S3 Vectors is now generally available with 40 times the scale of preview(What's New、2025-12)
- Amazon S3 Vectors now supports up to 10,000 similarity search results per query(What's New、2026-06)