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
本当はこうすべきだったStep Functions
Search
Tatsuro Moriyama
August 25, 2026
Programming
85
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
本当はこうすべきだったStep Functions
JAWS Okayama 2026/08/22
Tatsuro Moriyama
August 25, 2026
Other Decks in Programming
See All in Programming
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
2.5k
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
290
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
150
TiDB Cloudのカスタムコントローラーによるオートスケール対応
takaidohigasi
0
130
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
4
730
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
1
370
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
550
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
380
技術的負債の返済は、AI時代の複利で効く投資 — 経営としての意思決定とその遂行
curekoshimizu
0
1.7k
Building an Out-of-Order CPU
latte72
1
790
速習iPhone Duo対応
yuukiw00w
1
710
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
550
Featured
See All Featured
Game over? The fight for quality and originality in the time of robots
wayneb77
1
290
The Limits of Empathy - UXLibs8
cassininazir
1
680
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
sira's awesome portfolio website redesign presentation
elsirapls
0
420
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
390
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Designing Experiences People Love
moore
143
24k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
280
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
530
The Spectacular Lies of Maps
axbom
PRO
1
1k
New Earth Scene 8
popppiees
4
2.6k
Scaling GitHub
holman
464
140k
Transcript
本当はこうすべきだった Step Functions JAWS-UG Okayama 2026/8/22
かんたんな自己紹介 もりやまたつろー Twitter/GitHub: @t4traw 株式会社ミライ工事でウェブエンジニアをやっています。 愛知県の豊橋市という所に住んでいます。 好きな言語はGoです。 サウナとボードゲームと釣りが趣味です。
社外でのこういうトーク初挑戦です。 頑張ります🥺
今日話すこと はじめに 実際に出会った課題と解決 コストとスピード Step Functions から Step Functions を呼びたい
ローカル開発とデバッグが難しい まとめ
今日話すこと 対象: Step Functionsをこれから使おうと思っている方。 Step Functionsを使い始めた方。
はじめに
こんなモノ作っています なんやかんや
こんなモノ作っています
こんなモノ作っています 非同期処理にして欲しい xlsxとpdfを同時に出力したい 2000枚以上出力したい ざわ… もっと情報を書き込みたい 写真は高画質で欲しい ざわ… ざわ… 同時に複数出力をしたい
ざわ… 写真と一緒にZipで出力したい 背景画像もつけたい
こんなモノ作っています
実際に出会った課題と解決
コストとスピード
コストとスピード ボトルネックの1つだった大量の画像処理を解決したい。 1枚の画像を(1関数==1ステップ)で処理し、 Mapステートで並列処理するファンアウト構成に。 1,000ステップあたり $0.025なので、 例えば2000枚の写真台帳を月に10000回出力で StepFunctionsだけで$500に。 通常のMapステートだと並列数が最大40。 枚数の壁はクリアできましたが、この辺りが
ユーザー数や枚数が増えてくると気になりだしました。
コストとスピード これで解決しようとした Expressワークフロー × Distributed Map
コストとスピード Expressワークフローとは 高パフォーマンス低コストで、標準タイプとは異なり、ワークフロー自体の実行回数、 実行時間、メモリ消費量に基づく料金体系のマシンタイプ。 ステップ数が料金に直接関係ありません。
コストとスピード Expressワークフローとは 高パフォーマンス低コストで、標準タイプとは異なり、ワークフロー自体の実行回数、 実行時間、メモリ消費量に基づく料金体系のマシンタイプ。 ステップ数が料金に直接関係ありません。
コストとスピード Distributed Mapとは マップのイテレーションを、独自の実行履歴を持つ個別の子ワークフロー実行として ファンアウトできるMapステート。
コストとスピード
コストとスピード 通常ワークフローの中でExpressワークフローが サクっと作れるのベンリー! Expressワークフローって事はこのステップ数で かかる料金、全部なくなって実行時間で課金にな るんじゃね? 画像の処理って全部で数十秒くらいだから、これ はコスト削減できるっしょ!
コストとスピード さっそく実際に構成を変えてみた結果 全然安くならない🥺 むしろ高くなってる……?
コストとスピード Mapステート 画像処理 画像処理 画像処理
コストとスピード Mapステート 画像処理 画像処理 画像処理 これ全部Expressワークフローでステップ数関係なくなる?
コストとスピード Mapステート 画像処理 画像処理 実際はここだけExpressワークフローになる 画像処理
コストとスピード Mapステート 画像処理 画像処理 画像処理 親のステップ数変わってない……
コストとスピード 本当はこうすべきだった もっと単純にDistributed Map + ItemBatcher
コストとスピード ItemBatcherとは Mapステートの入力を、指定した件数ずつまとめて 1 イテレーションに渡す設定。 1 [ 2 { 3
"verdict": "true", 4 "statement_date": "6/11/2008", 5 "statement_source": "speech" 6 }, 7 { 8 "verdict": "false", 9 "statement_date": "6/7/2022", 10 "statement_source": "television" 11 }, 12 { 13 "verdict": "true", 14 "statement_date": "5/18/2016", 15 "statement_source": "news" 16 }, 17 ... 18 ] 1 { 2 "Items": [ 3 { 4 "verdict": "true", 5 "statement_date": "6/11/2008", 6 "statement_source": "speech" 7 }, 8 { 9 "verdict": "false", 10 "statement_date": "6/7/2022", 11 "statement_source": "television" 12 } 13 ] 14 }
コストとスピード 1ステップ1画像ではなく、1ステップ10画像くらいにしてステップ数を 削減。 Goなのでこの辺りは得意。スピードもそこそこ改善。 料金はステップ数以外の事も色々計測すると、なんやかんやで 1ワークフロー約1/6から1/8くらいになりました。 画像部分のMapステートは約60秒から約10秒くらいに。
Step Functions から Step Functions を呼びたい
StepFunctions から StepFunctions を呼びたい 無事動くようになったワークフローを、 複数動かしてまとめてZipで欲しいという要望。
StepFunctions から StepFunctions を呼びたい これで解決しようとした .waitForTaskTokenというトークンを発行し、そのトークンを渡して返ってくるまで待つ という機能があります。 ちなみにこの待ってる間は無料です。 それを使って、子ワークフローを並列で起動することにしました。
StepFunctions から StepFunctions を呼びたい 本当はこうすべきだった もっとシンプルにStep Functionsの中で Step Functionsを呼び出せる方法(.sync)が あった……。
トークン受け渡しのコードが丸ごと不要 コストは変わらない。 子ワークフローで失敗した時に親ワークフ ローから辿っていけるので分かりやすい。
StepFunctions から StepFunctions を呼びたい Step Functionsは多くのAWSサービスの呼び出しが標準でできる。 呼び出すだけのLambdaは大体省略できる。 ワークフロースタジオは今できる事が分かりやすく書いてあるので、 もっと積極的に触ってみるべきでした。
ローカル開発とデバッグが難しい
ローカル開発とデバッグが難しい Lambda 1つだけだった頃 ※RIE: Lambdaをローカル環境でテスト実行するためのツール。AWS Runtime Interface Emulator。 ※air: Go言語用のコードを保存したら自動でホットリロードしてくれるツール。
ローカル開発とデバッグが難しい Step Functionsに移行後 Step Function Localは2024年にサポート終了したので試さず……。 色々探して触っているが、コレダ!というモノに出会えていない。 LocalStackなどのツールなどで頑張って環境作るより、 開発専用環境作ってデプロイして確認した方が早いし確実という状態。 Goだと実質Lambdaランタイムがなく、コンテナイメージを使っていま
す。それを含めて簡単にエミュレートする方法が無さそう。
ローカル開発とデバッグが難しい これに関しては「本当はこうすべきだった」が見つかっていません。 いい方法あったら懇親会で教えてください🙏
まとめ
Distributed MapとItemBatcherで比較的簡単にコスト削減とスピードアッ プができました。並列処理で同じ問題を抱えている方にはオススメです。 今回僕のパターンではExpressワークフローが勘違いでうまくハマりませ んでしたが、内部でサクっと作れるのは知見でした。 どっかでうまい使いどころに出会いたい。 並列数やパフォーマンスなどを計測しながら改善していくので、早めに ダッシュボードやコスト計測できる環境を作っておくのがオススメで す。 ワークフローを作ろうという時にワークフロースタジオを見て、
今現在できる事はそこで確認しておいた方が良い。 そして、やりたい事はだいたい標準で機能が提供されている事が多い。
様々なサービスの組み合わせが動いているワークフローを 見られるのがめちゃ面白い。Step Functions最高です。
本当はこうすべきだった Step Functions おしまい。
ご清聴ありがとうございました🙇♂️