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
自作Discord音声botをLambda MicroVMsに移行した話 / Migratin...
Search
アキキー | Akihisa Ikeda
October 21, 2026
Programming
300
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
自作Discord音声botをLambda MicroVMsに移行した話 / Migrating My Discord Voice Bot to Lambda MicroVMs
アキキー | Akihisa Ikeda
October 21, 2026
More Decks by アキキー | Akihisa Ikeda
See All by アキキー | Akihisa Ikeda
AWS CDKを理解するために公式の定義を深掘って解説してみる / Understanding AWS CDK by Digging into Its Official Definition
akihisaikeda
3
290
AI時代のIaC入門 〜なぜインフラをコードで管理したいのか?〜 / Introduction to IaC in the AI Era
akihisaikeda
6
1.4k
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
190
cdk deploy JawsSonic #MARATHONしながらAWSリソースをデプロイしてみよう
akihisaikeda
2
210
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
380
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
4
4.6k
ECR拡張スキャンでSBOMを収集して サプライチェーン攻撃の影響調査を 爆速で終わらせてみた
akihisaikeda
2
400
AWSはOSSをどのように 考えているのか?
akihisaikeda
1
240
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
370
Other Decks in Programming
See All in Programming
Zero-Tap Sign-In対応、結局何をすればいいの?
mitohato14
0
1.9k
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
2k
Goコンパイラを作ってGoをもっと理解する / Build a Go compiler to better understand Go
ikura_hamu
0
130
protojson における文字化けの扱い
kazuki1023
0
220
Rails初心者がパスキーを実装してみて大変だったこと
ktombow
0
160
ChromeでローカルLLM
ryu1013
0
200
느린 네트워크와 저사양 디바이스 사용자를 위한 웹뷰 로딩 시간 개선기
kmkim
1
220
GraphQL の onError と Nullability のこれから
quramy
0
210
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
370
あなたの await、OS まで届いてる? strace で覗く JavaScript の非同期
hasutosasaki
1
2.3k
地方こそサーバーレス — 10年続けた、顔が見えるチームで確かな基盤を / Serverless Matters Most in Regional Areas — 10 Years of Building Reliable Foundations with Close-Knit Teams
seike460
PRO
1
330
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
1.6k
Featured
See All Featured
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
390
エンジニアに許された特別な時間の終わり
watany
109
250k
Exploring anti-patterns in Rails
aemeredith
4
560
How GitHub (no longer) Works
holman
316
150k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
670
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.7k
The Curious Case for Waylosing
cassininazir
1
610
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.8k
4 Signs Your Business is Dying
shpigford
187
23k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
660
Transcript
自作Discord音声botを Lambda MicroVMsに移行した話 2026.10.21(水) 池田 晃尚(@akikii__)
アキキー | 池田 晃尚 株式会社メイツ バックエンドエンジニア / SRE 推しサービス AWS
CDK JAWS-UG CDK支部 AWS Community Builders Dev Tools, 2026〜
自作のDiscord音声bot DiscordのボイスチャンネルでClaude Codeと通話する仕組みを作りました Discord 🔊 ボイスチャンネル ⽂字起こし # テキストチャンネル 読み上げ
アキキー ⾳声bot ECS Fargate ⾳声botが動く ⾳声bot Claude Code bot Claude Code ⼿元のPCで動く
自作のDiscord音声bot ECSタスク(Fargate) Discord bot Discordと声や⽂字をやりとり 読み上げ VOICEVOXで⾳声を合成 ⽂字起こし 話した声を⽂字にする Transcribe
Streaming → コストを抑えるため、ECSタスクは必要なタイミングで起動する仕組み
しかし現状は 起動に30〜40秒ほどかかってしまうので 待つのがつらい…! 起動が早いと噂の Lambda MicroVMsに移行することで 起動時間を縮められるのでは!?
Lambda MicroVMsとは? Lambda MicroVMsとは? 素早く起動して状態を保ったまま停止・再開できる隔離された実行環境 Lambda MicroVM ビルド(イメージの作成・更新) イメージ アプリを⼊れる
スナップショット 起動しきった状態 実⾏中 起動 Lambda MicroVM Lambda MicroVM スナップショットから起動するので、起動時間が短い 一時停止して、止めたところから再開できる 一時停止も含めて、最大8時間使える AWS introduces Lambda MicroVMs for isolated execution of user and AI-generated code https://aws.amazon.com/about-aws/whats-new/2026/06/aws-lambda-microvms/ ⼀時停⽌
Lambda MicroVMsとは? Lambda MicroVMsとは? Lambda Event Functions(旧Lambda Functions)との違い Lambda Event
Functions イベントが来たら動く 関数の形で書く 最大15分 使い捨ての実行環境 What is AWS Lambda? - How Lambda compute primitives compare https://docs.aws.amazon.com/lambda/latest/dg/welcome.html Lambda MicroVMs 自分で立ち上げて、止めるまで動く どんなアプリケーションでも動かせる 最大8時間(一時停止を含む) 止めても、同じ環境にまた戻れる
Lambda MicroVMsに移行すると 起動時間が30〜40秒ほどかかっていたものが 10秒前後に短縮されました!
Lambda MicroVMsに移行すると 起動時間が30〜40秒ほどかかっていたものが 移行する上で気になったポイントを紹介します! 10秒前後に短縮されました!
Lambda MicroVMsを試す ポイント① コンテナを1つにまとめる必要があった ECS Fargate Discord bot 読み上げ 文字起こし
Lambda MicroVMs 1つのコンテナイメージ Discord bot 文字起こし 読み上げ(VOICEVOX) ベースイメージ Lambda MicroVMsは1つのコンテナ イメージから実行環境をセットアッ プするので、複数のコンテナを扱え ない 読み上げとして利用している VOICEVOX※はコンテナイメージで 配布されているため、仕方なくベー スイメージとして扱うことにした ※ VOICEVOX…ずんだもん等の声で読み上げられる音声合成ソフトウェア
Lambda MicroVMsを試す ポイント① コンテナを1つにまとめる必要があった Q. コンテナごとに別サービスに切り出してもよいのでは? Lambda Event Functions (読み上げ)
Lambda MicroVMs (Discord bot) API Gateway Lambda Event Functions (文字起こし) A. ネットワークの遅延が大きかった ネットワークの遅延が大きく通話体験が損なわれたため、1つのECSタスクにまと めてlocalhostで通信するようにした
Lambda MicroVMsを試す ポイント① コンテナを1つにまとめる必要があった Q. 1つにまとめたらbotの起動が遅くなるのでは? VOICEVOXのコンテナイメージは約2GBなので起動に時間がかかりそう A. スナップショットから起動するので素早い スナップショットは重いVOICEVOXの起動が大体終わった状態を保持している
ビルド(イメージの作成・更新) イメージ 3つをまとめて⼊れる スナップショット 起動しきった状態 起動 Lambda MicroVM 再開するだけ
Lambda MicroVMsを試す ポイント② 標準ではUDP接続が失敗していた Discord ボイスチャット AWS Cloud Gateway接続 (WebSocket)
⾳声の送受信 (UDP) Discord bot (Lambda MicroVMs) Discordのボイスチャットにbotを入れてみた ら、接続に失敗した 原因をたどると、音声を送受信するUDPの接 続が失敗していた 標準のネット接続(INTERNET_EGRESS)で は、外向きのUDPが通らない
Lambda MicroVMsを試す ポイント② 標準ではUDP接続が失敗していた INTERNET_EGRESS(標準) VPC_EGRESS Discord ボイスチャット AWS Cloud
Gateway接続 (WebSocket) ⾳声の送受信 (UDP) Discord Gateway接続 (WebSocket) AWS Cloud VPC パブリックサブネット ボイスチャット ⾳声の送受信 (UDP) Internet Gateway NAT Gateway プライベートサブネット Discord bot (Lambda MicroVMs) → VPC_EGRESSならUDP接続ができる Discord bot (Lambda MicroVMs)
ポイント③ コストが増加してしまう Lambda MicroVMsを試す NATの固定費が高い Discord Gateway接続 (WebSocket) AWS Cloud
VPC パブリックサブネット ボイスチャット ⾳声の送受信 (UDP) Internet Gateway NAT Gateway プライベートサブネット Discord bot (Lambda MicroVMs) Lambda MicroVMsをVPCに置くとNATを利用す る必要があるが、常に配置していないといけな いのでコストがかかる NAT Gatewayだと固定費だけで1か月あたり約 49USDかかる (0.062 + パブリックIPv4 0.005) USD × 730時間(東京、オ ンデマンド) Fargateだと月に約3USD程度しかかかっていな いので、コストが大幅に増加してしまう
ポイント③ コストが増加してしまう Lambda MicroVMsを試す パブリックサブネットに配置できないか考える Discord ボイスチャット AWS Cloud VPC
パブリックサブネット セキュリティグループ アウトバウンドだけ許可 Fargateタスク パブリックIPを持つ プライベートサブネット Internet Gateway 外に出る インターネットに 出られない Lambda MicroVMs パブリックIPを持てない Fargateはパブリックサブネットに置くこ とで、NATを利用せずにインターネットア クセスしていた※ Lambda MicroVMsはパブリックIPを持て ないので、NATを利用してプライベートサ ブネットからアクセスする方法しか残さ れていない ※ インバウンドアクセスをブロックするセキュリティグ ループを設定することで、パブリックサブネットに置く ことを許容している
ポイント③ コストが増加してしまう Lambda MicroVMsを試す コストを比較してみる 月20時間使う場合 ECS Fargate(今) Lambda MicroVMs+NATインスタンス
Lambda MicroVMs+NAT Gateway Fargate Lambda MicroVMs 約2.6ドル 約14ドル NAT Gateway NATインスタンス Lambda MicroVMs自体は少し高いくらい NATはいつ呼ばれてもいいように、一か月ずっと立てておく固定費になる パブリックIPv4 約55ドル 必要なときだけNATを立てると起動が遅くなる。使う時間を絞っても、本当に使わないのは寝ている2:00〜7:00くらい AWS Lambda pricing https://aws.amazon.com/lambda/pricing/
ポイント③ コストが増加してしまう Lambda MicroVMsを試す コストを比較してみる 月20時間使う場合 ECS Fargate(今) 約2.6ドル Lambda
MicroVMs+NATインスタンス 約14ドル Lambda MicroVMs+NATということで、コストで悩んでいます… Gateway Fargate Lambda MicroVMs NAT Gateway NATインスタンス Lambda MicroVMs自体は少し高いくらい NATはいつ呼ばれてもいいように、一か月ずっと立てておく固定費になる パブリックIPv4 約55ドル 必要なときだけNATを立てると起動が遅くなる。使う時間を絞っても、本当に使わないのは寝ている2:00〜7:00くらい AWS Lambda pricing https://aws.amazon.com/lambda/pricing/
まとめ FargateからLambda MicroVMsに移行することで、 起動時間が30〜40秒 → 10秒前後に収まった! Fargateから構成を変える必要はあったものの、問題なく動作した コストがかなり高くなってしまったので、 今後どのように運用しようか迷う
Thank You! \ ご清聴ありがとうございました! /