DOC / KIRO-UPDATE-JUDGE / ARCHITECTURE
このサイトの設計図
kiro.dev の Changelog・ブログ・ドキュメントの更新を 1 日 4 回集め、日本語に訳し、判定 AI「Strands Decider 2B」で注目度・重要度・カテゴリを付けて公開しています。下の図が全体の構成です。
- 構成
- サーバーレス
- 場所
- AWS 東京リージョン
- 更新
- 1 日 4 回(日本時間 0:30・6:30・12:30・18:30)
- 作り方
- AWS CDK(TypeScript)
- 項目
- 読み込み中…
- 最終更新
- 読み込み中…
- 月額
- 約 $0.4〜3.4(推測)
- ① 集める kiro.dev の RSS とサイトマップを見て、新しい項目を DynamoDB に保存し、Amazon Translate で日本語にします。ドキュメントの本文の写しは S3 に置きます。
- ② 選ぶ まだ判定していない項目を選びます。新着が無ければ 0 件で、判定 AI は起こしません。
- ③ 判定する 1 件ずつ Strands Decider 2B に 3 つの質問(注目度・重要度・カテゴリ)をし、結果を DynamoDB の同じ項目に書きます。判定 AI は AWS Update Judge と同じものを共用しています。
- ④ 公開する 判定 AI のセッションを止めてから、DynamoDB の項目を読んで画面用の JSON を S3 に書き出します。CloudFront がそれを配信します。
TBL.1 使っている技術(部品表)
| サービス・技術 | このサイトでの役割 | 料金のかかり方 |
|---|---|---|
| Amazon Bedrock AgentCore Runtime+ Strands Decider 2B | 判定 AI を動かす実行環境。小型の意思決定モデルを、GPU なしで CPU だけで動かす | 動いている時間だけ(判定後すぐ止める) |
| AWS Step Functions | 4 つの処理の順番・1 件ずつの判定・失敗時のやり直し。判定に失敗した項目は飛ばし、次の回に(7 日以内なら)やり直します | 状態の移り変わり 1 回ごと |
| AWS LambdaPython 3.13・外部ライブラリなし | 集める・選ぶ・判定する・公開するの 4 つの処理 | 呼ばれた回数と実行時間 |
| Amazon EventBridge Scheduler | 1 日 4 回の起動(日本時間 0:30・6:30・12:30・18:30) | 起動 1 回ごと |
| Amazon Translate | タイトル・要約・ドキュメントの追加部分を英語から日本語へ | 訳した文字数 |
| Amazon DynamoDB | 項目・判定結果・取得の記録 | 読み書きした回数(オンデマンド) |
| Amazon S3 | 画面のファイルと JSON、ドキュメント本文の写し(どちらも非公開) | 保存量と読み書きの回数 |
| Amazon CloudFront | 画面の配信。セキュリティ用のヘッダー(CSP など)も付ける | 配信量とリクエスト数 |
| AWS CDK(TypeScript) | 上のサービスをまとめてコードで作る | — |
| HTML・CSS・JavaScript | 画面。フレームワークや外部のスクリプトを使わない | — |
サーバーレス: 上の表に、常に動かしているサーバーはありません。どれも呼ばれたときだけ動き、使った分だけ料金がかかります。新着が無い回は kiro.dev に 3 回問い合わせるだけで、約 9 秒で終わります(2026-11-02 時点の実測)。
CALC.1 毎月の運営コストの目安
判定 AI
判定にかかった時間 × 約 $0.25 / 時間
$0.2〜0.9
翻訳
訳した文字数 × $15 / 100 万文字
$0.2〜2.4
そのほか
Lambda・Step Functions・S3・DynamoDB・CloudFront・Scheduler
約 $0.1 以下
合計(月)
推測
$0.4〜3.4
月額の幅($0〜$4)
新着が月 40 件・ドキュメントの変更なしなら左端、月 60 件・ドキュメントの変更が多い月は右端に近づきます。
- 単価は実際の請求から確かめた値です。件数は 2026-11-02 時点の直近 3 か月の実績(月 40〜60 件)を使いました。
- 判定 AI は AWS Update Judge と共用です。料金は使った時間で決まるため、このサイトが判定に使った時間の分だけを数えています。
- 最初の 1 回の判定 $0.98 は、2026-11-01(UTC)の判定 AI の料金の全額です。過去分 358 件の一括判定のほか、手動で試した判定と質問文の試験の分も含みます。
- そのほかのサービスは、今の量では無料利用枠の内側で $0 です。金額はドル表示、2026-11-02 時点です。
- 料金ページ: Translate・AgentCore・Lambda・Step Functions
NOTE.1 工夫している点(設計メモ)
- M-01
変わっていなければ取りに行かない
前回の目印を添えて聞き、「変わっていない」と返れば本文を受け取りません。ふだんは 1 回 3 リクエストです。
ETag / If-None-Match / 304 - M-02
履歴の無い docs も差分で追う
サイトマップの更新日で候補を絞り、本文のハッシュと行ごとの比較で、本当に変わったページだけを項目にします。
lastmod → SHA-256 → diff - M-03
開閉式の中身も読む
Changelog の開閉式の部分は HTML に中身がありません。ページ末尾に埋め込まれたデータから読みます。
React Server Components - M-04
パッチは版ごとに 1 件
小さな版の更新を版ごとに分け、独立したページがある版は作りません。同じ更新を二重に判定しません。
1 版 = 1 項目 - M-05
robots.txt を守る
禁止されている .md ファイルと llms.txt は取りません。名前を名乗り、1 秒以上の間隔を空けます。
User-Agent / 1 秒以上 - M-06
判定 AI はすぐ止める
判定が終わったらセッションを止め、待ち時間の料金を防ぎます。1 回の実行の中では同じセッションを使い回します。
StopRuntimeSession - M-07
境目はデータの分布から
重要度は 1.1 前後に集まるため、2026-11-01 に判定した過去分 358 件の上位・下位 5% を HIGH・LOW の境目にしました。
HIGH ≥ 1.2782 / LOW < 0.9119 - M-08
消さない・開けすぎない
データベースは削除保護付き。S3 は非公開で、各処理には必要な権限だけを与えています。
削除保護 / 最小権限