Digital Appendix
『AIエージェントが見つけたサーバーレス』のデジタル付録
状態ストア、接続、長命ゲートウェイ
状態ストア、接続、長命ゲートウェイ
対象本文
第7章のdata model、database connection、connection proxy、auto-pause、streaming responseと長命connectionの置き場所を補います。
収集方法
2026年7月10日に、各社のmanaged database catalogではなく、選択と復旧に効く提供仕様だけを確認しました。具体的な接続上限はengine、size、region、accountで変わるため掲載せず、公式quotaと実測へ戻る入口を記録しています。
現在の答え
状態ストアはdata形式ではなく仕事で選びます。
| 仕事 | 必要な要件 | 代表的なmanaged分類 |
|---|---|---|
| 1件を整合的に更新 | transaction、constraint、isolation、復旧 | relational / transactional database |
| keyで大量に読み書き | partition key、conditional write、hot key対策 | key-value / document store |
| 大きい生成物を保管 | immutable object、version、retention、lifecycle | object storage |
| 全件・履歴を分析 | columnar scan、partition、batch/stream ingestion | warehouse / lakehouse |
| 意味の近さで検索 | embedding version、index再構築、filter、recall評価 | vector index / search |
| 変化を下流へ渡す | ordering、retention、replay、consumer offset | log / stream / change stream |
四社ともこれらの役割をmanaged serviceへ分解する方向に進みましたが、transaction、global distribution、serverless capacity、index、streamを一製品へ束ねる範囲は違います。製品数の少なさより、正本、派生物、再構築可能性、退出形式を先に決めます。
接続は有限な状態
FaaSやsandboxは急に増えますが、databaseのconnectionはmemory、process、transaction stateを持つ有限資源です。次の順で守ります。
- applicationのconcurrency上限をdatabaseの安全な接続席から逆算する。
- connection pool/proxyで短いtransactionを多重化する。
- session variable、temporary table、prepared statement等がbackend connectionをpinする条件を測る。
- timeout、retry、circuit breaker、credential refreshを復旧試験に含める。
Amazon RDS Proxyは、session stateへ依存しないtransactionほどbackend connectionを再利用しやすく、pinningが多重化を弱めると説明します。Google Cloud SQL connectors/Auth Proxy、Azureのdriver pooling・gateway、Cloudflare Hyperdrive等も接続確立やpoolingを助けますが、transaction semanticsと上限を消しません。
Aurora Serverless v2は、対応engine/versionでminimum capacityを0 ACUにすると、user connectionがない期間にauto-pauseし、接続要求でresumeできます。ただしRDS Proxyが関連付くとproxyがconnectionを維持し、auto-pauseを妨げる条件になります。pause可能なdatabaseとconnection proxyは、常に相性がよいわけではありません。
長命connectionは別の寿命へ
WebSocketや長いstreaming connectionを短命functionへ直接抱えさせると、request lifetime、deployment、scale-inに引きずられます。gatewayまたはstateful endpointがconnectionを持ち、functionはmessage単位で仕事をします。例はAPI Gateway WebSocket、Azure Web PubSub、Cloud Run WebSockets、Cloudflare Durable Objects WebSocket Hibernationです。ただしconnection duration、reconnect、ordering、backpressureは各サービスで異なります。
一次資料
- Aurora Serverless v2 auto-pause: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2-auto-pause.html
- RDS Proxy pinning: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-proxy-pinning.html
- Cloud SQL connectors: https://docs.cloud.google.com/sql/docs/mysql/connect-connectors
- Azure SQL serverless: https://learn.microsoft.com/en-us/azure/azure-sql/database/serverless-tier-overview
- Cloudflare Hyperdrive: https://developers.cloudflare.com/hyperdrive/
- API Gateway WebSocket: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api.html
- Azure Web PubSub: https://learn.microsoft.com/en-us/azure/azure-web-pubsub/overview
- Cloud Run WebSockets: https://docs.cloud.google.com/run/docs/triggering/websockets
- Durable Objects WebSocket Hibernation: https://developers.cloudflare.com/durable-objects/best-practices/websockets/
記入例——生涯と再送の境界(参照アーキテクチャ)
書籍第7章7.5の状態台帳のうち、データの生涯と再送の境界に関する記入例です。問い合わせを読み、社内資料を検索し、返信案を作り、承認後にチケットへ書き戻す参照アーキテクチャを対象とし、法域・保持の値は参照例です。実案件では契約とデータ分類から置き換えます。
| 状態 | 保持期限・削除責任 | 暗号化・法域・機微度 | 重複判定キー |
|---|---|---|---|
| 問い合わせ・会話 | 顧客契約に従い、会話ストア所有者が削除 | 顧客データ。保存・転送時暗号化、顧客法域 | request_id |
| 限定委任文脈 | 短い有効期間。ID基盤が失効 | 署名付き最小文脈。原トークンは保存しない | run_id |
| 検索資料・返信案 | 実行と承認の保持方針に従い、エージェント基盤が削除 | 社内資料を含むため問い合わせと同じ境界 | run_id + step_id + version |
| 承認 | 監査方針に従い、承認基盤が削除 | 承認者と対象のダイジェストを保護 | approval_id + subject_digest |
| 書き戻し結果 | チケットの保持方針に従い、業務システムが削除 | 結果本文は正本へ、履歴には参照を置く | run_id + writeback_step |
| ローカルな導出状態 | 環境の破棄と同時。資格実体はスナップショットへ保存しない | テナント境界外へ持ち出さない | 正本ではないため不要 |
記入用の雛形——状態台帳(空欄版)
書籍第7章7.5の状態台帳を自分の状態で書き出すための空欄版です。一状態につき一組を複製して使います。
状態名:
種類(永続/セッション/導出・一時):
正本の所在:
再生成可能性・費用:
整合性要件:
保持期限・削除責任:
暗号化・法域・機微度:
再送時の重複判定キー:
戻ってよい時点・待たせてよい時間:
バックアップの間隔と保存先の障害境界:
消失時の復旧手順:
最終復元試験の日付・所要時間・判定:
既知の未知
- connection上限、connectionあたりmemory、resume時間、idle timeoutは構成依存であり、本表に固定しません。
- proxyが対応するprotocol、engine、pinning条件、credential方式は変更されます。
- vector storeやmultimodel databaseの製品分類は重なり、機能名だけで正本の適否は決まりません。
- gatewayが接続を保持しても、application-level session state、再送、順序、認可更新は別途設計が必要です。
変更履歴
- 0.11.0 (2026-08-07): 第III部の文体基準化改稿にともない、第7章7.5の生涯と再送の境界(保持期限・削除責任、暗号化・法域・機微度、重複判定キー)の記入例を本文から移設。
- 0.10.0 (2026-07-28): 書籍のJIS B5・本文112ページ対応にともない、第7章7.5の記入用雛形(空欄版)を本文から移設。
- 0.9.0 (2026-07-10): dataの仕事別分類、connection保護、Aurora auto-pause、長命gatewayを一つの復旧要件へ整理。