Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
サーバーレス構成で遊びを作ったら、学びが返ってきた話
Search
Manato Sano
July 25, 2026
17
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
サーバーレス構成で遊びを作ったら、学びが返ってきた話
AWS Summitに作った「Cloudestiny」を構成図とハマったポイント/工夫したポイントを書いてます!
Manato Sano
July 25, 2026
More Decks by Manato Sano
See All by Manato Sano
BedrockのOpenAIモデルでWeb検索が使えるようになったので、Tavilyと⽐べてみた
manaty
0
16
AIエージェントの コストガバナンスをAWSで実現したい
manaty
0
400
AWS Summitに向けて サーバーレス構成でアプリを作った話
manaty
0
20
AI時代に若手エンジニアは何を磨くべきか
manaty
0
61
回レ!私生活 ~LINEで動く秘書AIエージェントを作ってみた~
manaty
0
24
AWS見積もりの"たたき台"はAIで作れるのか?
manaty
0
18
KyotoLT_スキマAI.pdf
manaty
0
33
本当にあったIT怖い話.pdf
manaty
0
30
AIエージェントに自分好みのre:Inventセッションをおすすめしてくれる機能を作ってみた!
manaty
0
24
Featured
See All Featured
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
250
How to Ace a Technical Interview
jacobian
281
24k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Darren the Foodie - Storyboard
khoart
PRO
4
4k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
420
Chasing Engaging Ingredients in Design
codingconduct
0
340
The untapped power of vector embeddings
frankvandijk
2
1.9k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Google's AI Overviews - The New Search
badams
0
1.6k
Transcript
サーバーレス構成で遊びを作ったら、 学びが返ってきた話 2026.07.26 JAWS-UG DE&I マナティ / Manato Sano
00 自己紹介 マナティ / Manato Sano ▸ 2026 Japan AWS
Jr.Champions ▸ Bedrock AgentCore触るのが好き ▸ AWS SummitのKiroキーホルダーほしかった。。。 ▸ ギター弾けません、 放課後にティータイムするところの聖地です。
なぜアプリケーションを作ったか 01 AWS Summit 2026でお会いする方との接点を作りたいなぁ。。。 課題 名刺交換は覚えてもらいづらい。。。 アンケートはハードルが高い。 解決策 QRコード読み取り
→ AWSサービスを選択 → AIが自分専用のRPGカード生成 → みんなでクイズに答えてボスを倒す 「好きなAWSサービスがRPGカードになる」なら興味もってもらえる?? 2日間だけのイベント → 常時稼働インフラは過剰?? サーバーレスなら使った分だけ → サーバーレス構成で作ろう!!
02 完全サーバーレス構成で作ってみました!!
03 つまずき① — 画像生成LambdaだけDockerが必要だった カード画像を描画するライブラリが、Linuxのシステムライブラリに依存していた。 通常のLambda(zip形式)にはそれが入っていない。 FROM public.ecr.aws/lambda/nodejs:22 通常のLambda(zip形式) RUN
dnf install -y ¥ ・コードをzipでアップロード pango-devel libjpeg-turbo-devel giflib-devel librsvg2-devel ・システムライブラリは追加できない ・コールドスタート 約200ms(速い) COPY fonts/ ${LAMBDA_TASK_ROOT}/fonts/ COPY package.json package-lock.json ${LAMBDA_TASK_ROOT}/ RUN npm ci --omit=dev RUN npx esbuild functions/generateCard/index.ts ¥ Docker Lambda(今回の解決策) ・Dockerfileで環境ごとに --bundle --platform=node --target=node22 ¥ --outfile=dist/generateCard/index.js ¥ パッケージング --external:@napi-rs/canvas ・必要なライブラリを自由に インストールできる カード生成だけDockerにする使い分け。他の関数は速さ優先でzip形式。 ・コールドスタート 3~10秒(遅い)
つまずき② — DynamoDB Transactionsの「同時に2つ失敗する」 04 クイズ回答で3テーブルをアトミック更新に変更。ConditionExpressionが2つ同時に失敗するケースを見落としていた。 解決策 // 1回のTransactWriteで3テーブルを更新 TransactItems:
[ { Put: RaidAnswers { Update: RaidBoss // 条件: attribute_not_exists(二重回答防止) }, // 条件: currentHp >= 1(HP残あり) { Update: RaidPlayerStats // 成績を +1 }, }, CancellationReasons 配列のインデックスで 各条件の成否を個別判定 ] 1人テストでは気づけない。。。 // 想定: どちらか一方が失敗 // 想定外: 他プレイヤーが同時にボスを倒し、自分の回答も重複 // → 条件1と条件2が同時に失敗 エラーの原因を1つずつ個別判定する処理を追加して解決した。 複数人同時プレイで 初めて起きるバグ。
05 つまずき③ — AIが作った問題の 3/70問 が間違っていた クイズ70問をClaude Sonnetで生成。AWS MCPの read_documentation
で全問を公式ドキュメントと突合検証。 例: S3に保存できるファイルの最大サイズは? AIの回答: 5TB → 正解: 50TB(2025年12月に変更) 他にもAWSサービスの仕様に関する数値を2問間違えていた。 AWSの仕様は頻繁に更新される → ナレッジカットオフを意識する必要がある。 実装当時は公式情報を参照して作成し、頻繁に変わるので公式のリンクも掲載して担保した。 対策: 全問に docUrl と verifiedAt を付与。正解後の画面にも公式ドキュメントへのリンクを表示。
06 AI-DLCで実装してみた AI-DLC(AI-Driven Development Life Cycle)= AIが開発を主導し、 人間が判断するフレームワーク Inception Construction
Operations 何を作るか どう作るか 動かす・直す 人間が企画・仕様を決定 Claude Codeが設計・実装 本番で見つかるバグを 優先順位を判断 CDK・Lambda・React全実装 人間が判断しAIが即修正 「ダメージは全員平等に1」 DynamoDBテーブル設計 参加者数0人バグ → 発見即日修正 などの設計判断 MCPで70問ドキュメント突合 セキュリティレビュー ソースコード約6,500行(TypeScript / TSX / JSON)
07 実際どれくらい遊んでもらえた?? 46 35 849 623 カード生成 バトル参加者 クイズ回答 ボス総ダメージ
プレイヤー 正解 回答 正答率 1 プレイヤーA 71 104 68% 2 プレイヤーB 64 89 72% 3 プレイヤーC 63 97 65% 4 プレイヤーD 60 74 81% 5 プレイヤーE 51 72 71% 1位の方は104問回答。想定した以上に遊んでいただけた。ありがとうございました!
08 運用コストはいくらだった?? サービス コスト Lambda(8関数) $0 DynamoDB(4テーブル) $0 API Gateway
$0 CloudFront + S3 $0 Bedrock(カード生成46回) 46人 × 849問の運用コスト ~$0.20 ≈ $0 EC2を1台立てっぱなしにするだけで月$10以上かかりますが、今回のサーバーレスはその心配がない! 2日間限りのイベントにちょうどいいサービスを運営できた。
作ってから気づいたこと 09 01 02 03 04 同時実行は設計時に見えない DynamoDB Transactionsの複合エラーは、1人でテストしていたら絶対に気づかなかった AIの出力は「もっともらしく間違う」
70問中3問の誤り。S3の5TB→50TBはAWSが更新したばかりの仕様。人間の検証が必要 サーバーレスの強さはゼロスケール 使われていない時間のコストがゼロになる。イベント用途にぴったり 「作ってから直す」速度が大事 完璧に設計してから作るより、早く作って早く直すほうが結果的に良いものができた