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
280
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
小さなものでも Step Functions / Serverless Meetup Fukuoka Re:boot
https://serverless.connpass.com/event/305300/
の発表資料です
cohalz
February 17, 2024
More Decks by cohalz
See All by cohalz
toittaにOpenTelemetryを導入した話 / Mackerel APM リリースパーティ
cohalz
1
940
はてなにおけるfujiwara-wareの活用やecspressoのCI/CD構成 / Fujiwara Tech Conference 2025
cohalz
3
11k
はてなのSRE組織2024 / Road to SRE NEXT@福岡
cohalz
2
2.4k
SREのキャリア、 あるいは生態 / #ya8
cohalz
11
1.8k
カンファレンスのボランティアスタッフって何やるの? / DAIMYO Meetup #4
cohalz
0
280
ECSのCI/CD改善と標準化の取り組み / JAWS FESTA 2023 in Kyushu
cohalz
8
7.8k
ecspressoへの貢献を振り返る / JAWS-UG コンテナ支部 #24 ecspresso MeetUp
cohalz
1
9.3k
はてなフォトライフをECSに移行した話 / Hatena Engineer Seminar #20
cohalz
1
20k
SREの異動と働き方 〜はてなブログ編〜 / Hatena Engineer Seminar #13
cohalz
0
2.6k
Other Decks in Programming
See All in Programming
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
180
yield再入門 #phpcon
o0h
PRO
0
980
作るコストが小さくなった時代 幸せに働くために改めて考えたいこと 〜エンジニアとして価値を出し続けるために注視している二分野〜
yuppeeng
0
190
これって Effect でできたのでは? / TSKaigi Mashup Kansai #2
susisu
0
150
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
160
仕様駆動開発の消費期限
watany
17
7.3k
OpenSpecのproposalにbrainstormingを持たせてみた
tigertora7571
1
210
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
120
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
4
380
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.6k
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
370
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.4k
Featured
See All Featured
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
630
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
200
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Context Engineering - Making Every Token Count
addyosmani
9
1k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
210
Design in an AI World
tapps
1
280
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
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