DOC / AWS-UPDATE-JUDGE / ARCHITECTURE
このサイトの設計図
AWS What's New の記事に、判定 AI「Strands Decider 2B」で注目度・重要度・カテゴリを 1 日 4 回付けて公開しています。記事を集めて日本語に訳すのは別の仕組み(ニュース収集アプリ)で、このサイトはその記事を読んで判定します。下の図が全体の構成です。
- 構成
- サーバーレス
- 場所
- AWS 東京リージョン
- 更新
- 1 日 4 回(日本時間 0:10・6:10・12:10・18:10)
- 作り方
- AWS CDK(TypeScript)
- 判定済み
- 読み込み中…
- 最終更新
- 読み込み中…
- 月額
- 約 $0.6〜0.7(推測・翻訳は別)
- ① 選ぶ 記事 DB から直近 7 日の What's New の記事を読み、結果 DB でまだ判定していないものだけを選びます(1 回 最大 60 件)。新着が無ければ 0 件で、判定 AI は起こしません。
- ② 判定する 1 件ずつ、英語の原文(タイトル・サービス名・要約の先頭 2,000 文字)を Strands Decider 2B に渡し、3 つの質問(注目度・重要度・カテゴリ)の答えを結果 DB に書きます。
- ③ 公開する 判定 AI のセッションを止めてから、結果 DB を全部読み、月ごとの画面用 JSON を S3 に書き出します。CloudFront がそれを配信します。
- ④ 次の実行 過去分をまとめて判定するときだけ動きます。残りがあれば、同じ条件で Step Functions をもう一度始めます。
つながっている別の仕組み: 記事の収集と日本語訳は、ニュース収集アプリが 1 日 4 回(日本時間 0・6・12・18 時)行います。このサイトはその 10 分後に動き、記事 DB を読むだけです。同じ記事 DB を ニュース一覧(AWS News Dashboard) も使っています。判定 AI はこのサイトが持ち、Kiro Update Judge も同じものを使っています。
TBL.1 使っている技術(部品表)
| サービス・技術 | このサイトでの役割 | 料金のかかり方 |
|---|---|---|
| Amazon Bedrock AgentCore Runtime+ Strands Decider 2B(hobson-v21) | 判定 AI を動かす実行環境。小型の意思決定モデルを int8 にして、GPU なしで 2 vCPU・8 GB の arm64 の CPU だけで動かす。このサイトが持ち、Kiro Update Judge と共用 | 動いている時間だけ(判定後すぐ止める) |
| Amazon ECR | 判定 AI のコンテナイメージ(約 0.31 GB)の保存。モデルの重みはイメージに入れず、起動のたびに取ってくる | 保存している量 |
| AWS Step Functions | ①〜④ の順番・1 件ずつの判定・判定 AI の読み込み待ち・失敗時のやり直し。判定に失敗した記事は飛ばし、次の回に(7 日以内なら)やり直します | 状態の移り変わり 1 回ごと |
| AWS LambdaPython 3.13・arm64・外部ライブラリなし | 選ぶ・判定する・公開するの 3 つの処理 | 呼ばれた回数と実行時間 |
| Amazon EventBridge Scheduler | 1 日 4 回の起動(日本時間 0:10・6:10・12:10・18:10。記事の収集の 10 分後) | 起動 1 回ごと |
| Amazon DynamoDB | 判定結果を入れる結果 DB(オンデマンド)。記事 DB はニュース収集アプリのもので、このサイトは読むだけ | 読み書きした回数 |
| Amazon S3 | 画面のファイルと JSON(非公開。CloudFront からだけ読める) | 保存量と読み書きの回数 |
| Amazon CloudFront | 画面の配信。セキュリティ用のヘッダー(HSTS など)も付ける | 配信量とリクエスト数 |
| AWS CDK(TypeScript) | 上のサービスをまとめてコードで作る | — |
| HTML・CSS・JavaScript | 画面。フレームワークや外部のスクリプトを使わず、期間・並び順・サービスの絞り込みはブラウザの中で行う | —(操作しても料金はかからない) |
| Amazon Translateニュース収集アプリが使う | 記事のタイトル・要約を英語から日本語へ。このサイトは訳された記事を読むだけ | 訳した文字数(このサイトの費用には含めない) |
サーバーレス: 上の表に、常に動かしているサーバーはありません。どれも呼ばれたときだけ動き、使った分だけ料金がかかります。新着が無い回は約 6〜7 秒で終わり、判定 AI は起こしません(2026-11-02 時点の実測)。判定 AI の起動は約 70 秒(2026-11-01 実測)、1 件の判定は約 20 秒です(2026-11-02 時点)。
CALC.1 毎月の運営コストの目安
判定 AI
判定にかかった時間 × 約 $0.25 / 時間
$0.5〜0.6
そのほか
ECR・Lambda・Step Functions・DynamoDB・S3・CloudFront・Scheduler
約 $0.1 以下
合計(月)
推測
$0.6〜0.7
翻訳
ニュース収集アプリの費用(参考 月 約 $1.0〜1.1・推測)
含めない
月額の幅($0〜$1)
新着が月 240 件・新着のある回が月 70 回なら左端、月 270 件・90 回なら右端に近づきます。ほとんどが判定 AI の料金です。
- 単価は実際の請求(Cost Explorer)から確かめた値です。件数は 2026-08〜10 の実績(月 240〜270 件)を使いました。
- 判定 AI の共用と費用の分け方: 判定 AI はこのサイトが持ち、Kiro Update Judge も同じものを使っています。料金は動いた時間だけで決まり、待っている間の料金はありません。このサイトは日本時間 0:10・6:10・12:10・18:10、Kiro Update Judge は 0:30・6:30・12:30・18:30 に動き、時刻が 20 分ずれるので、1 分ごとの使用量の記録で分けて、このサイトの分だけを数えています(Kiro Update Judge が 2026-11-01 に過去分の一括判定などで使った 約 $0.98 は、Kiro Update Judge の費用)。イメージの保存料(月 約 $0.03)は、判定 AI を持つこのサイトの側に数えています。
- 翻訳: 記事の日本語訳はニュース収集アプリの費用なので、上の月額に含めていません。What's New の記事を訳す分は、参考までに月 約 $1.0〜1.1(推測)です。
- 初回の費用には、質問文を見直すために試した判定(約 $0.33)を含めていません。
- Lambda・Step Functions は今の量では無料利用枠の内側で $0 です。金額はドル表示、2026-11-02 時点です。
- 料金ページ: AgentCore・ECR・Lambda・Step Functions・DynamoDB・S3・CloudFront・EventBridge・Translate
NOTE.1 工夫している点(設計メモ)
- M-01
新着が無ければ起こさない
判定済みかどうかを結果 DB で確かめてから選ぶので、何度動いても同じ記事を 2 回判定しません。新着が 0 件の回は判定 AI を呼ばずに終わります。
判定済みを除く / 0 件なら呼ばない - M-02
判定 AI はすぐ止める
公開の前にセッションを止め、何もしない時間が 5 分続いたときも止まります。1 回の実行の中では同じセッションを使い回し、起動済みの判定 AI に続けて聞きます。
StopRuntimeSession / 待ち 5 分で停止 - M-03
GPU なしで動かす
2B の小型モデルを int8 にして、CPU だけで動かします。モデルの重みは版を固定し、いつも同じモデルで判定します。
int8 / arm64 / 2 vCPU・8 GB - M-04
原文で判定、日本語で表示
判定 AI には英語の原文を渡し、画面には日本語訳を出します。件数や HIGH の集計は、表示件数で切る前の全件で数えます。
英語で判定 / 全件で集計 - M-05
過去分は 300 件ずつ連鎖
1 回の実行の記録が Step Functions の上限を超えないように、300 件ずつに分けて自分で次の実行を始めます。未判定が減らないときと 30 回目には止まります。
上限 25,000 イベント / 最大 30 回 - M-06
1 件の失敗で止めない
判定 AI の読み込み中は 30 秒おきに待ちます。それでも失敗した記事は飛ばし、次の回に(7 日以内なら)やり直します。
30 秒 × 10 回 / 失敗は飛ばす - M-07
境目はデータの分布から
重要度の答えは真ん中に寄るため、全件の上位・下位 約 5% を HIGH・LOW の境目にしました(2026-10-31 決定)。
HIGH ≥ 1.3 / LOW < 1.03 - M-08
開けすぎない
記事 DB は読むだけ、S3 は非公開で画面用の JSON の場所にだけ書く、というように各処理には必要な権限だけを与えています。
最小権限