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
小さなものでも Step Functions / Serverless Meetup Fuku...
Search
cohalz
February 17, 2024
Programming
0
200
小さなものでも Step Functions / Serverless Meetup Fukuoka Re:boot
https://serverless.connpass.com/event/305300/
の発表資料です
cohalz
February 17, 2024
Tweet
Share
More Decks by cohalz
See All by cohalz
はてなにおけるfujiwara-wareの活用やecspressoのCI/CD構成 / Fujiwara Tech Conference 2025
cohalz
3
5.7k
はてなのSRE組織2024 / Road to SRE NEXT@福岡
cohalz
2
1.8k
SREのキャリア、 あるいは生態 / #ya8
cohalz
11
1.6k
カンファレンスのボランティアスタッフって何やるの? / DAIMYO Meetup #4
cohalz
0
160
ECSのCI/CD改善と標準化の取り組み / JAWS FESTA 2023 in Kyushu
cohalz
8
7.1k
ecspressoへの貢献を振り返る / JAWS-UG コンテナ支部 #24 ecspresso MeetUp
cohalz
1
7k
はてなフォトライフをECSに移行した話 / Hatena Engineer Seminar #20
cohalz
1
19k
SREの異動と働き方 〜はてなブログ編〜 / Hatena Engineer Seminar #13
cohalz
0
2.4k
Envoy.なんか / Kyoto.なんか #5
cohalz
1
210
Other Decks in Programming
See All in Programming
Building Scalable Mobile Projects: Fast Builds, High Reusability and Clear Ownership
cyrilmottier
2
280
AIコードエディタの基盤となるLLMのFlutter性能評価
alquist4121
0
210
SwiftUI API Design Lessons
niw
1
290
Building a macOS screen saver with Kotlin (Android Makers 2025)
zsmb
1
150
5年間継続して開発した自作OSSの記録
bebeji_nappa
0
200
List とは何か? / PHPerKaigi 2025
meihei3
0
860
AWSで雰囲気でつくる! VRChatの写真変換ピタゴラスイッチ
anatofuz
0
150
リアルタイムレイトレーシング + ニューラルレンダリング簡単紹介 / Real-Time Ray Tracing & Neural Rendering: A Quick Introduction (2025)
shocker_0x15
1
300
Dissecting and Reconstructing Ruby Syntactic Structures
ydah
0
640
趣味全開のAITuber開発
kokushin
0
200
State of Namespace
tagomoris
4
1.4k
リアクティブシステムの変遷から理解するalien-signals / Learning alien-signals from the evolution of reactive systems
yamanoku
3
1.2k
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.6k
Building Adaptive Systems
keathley
41
2.5k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
13
1.4k
How STYLIGHT went responsive
nonsquared
99
5.5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.5k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
23
2.6k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Practical Orchestrator
shlominoach
186
10k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
104
19k
Transcript
小さなものでも Step Functions id:cohalz / @cohalz Serverless Meetup Fukuoka Re:boot
1
自己紹介 • こはる(@cohalz) • 株式会社はてな SRE ◦ はてなブックマーク ◦ はてなブログ
• 費用削減・MySQL・OpenTelemetry • 福岡でリモート勤務 2
3 Step Functions 使ってますか?
社内のStep Functions過去事例 • はてなブログの独自ドメインHTTPS配信 ◦ AWSではてなブログの常時HTTPS配信をバーンとやる話 / The Epic of
migration from HTTP to HTTPS on Hatena Blog with AWS • はてなダイアリーや魔法のiらんどのデータ移行 ◦ ちょっぴりDiveDeepするAWSの時間 AWS Dev Day 2023 Tokyo 延長 戦 実践データ移行 〜はてなダイアリーや魔法のiらんどの事例と共に〜 4
大規模なものだけ? • ちょっとした運用ツールにもStep Functions を使い始めています ◦ 定期・不定期でLambdaやCIから実行しているもの ◦ 既存のものを置き換える形で使い始めている 5
小さなものがあると学習しやすい • Step Functions自体は初見は難しい • 処理を想像できるサイズのものを用意するこ とで大規模なものを作成・運用できるように 6
Lambda運用の課題 • 長時間は動かせない(最大15分) ◦ 待ち時間があるような処理にはあまり向いてない • ランタイムの更新が必要(Go, Node, …) ◦
別の人が書いたものをメンテする場合はさらに大変 • エラーもCloudWatch Logsから探しにくい ◦ どういう入力でどういうエラーになったのか 7
Step Functionsだと • 時間制限がない ◦ 状態遷移数による課金 ◦ 時間かかる場合は組み込みのWaitを使える • ランタイムのことを考えなくて良い
• 処理の流れやエラーが追いやすい ◦ リトライやエラー処理を組み込みやすい ◦ 組み込んでも流れを把握しやすい 8
成功・失敗のログが わかりやすい • 失敗した時にどこが失敗 したのかわかりやすい ◦ 赤・橙、緑、白 • 失敗したところから再実 行できる
◦ redrive機能(2023/11) 9
Step Functionsの機能追加 • AWS SDK統合(2021/09) ◦ 大抵のAWSの操作はできるように • HTTPリクエスト(2023/11) ◦
認証が必要なエンドポイントもリクエスト可能 ◦ GitHubやSlackなども操作できるように 10
Lambdaを採用した方が良いケース • VPC内のリソースにアクセスする • 複雑な文字列処理 ◦ Step Functions組み込みの文字列関数が貧弱 ◦ もし作れたとしても読み解くのが難しいものになる
11
例: ステージング環境の作成・停止 • はてなブックマークのステージング環境を支 える技術 - Hatena Developer Blog ◦
毎日営業時間になったらステージング環境が本番の データでコピーされ定時後には終了する ◦ Aurora, ElastiCache, OpenSearchで実施 ◦ ほぼAWS SDK統合と少しのLambdaで実現 12
気をつけてる ポイント • コードコメントと GitHubでMermaid記 法を使い図を出す • コードやプルリクを見 ただけで処理の流れが わかるように
13
どうやって実装してる? • コンソールで作って試してその後CDKで同じコー ドを書くと言う流れで実装 ◦ コンソールは試行錯誤しやすい ◦ CDKは依存関係を記述しやすい • Application
Composerとか使ったら楽になる? ◦ 良い方法知っていたら教えてください 14
おわり • 細かいLambdaもStep Functionsに置き換えて 運用を楽にしています ◦ メンテしやすくしていきましょう ◦ 最近のStep Functionsも進化しています
• Step Functions事例聞きたいです 15