Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS Summitに向けて サーバーレス構成でアプリを作った話
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Manato Sano
August 06, 2026
10
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS Summitに向けて サーバーレス構成でアプリを作った話
Manato Sano
August 06, 2026
More Decks by Manato Sano
See All by Manato Sano
AIエージェントの コストガバナンスをAWSで実現したい
manaty
0
130
サーバーレス構成で遊びを作ったら、学びが返ってきた話
manaty
0
6
AI時代に若手エンジニアは何を磨くべきか
manaty
0
49
回レ!私生活 ~LINEで動く秘書AIエージェントを作ってみた~
manaty
0
15
AWS見積もりの"たたき台"はAIで作れるのか?
manaty
0
12
KyotoLT_スキマAI.pdf
manaty
0
24
本当にあったIT怖い話.pdf
manaty
0
17
AIエージェントに自分好みのre:Inventセッションをおすすめしてくれる機能を作ってみた!
manaty
0
16
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Visualization
eitanlees
152
17k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
First, design no harm
axbom
PRO
2
1.3k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
580
Leo the Paperboy
mayatellez
8
2.2k
Transcript
AWS Summitに向けて サーバーレス構成でアプリを作った話 2026.08.06 JAWS-UG Kyoto マナティ / Manato Sano
00 自己紹介 マナティ / Manato Sano ▸ 2026 Japan AWS
Jr.Champions ▸ Bedrock AgentCore触るのが好き ▸ AWS SummitのKiroキーホルダーほしかった。。。 ▸ Kiro CrewとGPTのWeb Search機能早く試したい…!
なぜアプリケーションを作ったか 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.01 API Gateway
$0.01 CloudFront + S3 $0.75 Bedrock(カード生成46回) ~$0.20 46人 × 849問の運用コスト ≈ $1 EC2を1台立てっぱなしにするだけで月$10以上かかりますが、今回のサーバーレスはその心配がない! 2日間限りのイベントにちょうどいいサービスを運営できた!やったね!
作ってから気づいたこと 09 01 02 03 04 同時実行は設計時に見えない DynamoDB Transactionsの複合エラーは、1人でテストしていたら絶対に気づかなかった AIの出力は「もっともらしく間違う」
70問中3問の誤り。S3の5TB→50TBはAWSが更新したばかりの仕様。人間の検証が必要 サーバーレスの強さはゼロスケール 使われていない時間のコストがゼロになる。イベント用途にぴったり 「作ってから直す」速度が大事 完璧に設計してから作るより、早く作って早く直すほうが結果的に良いものができた